diff --git a/command/arp.md b/command/arp.md new file mode 100644 index 0000000000..222729c235 --- /dev/null +++ b/command/arp.md @@ -0,0 +1,46 @@ +arp +=== + +显示和修改IP到MAC转换表 + +## 补充说明 + +**arp命令** 用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。 + +### 语法 + +``` +arp(选项)(参数) +``` + +### 选项 + +``` +-a<主机>:显示arp缓冲区的所有条目; +-H<地址类型>:指定arp指令使用的地址类型; +-d<主机>:从arp缓冲区中删除指定主机的arp条目; +-D:使用指定接口的硬件地址; +-e:以Linux的显示风格显示arp缓冲区中的条目; +-i<接口>:指定要操作arp缓冲区的网络接口; +-s<主机>:设置指定的主机的IP地址与MAC地址的静态映射; +-n:以数字方式显示arp缓冲区中的条目; +-v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息; +-f<文件>:设置主机的IP地址与MAC地址的静态映射。 +``` + +### 参数 + +主机:查询arp缓冲区中指定主机的arp条目。 + +### 实例 + +``` +[root@localhost ~]# arp -v +Address HWtype HWaddress Flags Mask Iface +192.168.0.134 ether 00:21:5E:C7:4D:88 C eth1 +115.238.144.129 ether 38:22:D6:2F:B2:F1 C eth0 +Entries: 2 Skipped: 0 Found: 2 +``` + + + \ No newline at end of file diff --git a/command/arping.md b/command/arping.md new file mode 100644 index 0000000000..3494228cf3 --- /dev/null +++ b/command/arping.md @@ -0,0 +1,50 @@ +arping +=== + +通过发送ARP协议报文测试网络 + +## 补充说明 + +**arping命令** 是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping。 + +### 语法 + +``` +arping(选项)(参数) +``` + +### 选项 + +``` +-b:用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。 +-q:quiet output不显示任何信息; +-f:表示在收到第一个响应报文后就退出; +-w timeout:设定一个超时时间,单位是秒。如果到了指定时间,arping还没到完全收到响应则退出; +-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止; +-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理,如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicited ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出; +-I interface:设置ping使用的网络接口。 +``` + +### 参数 + +目的主机:指定发送ARP报文的目的主机。 + +### 实例 + +``` +[root@localhost ~]# arping www.baidu.com +ARPING 220.181.111.147 from 173.231.43.132 eth0 +Unicast reply from 220.181.111.147 00:D0:03:[bc:48:00] 1.666ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.677ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.691ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.728ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.626ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.292ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 1.429ms +Unicast reply from 220.181.111.147 [00:D0:03:BC:48:00] 2.042ms +Sent 8 probes (1 broadcast(s)) +Received 8 response(s) +``` + + + \ No newline at end of file diff --git a/command/chage.md b/command/chage.md new file mode 100644 index 0000000000..0f48115217 --- /dev/null +++ b/command/chage.md @@ -0,0 +1,98 @@ +chage +=== + +修改帐号和密码的有效期限 + +## 补充说明 + +**chage命令** 是用来修改帐号和密码的有效期限。 + +### 语法 + +``` +chage [选项] 用户名 +``` + +### 选项 + +``` +-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 +-M:密码保持有效的最大天数。 +-w:用户密码到期前,提前收到警告信息的天数。 +-E:帐号到期的日期。过了这天,此帐号将不可用。 +-d:上一次更改的日期。 +-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 +-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 +``` + +### 实例 + +可以编辑`/etc/login.defs`来设定几个参数,以后设置口令默认就按照参数设定为准: + +``` +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_MIN_LEN 5 +PASS_WARN_AGE 7 +``` + +当然在`/etc/default/useradd`可以找到如下2个参数进行设置: + +``` +# useradd defaults file +GROUP=100 +HOME=/home +INACTIVE=-1 +EXPIRE= +SHELL=/bin/bash +SKEL=/etc/skel +CREATE_MAIL_SPOOL=yes +``` + +通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。 + +我的服务器root帐户密码策略信息如下: + +``` +[root@linuxde ~]# chage -l root +最近一次密码修改时间 : 3月 12, 2013 +密码过期时间 :从不 +密码失效时间 :从不 +帐户过期时间 :从不 +两次改变密码之间相距的最小天数 :0 +两次改变密码之间相距的最大天数 :99999 +在密码过期之前警告的天数 :7 +``` + +我可以通过如下命令修改我的密码过期时间: + +``` +[root@linuxde ~]# chage -M 60 root +[root@linuxde ~]# chage -l root +最近一次密码修改时间 : 3月 12, 2013 +密码过期时间 : 5月 11, 2013 +密码失效时间 :从不 +帐户过期时间 :从不 +两次改变密码之间相距的最小天数 :0 +两次改变密码之间相距的最大天数 :60 +在密码过期之前警告的天数 :9 +``` + +然后通过如下命令设置密码失效时间: + +``` +[root@linuxde ~]# chage -I 5 root +[root@linuxde ~]# chage -l root +最近一次密码修改时间 : 3月 12, 2013 +密码过期时间 : 5月 11, 2013 +密码失效时间 : 5月 16, 2013 +帐户过期时间 :从不 +两次改变密码之间相距的最小天数 :0 +两次改变密码之间相距的最大天数 :60 +在密码过期之前警告的天数 :9 +``` + +从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。 + + + \ No newline at end of file diff --git a/command/chcon.md b/command/chcon.md new file mode 100644 index 0000000000..33d22b5007 --- /dev/null +++ b/command/chcon.md @@ -0,0 +1,75 @@ +chcon +=== + +修改对象(文件)的安全上下文 + +## 补充说明 + +**chcon命令** 是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用`--reference`选项时,把指定文件的安全环境设置为与参考文件相同。chcon命令位于`/usr/bin/chcon`。 + +### 语法 + +``` +chcon [选项]... 环境 文件... +chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件... +chcon [选项]... --reference=参考文件 文件... +``` + +### 选项 + +``` +-h, --no-dereference:影响符号连接而非引用的文件。 + --reference=参考文件:使用指定参考文件的安全环境,而非指定值。 +-R, --recursive:递归处理所有的文件及子目录。 +-v, --verbose:为处理的所有文件显示诊断信息。 +-u, --user=用户:设置指定用户的目标安全环境。 +-r, --role=角色:设置指定角色的目标安全环境。 +-t, --type=类型:设置指定类型的目标安全环境。 +-l, --range=范围:设置指定范围的目标安全环境。 +``` + +以下选项是在指定了`-R`选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效。 + +``` +-H:如果命令行参数是一个通到目录的符号链接,则遍历符号链接。 +-L:遍历每一个遇到的通到目录的符号链接。 +-P:不遍历任何符号链接(默认)。 +--help:显示此帮助信息并退出。 +--version:显示版本信息并退出。 +``` + +### 实例 + +如果你想把这个ftp共享给匿名用户的话,需要开启以下: + +``` +chcon -R -t public_content_t /var/ftp +``` + +如果你想让你设置的FTP目录可以上传文件的话,SELINUX需要设置: + +``` +chcon -t public_content_rw_t /var/ftp/incoming +``` + +允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页: + +``` +setsebool -P httpd_enable_homedirs 1 +chcon -R -t httpd_sys_content_t ~user/public_html +``` + +如果你希望将samba目录共享给其他用户,你需要设置: + +``` +chcon -t samba_share_t /directory +``` + +共享rsync目录时: + +``` +chcon -t public_content_t /directories +``` + + + \ No newline at end of file diff --git a/command/dhclient.md b/command/dhclient.md new file mode 100644 index 0000000000..b18790db54 --- /dev/null +++ b/command/dhclient.md @@ -0,0 +1,37 @@ +dhclient +=== + +动态获取或释放IP地址 + +## 补充说明 + +**dhclient命令** 使用动态主机配置协议动态的配置网络接口的网络参数。 + +### 语法 + +``` +dhclient(选项)(参数) +``` + +### 选项 + +``` +0:指定dhcp客户端监听的端口号; +-d:总是以前台方式运行程序; +-q:安静模式,不打印任何错误的提示信息; +-r:释放ip地址。 +``` + +### 参数 + +网络接口:操作的网络接口。 + +### 实例 + +``` +dhclient -r #释放IP +dhclient #获取IP +``` + + + \ No newline at end of file diff --git a/command/dig.md b/command/dig.md new file mode 100644 index 0000000000..7d87d370d3 --- /dev/null +++ b/command/dig.md @@ -0,0 +1,66 @@ +dig +=== + +域名查询工具 + +## 补充说明 + +**dig命令** 是常用的域名查询工具,可以用来测试域名系统工作是否正常。 + +### 语法 + +``` +dig(选项)(参数) +``` + +### 选项 + +``` +@<服务器地址>:指定进行域名解析的域名服务器; +-b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求; +-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息; +-P:指定域名服务器所使用端口号; +-t<类型>:指定要查询的DNS数据类型; +-x:执行逆向域名查询; +-4:使用IPv4; +-6:使用IPv6; +-h:显示指令帮助信息。 +``` + +### 参数 + +* 主机:指定要查询域名主机; +* 查询类型:指定DNS查询的类型; +* 查询类:指定查询DNS的class; +* 查询选项:指定查询选项。 + +### 实例 + +``` +[root@localhost ~]# dig www.linuxde.net + +; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.1 <<>> www.linuxde.net +;; global options: printcmd +;; Got answer: +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2115 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0 + +;; QUESTION SECTION: +;www.linuxde.net. IN A + +;; ANSWER SECTION: +www.linuxde.net. 0 IN CNAME host.1.linuxde.net. +host.1.linuxde.net. 0 IN A 100.42.212.8 + +;; AUTHORITY SECTION: +linuxde.net. 8 IN NS f1g1ns2.dnspod.net. +linuxde.net. 8 IN NS f1g1ns1.dnspod.net. + +;; Query time: 0 msec +;; SERVER: 202.96.104.15#53(202.96.104.15) +;; WHEN: Thu Dec 26 11:14:37 2013 +;; MSG SIZE rcvd: 121 +``` + + + \ No newline at end of file diff --git a/command/dnsdomainname.md b/command/dnsdomainname.md new file mode 100644 index 0000000000..1c4e55a26f --- /dev/null +++ b/command/dnsdomainname.md @@ -0,0 +1,31 @@ +dnsdomainname +=== + +定义DNS系统中FQDN名称的域名 + +## 补充说明 + +**dnsdomainname命令** 用于定义DNS系统中FQDN名称中的域名。 + +### 语法 + +``` +dnsdomainname(选项) +``` + +### 选项 + +-v:详细信息模式,输出指令执行的详细信息。 + +### 实例 + +``` +[root@AY1307311912260196fcZ ~]# dnsdomainname -v +gethostname()=`AY1307311912260196fcZ' +Resolving `AY1307311912260196fcZ' ... +Result: h_name=`AY1307311912260196fcZ' +Result: h_addr_list=`10.160.7.81' +``` + + + \ No newline at end of file diff --git a/command/domainname.md b/command/domainname.md new file mode 100644 index 0000000000..a752cd79aa --- /dev/null +++ b/command/domainname.md @@ -0,0 +1,42 @@ +domainname +=== + +显示和设置系统的NIS域名 + +## 补充说明 + +**domainname命令** 用于显示和设置系统的NIS域名。 + +### 语法 + +``` +domainname(选项)(参数) +``` + +### 选项 + +``` +-v:详细信息模式; +-F:指定读取域名信息的文件。 +``` + +### 参数 + +NIS域名:指定要设置的NIS域名。 + +### 实例 + +``` +[root@AY1307311912260196fcZ ~]# domainname -v +getdomainname()=`(none)' +(none) + [root@AY1307311912260196fcZ ~]# domainname +www.linuxde.net + +[root@AY1307311912260196fcZ ~]# domainname -v +getdomainname()=`www.linuxde.net' +www.linuxde.net +``` + + + \ No newline at end of file diff --git a/command/e2label.md b/command/e2label.md new file mode 100644 index 0000000000..21387c44c6 --- /dev/null +++ b/command/e2label.md @@ -0,0 +1,46 @@ +e2label +=== + +设置第二扩展文件系统的卷标 + +## 补充说明 + +**e2label命令** 用来设置第二扩展文件系统的卷标。 + +### 语法 + +``` +e2label(参数) +``` + +### 参数 + +* 文件系统:指定文件系统所对应的设备文件名; +* 新卷标:为文件系统指定新卷标。 + +### 实例 + +许多用了多年Linux的人可能也没有用过e2label命令。但是这个命令相当有效。在介绍它之前,我们先看看`/etc/fstab文`件: + +``` +label=//ext3 defaults 1 1 +/dev/hda7 /usr ext3 defaults 1 1 +``` + +第二行的意思很容易懂,就是把`/dev/hda7` mount到`/usr`上。第一行没有指明分区,意思是把label(卷标)为/ 的分区mount到/上。这样写的好处在于即使如果把硬盘从主板上的ide0(hda) 换到ide2(hdc)上,系统仍然可以自动挂载正确的分区。通常Linux安装的时候已经自动指定了卷标。如果是手动增加的新分区,可以用下边的命令为 其指定卷标: + +``` +e2label /dev/hdax /new +mkdir /new +``` + +然后在`/etc/fstab`里加入: + +``` +label=/new /new ext3 defaults 1 1 +``` + +下次重新起动机器的时候,就会把卷标为`/new`的分区挂接到`/new`上。 + + + \ No newline at end of file diff --git a/command/findfs.md b/command/findfs.md new file mode 100644 index 0000000000..cf4dc9ef95 --- /dev/null +++ b/command/findfs.md @@ -0,0 +1,30 @@ +findfs +=== + +标签或UUID查找文件系统 + +## 补充说明 + +**findfs命令** 依据卷标(Label)和UUID查找文件系统所对应的设备文件。findfs命令会搜索整个磁盘,看是否有匹配的标签或者UUID没有,如果有则打印到标注输出上。findfs命令也是e2fsprogs项目的一部分。 + +### 语法 + +``` +findfs(参数) +``` + +### 参数 + +`LABEL=<卷标>`或者`UUID=`:按照卷标或者UUID查询文件系统。 + +### 实例 + +通过卷标名查找对应的文件系统: + +``` +findfs LABEL=/boot +/dev/hda1 +``` + + + \ No newline at end of file diff --git a/command/ftptop.md b/command/ftptop.md new file mode 100644 index 0000000000..a0491c6f1f --- /dev/null +++ b/command/ftptop.md @@ -0,0 +1,25 @@ +ftptop +=== + +proftpd服务器的连接状态 + +## 补充说明 + +**ftptop命令** 类似于top命令的显示风格显示proftpd服务器的连接状态。 + +### 语法 + +``` +ftptop(选项) +``` + +### 选项 + +``` +-D:过滤正在下载的会话; +-S:仅显示指定虚拟主机的连接状态; +-d:指定屏幕刷新时间,默认 +``` + + + \ No newline at end of file diff --git a/command/getsebool.md b/command/getsebool.md new file mode 100644 index 0000000000..c94b78fb40 --- /dev/null +++ b/command/getsebool.md @@ -0,0 +1,44 @@ +getsebool +=== + +查询SElinux策略内各项规则的布尔值 + +## 补充说明 + +**getsebool命令** 是用来查询SElinux策略内各项规则的布尔值。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 + +### 语法 + +``` +getsebool [-a] [布尔值条款] +``` + +### 选项 + +``` +-a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。 +``` + +### 实例 + +查询本系统内所有的布尔值设置状况: + +``` +getsebool -a +NetworkManager_disable_trans --> off +allow_console_login --> off +allow_cvs_read_shadow --> off +allow_daemons_dump_core --> on +....(底下省略).... +``` + +查询httpd_enable_homedirs是否为关闭,若没关闭,请关闭它: + +``` +getsebool httpd_enable_homedirs +setsebool -P httpd_enable_homedirs=0 //0是关闭 1是开启 + +``` + + + \ No newline at end of file diff --git a/command/hostname.md b/command/hostname.md new file mode 100644 index 0000000000..2fd65458b4 --- /dev/null +++ b/command/hostname.md @@ -0,0 +1,40 @@ +hostname +=== + +显示和设置系统的主机名 + +## 补充说明 + +**hostname命令** 用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改`/etc/hosts`和`/etc/sysconfig/network`的相关内容。 + +### 语法 + +``` +hostname(选项)(参数) +``` + +### 选项 + +``` +-v:详细信息模式; +-a:显示主机别名; +-d:显示DNS域名; +-f:显示FQDN名称; +-i:显示主机的ip地址; +-s:显示短主机名称,在第一个点处截断; +-y:显示NIS域名。 +``` + +### 参数 + +主机名:指定要设置的主机名。 + +### 实例 + +``` +[root@AY1307311912260196fcZ ~]# hostname +AY1307311912260196fcZ +``` + + + \ No newline at end of file diff --git a/command/htdigest.md b/command/htdigest.md new file mode 100644 index 0000000000..bfaea99363 --- /dev/null +++ b/command/htdigest.md @@ -0,0 +1,29 @@ +htdigest +=== + +Apache服务器内置工具 + +## 补充说明 + +**htdigest命令** 是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用于摘要认证的密码文件。 + +### 语法 + +``` +htdigest(选项)(参数) +``` + +### 选项 + +``` +-c:创建密码文件。 +``` + +### 参数 + +* 密码文件:指定要创建或更新的密码文件; +* 域:指定用户名所属的域; +* 用户名:要创建或者更新的用户名。 + + + \ No newline at end of file diff --git a/command/htpasswd.md b/command/htpasswd.md new file mode 100644 index 0000000000..c3100f785b --- /dev/null +++ b/command/htpasswd.md @@ -0,0 +1,74 @@ +htpasswd +=== + +apache服务器创建密码认证文件 + +## 补充说明 + +**htpasswd命令** 是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。 + +### 语法 + +### htpasswd(选项)(参数) + +### 选项 + +``` +-c:创建一个加密文件; +-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上; +-m:默认采用MD5算法对密码进行加密; +-d:采用CRYPT算法对密码进行加密; +-p:不对密码进行进行加密,即明文密码; +-s:采用SHA算法对密码进行加密; +-b:在命令行中一并输入用户名和密码而不是根据提示输入密码; +-D:删除指定的用户。 +``` + +### 参数 + +* 用户:要创建或者更新密码的用户名; +* 密码:用户的新密码。 + +### 实例 + + **利用htpasswd命令添加用户** + +``` +htpasswd -bc .passwd www.linuxde.net php +``` + +在bin目录下生成一个.passwd文件,用户名www.linuxde.net,密码:php,默认采用MD5加密方式。 + + **在原有密码文件中增加下一个用户** + +``` +htpasswd -b .passwd Jack 123456 +``` + +去掉`-c`选项,即可在第一个用户之后添加第二个用户,依此类推。 + + **不更新密码文件,只显示加密后的用户名和密码** + +``` +htpasswd -nb Jack 123456 +``` + +不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。 + + **利用htpasswd命令删除用户名和密码** + +``` +htpasswd -D .passwd Jack +``` + + **利用htpasswd命令修改密码** + +``` +htpasswd -D .passwd Jack +htpasswd -b .passwd Jack 123456 +``` + +即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。 + + + \ No newline at end of file diff --git a/command/ifcfg.md b/command/ifcfg.md new file mode 100644 index 0000000000..496e27c1b8 --- /dev/null +++ b/command/ifcfg.md @@ -0,0 +1,26 @@ +ifcfg +=== + +置Linux中的网络接口参数 + +## 补充说明 + +**ifcfg命令** 是一个Bash脚本程序,用来设置Linux中的网络接口参数。 + +### 语法 + +``` +ifcfg(参数) +``` + +### 参数 + +``` +网络接口:指定要操作的网络接口; +add/del:添加或删除网络接口上的地址; +ip地址:指定IP地址和子网掩码; +Stop:停用指定的网络接口的IP地址。 +``` + + + \ No newline at end of file diff --git a/command/ifdown.md b/command/ifdown.md new file mode 100644 index 0000000000..ee83f1c534 --- /dev/null +++ b/command/ifdown.md @@ -0,0 +1,27 @@ +ifdown +=== + +禁用指定的网络接口 + +## 补充说明 + +**ifdown命令** 用于禁用指定的网络接口。 + +### 语法 + +``` +ifdown(参数) +``` + +### 参数 + +网络接口:要禁用的网络接口。 + +### 实例 + +``` +ifdown eth0 #禁用eth0 +``` + + + \ No newline at end of file diff --git a/command/ifup.md b/command/ifup.md new file mode 100644 index 0000000000..beac735260 --- /dev/null +++ b/command/ifup.md @@ -0,0 +1,27 @@ +ifup +=== + +激活指定的网络接口 + +## 补充说明 + +**ifup命令** 用于激活指定的网络接口。 + +### 语法 + +``` +ifup(参数) +``` + +### 参数 + +网络接口:要激活的网络接口。 + +### 实例 + +``` +ifup eth0 #激活eth0 +``` + + + \ No newline at end of file diff --git a/command/ipcrm.md b/command/ipcrm.md new file mode 100644 index 0000000000..53b57cc4e5 --- /dev/null +++ b/command/ipcrm.md @@ -0,0 +1,38 @@ +ipcrm +=== + +删除消息队列、信号集、或者共享内存标识 + +## 补充说明 + +**ipcrm命令** 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 + +### 语法 + +``` +ipcrm [ -m SharedMemoryID ] [ -M SharedMemoryKey ] [ -q MessageID ] [ -Q MessageKey ] [ -s SemaphoreID ] [ -S SemaphoreKey ] +``` + +### 选项 + +``` +-m SharedMemory id 删除共享内存标识 SharedMemoryID。与 SharedMemoryID 有关联的共享内存段以及数据结构都会在最后一次拆离操作后删除。 +-M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识。与其相关的共享内存段和数据结构段都将在最后一次拆离操作后删除。 +-q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构。 +-Q MessageKey 删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构。 +-s SemaphoreID 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构。 +-S SemaphoreKey 删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构。 +``` + +msgctl、shmctl 和 semctl 子例程提供了删除操作的细节。标识和关键字可以用 ipcs 命令找到。 + +### 示例 + +如果要删除和 SharedMemoryID 18602 相关的共享内存段,请输入: + +``` +ipcrm -m 18602 +``` + + + \ No newline at end of file diff --git a/command/ipcs.md b/command/ipcs.md new file mode 100644 index 0000000000..011450bd67 --- /dev/null +++ b/command/ipcs.md @@ -0,0 +1,38 @@ +ipcs +=== + +分析消息队列共享内存和信号量 + +## 补充说明 + +**ipcs命令** 用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 + +### 语法 + +``` +ipcs(选项) +``` + +### 选项 + +``` +-a:显示全部可显示的信息; +-q:显示活动的消息队列信息; +-m:显示活动的共享内存信息; +-s:显示活动的信号量信息。 +``` + +### 实例 + +``` +ipcs -a +------ Shared Memory Segments -------- +key shmid owner perms bytes nattch status +0x7401833d 2654208 root 600 4 0 +0x00000000 3145729 root 600 4194304 9 dest +0x7401833c 2621442 root 600 4 0 +0xd201012b 3080195 root 600 1720 2 +``` + + + \ No newline at end of file diff --git a/command/lastlog.md b/command/lastlog.md new file mode 100644 index 0000000000..a0ff06e90f --- /dev/null +++ b/command/lastlog.md @@ -0,0 +1,59 @@ +lastlog +=== + +显示系统中所有用户最近一次登录信息 + +## 补充说明 + +**lastlog命令** 用于显示系统中所有用户最近一次登录信息。 + +lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志`/var/log/lastlog`的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示` **Never logged** `。注意需要以root身份运行该命令。 + +### 语法 + +``` +lastlog(选项) +``` + +### 选项 + +``` +-b<天数>:显示指定天数前的登录信息; +-h:显示召集令的帮助信息; +-t<天数>:显示指定天数以来的登录信息; +-u<用户名>:显示指定用户的最近登录信息。 +``` + +### 实例 + +``` +lastlog +Username Port From Latest +root pts/0 221.6.45.34 Tue Dec 17 09:40:48 +0800 2013 +bin **Never logged in** +daemon **Never logged in** +adm **Never logged in** +lp **Never logged in** +sync **Never logged in** +shutdown **Never logged in** +halt **Never logged in** +mail **Never logged in** +news **Never logged in** +uucp **Never logged in** +operator **Never logged in** +games **Never logged in** +gopher **Never logged in** +ftp **Never logged in** +nobody **Never logged in** +vcsa **Never logged in** +ntp **Never logged in** +sshd **Never logged in** +nscd **Never logged in** +ldap **Never logged in** +postfix **Never logged in** +www **Never logged in** +mysql **Never logged in** +``` + + + \ No newline at end of file diff --git a/command/lftp.md b/command/lftp.md new file mode 100644 index 0000000000..6a46f822f5 --- /dev/null +++ b/command/lftp.md @@ -0,0 +1,119 @@ +lftp +=== + +优秀的文件客户端程序 + +## 补充说明 + +**lftp命令** 是一款优秀的文件客户端程序,它支持ftp、SETP、HTTP和FTPs等多种文件传输协议。lftp支持tab自动补全,记不得命令双击tab键,就可以看到可能的选项了。 + +### 语法 + +``` +lftp(选项)(参数) +``` + +### 选项 + +``` +-f:指定lftp指令要执行的脚本文件; +-c:执行指定的命令后退出; +--help:显示帮助信息; +--version:显示指令的版本号。 +``` + +### 参数 + +站点:要访问的站点的ip地址或者域名。 + +### 实例 + + **登录ftp** + +``` +lftp 用户名:密码@ftp地址:传送端口(默认21) +``` + +也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。 + + **查看文件与改变目录** + +``` +ls +cd 对应ftp目录 +``` + + **下载** + +get当然是可以的,还可以: + +``` +mget -c *.pdf #把所有的pdf文件以允许断点续传的方式下载。 +mirror aaa/ #将aaa目录整个的下载下来,子目录也会自动复制。 +pget -c -n 10 file.dat #以最多10个线程以允许断点续传的方式下载file.dat,可以通过设置pget:default-n的值而使用默认值。 +``` + + **上传** + +同样的put、mput都是对文件的操作,和下载类似。 + +``` +mirror -R 本地目录名 +``` + +将本地目录以迭代(包括子目录)的方式反向上传到ftp site。 + + **模式设置** + +``` +set ftp:charset gbk +``` + +远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。 + +``` +set file:charset utf8 +``` + +本地的charset设定为utf8,如果你是gbk,相应改掉。 + +``` +set ftp:passive-mode 1 +``` + +使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0代表不用被动模式。 + + **书签** + +其实命令行也可以有书签,在lftp终端提示符下: + +``` +bookmark add ustc +``` + +就可以把当前正在浏览的ftp site用ustc作为标签储存起来。以后在shell终端下,直接`lftp ustc`就可以自动填好用户名和密码,进入对应的目录了。 + +``` +bookmark edit +``` + +会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。 + + **配置文件** + +``` +vim /etc/lftp.conf +``` + +一般,我会添加这几行: + +``` +set ftp:charset gbk +set file:charset utf8 +set pget:default-n 5 +``` + +这样,就不用每次进入都要打命令了。其他的set可以自己tab然后help来看。 + + + \ No newline at end of file diff --git a/command/logsave.md b/command/logsave.md new file mode 100644 index 0000000000..cb777feae3 --- /dev/null +++ b/command/logsave.md @@ -0,0 +1,28 @@ +logsave +=== + +将命令的输出信息保存到指定的日志文件 + +## 补充说明 + +**logsave命令** 运行给定的命令,并将命令的输出信息保存到指定的日志文件中。 + +### 语法 + +``` +logsave(选项)(参数) +``` + +### 选项 + +``` +-a:追加信息到指定的日志文件中。 +``` + +### 参数 + +* 日志文件:指定记录运行信息的日志文件; +* 指令:需要执行的指令。 + + + \ No newline at end of file diff --git a/command/logwatch.md b/command/logwatch.md new file mode 100644 index 0000000000..8871ef723b --- /dev/null +++ b/command/logwatch.md @@ -0,0 +1,71 @@ +logwatch +=== + +可定制和可插入式的日志监视系统 + +## 补充说明 + +**logwatch命令** 是一个可定制和可插入式的日志监视系统,它通过遍历给定时间范围内的系统日志文件而产生日志报告。logwatch默认每天执行一次,可以从`/etc/cron.daily`里看到。 + +### 语法 + +``` +logwatch(选项) +``` + +### 选项 + +``` +--detail<报告详细程度>:指定日志报告的详细程度; +--logfile<日志文件>:仅处理指定的日志文件; +--service<服务名>:仅处理指定服务的日志文件; +--print:打印结果到标准输出; +--mailto<邮件地址>:将结果发送到指定邮箱; +--range<日期范围>:指定处理日志的日期范围; +--archives:处理归档日志文件; +--debug<调试等级>:调试模式; +--save<文件名>:将结果保存到指定文件中,而不显示或者发送到指定邮箱; +--logdir<目录>:指定查找日志文件的目录,而不使用默认的日志目录; +--hostname<主机名>:指定在日志报告中使用的主机名,不使用系统默认的主机名; +--numeric:在报告中显示ip地址而不是主机名; +--help:显示指令的帮助信息。 +``` + +### 实例 + +检查你的主机上是否已经存在Logwatch(Redhat默认已经安装了Logwatch,不过版本比较旧): + +``` +rpm -qa logwatch +``` + +如果主机上没有logwatch,则执行: + +``` +rpm -Ivh logwatch***.rpm +``` + +如果有老版本的logwatch,则执行: + +``` +rpm -Uvh logwatch***.rpm +``` + +安装完毕后,开始配置: + +可以修改和添加它的logfiles、services和其他配置,但默认已经有很多脚本了,只要在1)里设置`Detail = High`就可以了。 + +* 可以添加新的配置到`/etc/logwatch/conf/logwatch.conf` +* 也可以修改`/usr/share/logwatch/default.conf/logwatch.conf` + +`/etc/logwatch/conf/`会自动覆盖`/usr/share/logwatch/default.conf/`下的同名文件。 + +如果没有设置logwatch.conf也没关系,可以直接在命令行下设置。 + +``` +logwatch --detail High --Service All --range All --print 基本就可以显示出所有日志的情况了 +logwatch --service sshd --detail High 只看sshd的日志情况 +``` + + + \ No newline at end of file diff --git a/command/mysql.md b/command/mysql.md new file mode 100644 index 0000000000..3054928d97 --- /dev/null +++ b/command/mysql.md @@ -0,0 +1,30 @@ +mysql +=== + +MySQL服务器客户端工具 + +## 补充说明 + +**mysql命令** 是MySQL数据库服务器的客户端工具,它工作在命令行终端中,完成对远程MySQL数据库服务器的操作。 + +### 语法 + +``` +mysql(选项)(参数) +``` + +### 选项 + +``` +-h:MySQL服务器的ip地址或主机名; +-u:连接MySQL服务器的用户名; +-e:执行mysql内部命令; +-p:连接MySQL服务器的密码。 +``` + +### 参数 + +数据库:指定连接服务器后自动打开的数据库。 + + + \ No newline at end of file diff --git a/command/mysqladmin.md b/command/mysqladmin.md new file mode 100644 index 0000000000..d882423b24 --- /dev/null +++ b/command/mysqladmin.md @@ -0,0 +1,52 @@ +mysqladmin +=== + +MySQL服务器管理客户端 + +## 补充说明 + +**mysqladmin命令** 是mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。 + +### 语法 + +``` +mysqladmin(选项)(参数) +``` + +### 选项 + +``` +-h:MySQL服务器主机名或ip地址; +-u:连接MySQL服务器的用户名; +-p:连接MySQL服务器的密码; +--help:显示帮助信息。 +``` + +### 参数 + +管理命令:需要在MySQL服务器上执行的管理命令。 + + **mysqladmin支持下列命令:** + +``` +create databasename:创建一个新数据库; +drop databasename:删除一个数据库及其所有表; +extended-status:给出服务器的一个扩展状态消息; +flush-hosts:清空所有缓存的主机; +flush-logs:清空所有日志; +flush-tables:清空所有表; +flush-privileges:再次装载授权表(同reload); +kill id,id,...:杀死mysql线程; +password 新口令:将老密码改为新密码; +ping:检查mysqld是否活着; +processlist:显示服务其中活跃线程列表; +reload:重载授权表; +refresh:清空所有表并关闭和打开日志文件; +shutdown:关掉服务器; +status:给出服务器的简短状态消息; +variables:打印出可用变量; +version:得到服务器的版本信息。 +``` + + + \ No newline at end of file diff --git a/command/mysqldump.md b/command/mysqldump.md new file mode 100644 index 0000000000..d87e31a202 --- /dev/null +++ b/command/mysqldump.md @@ -0,0 +1,62 @@ +mysqldump +=== + +MySQL数据库中备份工具 + +## 补充说明 + +**mysqldump命令** 是mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中。 + +### 语法 + +``` +mysqldump(选项) +``` + +### 选项 + +``` +--add-drop-table:在每个创建数据库表语句前添加删除数据库表的语句; +--add-locks:备份数据库表时锁定数据库表; +--all-databases:备份MySQL服务器上的所有数据库; +--comments:添加注释信息; +--compact:压缩模式,产生更少的输出; +--complete-insert:输出完成的插入语句; +--databases:指定要备份的数据库; +--default-character-set:指定默认字符集; +--force:当出现错误时仍然继续备份操作; +--host:指定要备份数据库的服务器; +--lock-tables:备份前,锁定所有数据库表; +--no-create-db:禁止生成创建数据库语句; +--no-create-info:禁止生成创建数据库库表语句; +--password:连接MySQL服务器的密码; +--port:MySQL服务器的端口号; +--user:连接MySQL服务器的用户名。 +``` + +### 实例 + + **导出整个数据库** + +``` +mysqldump -u 用户名 -p 数据库名 > 导出的文件名 +mysqldump -u linuxde -p smgp_apps_linuxde > linuxde.sql +``` + + **导出一个表** + +``` +mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 +mysqldump -u linuxde -p smgp_apps_linuxde users > linuxde_users.sql +``` + + **导出一个数据库结构** + +``` +mysqldump -u linuxde -p -d --add-drop-table smgp_apps_linuxde > linuxde_db.sql +``` + +`-d`没有数据,`--add-drop-tabl`e每个create语句之前增加一个`drop table` + + + \ No newline at end of file diff --git a/command/mysqlshow.md b/command/mysqlshow.md new file mode 100644 index 0000000000..85b5fb9f31 --- /dev/null +++ b/command/mysqlshow.md @@ -0,0 +1,33 @@ +mysqlshow +=== + +显示MySQL中数据库相关信息 + +## 补充说明 + +**mysqlshow命令** 用于显示mysql服务器中数据库、表和列表信息。 + +### 语法 + +``` +mysqlshow(选项)(参数) +``` + +### 选项 + +``` +-h:MySQL服务器的ip地址或主机名; +-u:连接MySQL服务器的用户名; +-p:连接MySQL服务器的密码; +--count:显示每个数据表中数据的行数; +-k:显示数据表的索引; +-t:显示数据表的类型; +-i:显示数据表的额外信息。 +``` + +### 参数 + +数据库信息:指定要显示的数据库信息,可以是一个数据库名,或者是数据库名和表名,或者是数据库名、表名和列名。 + + + \ No newline at end of file diff --git a/command/nfsstat.md b/command/nfsstat.md new file mode 100644 index 0000000000..81d194e521 --- /dev/null +++ b/command/nfsstat.md @@ -0,0 +1,56 @@ +nfsstat +=== + +列出NFS客户端和服务器的工作状态 + +## 补充说明 + +**nfsstat命令** 用于列出NFS客户端和服务器的工作状态。 + +### 语法 + +``` +nfsstat(选项) +``` + +### 选项 + +``` +-s:仅列出NFS服务器端状态; +-c:仅列出NFS客户端状态; +-n:仅列出NFS状态,默认显示nfs客户端和服务器的状态; +-2:仅列出NFS版本2的状态; +-3:仅列出NFS版本3的状态; +-4:仅列出NFS版本4的状态; +-m:打印以加载的nfs文件系统状态; +-r:仅打印rpc状态。 +``` + +### 实例 + +要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息,输入: + +``` +nfsstat -c +``` + +要显示和打印与客户机NFS调用相关的信息,输入如下命令: + +``` +nfsstat -cn +``` + +要显示和打印客户机和服务器的与RPC调用相关的信息,输入如下命令: + +``` +nfsstat -r +``` + +要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息,输入如下命令: + +``` +nfsstat –s +``` + + + \ No newline at end of file diff --git a/command/nisdomainname.md b/command/nisdomainname.md new file mode 100644 index 0000000000..538bac4280 --- /dev/null +++ b/command/nisdomainname.md @@ -0,0 +1,23 @@ +nisdomainname +=== + +显示主机NIS的域名 + +## 补充说明 + +**nisdomainname命令** 用于显示主机NIS的域名。 + +### 语法 + +``` +nisdomainname(选项) +``` + +### 选项 + +``` +-v:详细信息模式。 +``` + + + \ No newline at end of file diff --git a/command/nohup.md b/command/nohup.md new file mode 100644 index 0000000000..2008b6433b --- /dev/null +++ b/command/nohup.md @@ -0,0 +1,38 @@ +nohup +=== + +将程序以忽略挂起信号的方式运行起来 + +## 补充说明 + +**nohup命令** 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。 + +无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到`$HOME/nohup.out`文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。 + +### 语法 + +nohup(选项)(参数) + +### 选项 + +``` +--help:在线帮助; +--version:显示版本信息。 +``` + +### 参数 + +程序及选项:要运行的程序及选项。 + +### 实例 + +使用nohup命令提交作业,如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件: + +``` +nohup command > myout.file 2>&1 & +``` + +在上面的例子中,输出被重定向到myout.file文件中。 + + + \ No newline at end of file diff --git a/command/nslookup.md b/command/nslookup.md new file mode 100644 index 0000000000..51f4984f69 --- /dev/null +++ b/command/nslookup.md @@ -0,0 +1,44 @@ +nslookup +=== + +查询域名DNS信息的工具 + +## 补充说明 + +**nslookup命令** 是常用域名查询工具,就是查DNS信息用的命令。 + +nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。 + +进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即`/etc/resolv.conf`的第一个dns地址)。或者输入`nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以了。 + +### 语法 + +``` +nslookup(选项)(参数) +``` + +### 选项 + +``` +-sil:不显示任何警告信息。 +``` + +### 参数 + +域名:指定要查询域名。 + +### 实例 + +``` +[root@localhost ~]# nslookup www.linuxde.net +Server: 202.96.104.15 +Address: 202.96.104.15#53 + +Non-authoritative answer: +www.linuxde.net canonical name = host.1.linuxde.net. +Name: host.1.linuxde.net +Address: 100.42.212.8 +``` + + + \ No newline at end of file diff --git a/command/openssl.md b/command/openssl.md new file mode 100644 index 0000000000..4ca916f27d --- /dev/null +++ b/command/openssl.md @@ -0,0 +1,213 @@ +openssl +=== + +强大的安全套接字层密码库 + +## 补充说明 + +**OpenSSL** 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。在OpenSSL被曝出现严重安全漏洞后,发现多数通过SSL协议加密的网站使用名为OpenSSL的开源软件包。由于这是互联网应用最广泛的安全传输方法,被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用,所以该漏洞影响范围广大。 + +OpenSSL有两种运行模式:交互模式和批处理模式。 + +直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式。 + +OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。  + + **对称加密算法** + +OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。  + + **非对称加密算法** + +OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。  + + **信息摘要算法** + +OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。  + + **密钥和证书管理** + +密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。  + +首先,OpenSSL实现了ASN.1的证书和密钥相关标准,提供了对证书、公钥、私钥、证书请求以及CRL等数据对象的DER、PEM和BASE64的编解码功能。OpenSSL提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序,同时提供了对公钥和私钥的DER编解码功能。并实现了私钥的PKCS#12和PKCS#8的编解码功能。OpenSSL在标准中提供了对私钥的加密保护功能,使得密钥可以安全地进行存储和分发。  + +在此基础上,OpenSSL实现了对证书的X.509标准编解码、PKCS#12格式的编解码以及PKCS#7的编解码功能。并提供了一种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、吊销和验证等功能。  + +事实上,OpenSSL提供的CA应用程序就是一个小型的证书管理中心(CA),实现了证书签发的整个流程和证书管理的大部分机制。 + +### 实例 + + **1、消息摘要算法应用例子** + +用SHA1算法计算文件file.txt的哈西值,输出到stdout: + +``` +# openssl dgst -sha1 file.txt +``` + +用SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt: + +``` +# openssl sha1 -out digest.txt file.txt +``` + +用DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin。签名的private key必须为DSA算法产生的,保存在文件dsakey.pem中。 + +``` +# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt +``` + +用dss1算法验证file.txt的数字签名dsasign.bin,验证的private key为DSA算法产生的文件dsakey.pem。 + +``` +# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt +``` + +用sha1算法为文件file.txt签名,输出到文件rsasign.bin,签名的private key为RSA算法产生的文件rsaprivate.pem。 + +``` +# openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt +``` + +# 用sha1算法验证file.txt的数字签名rsasign.bin,验证的public key为RSA算法生成的rsapublic.pem。 + +``` +# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt +``` + + **2、对称加密应用例子** + +对称加密应用例子,用DES3算法的CBC模式加密文件plaintext.doc,加密结果输出到文件ciphertext.bin。 + +``` +# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin +``` + +用DES3算法的OFB模式解密文件ciphertext.bin,提供的口令为trousers,输出到文件plaintext.doc。注意:因为模式不同,该命令不能对以上的文件进行解密。 + +``` +# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers +``` + +用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取,输出到文件ciphertext.bin。 + +``` +# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD +``` + +给文件ciphertext.bin用base64编码,输出到文件base64.txt。 + +``` +# openssl base64 -in ciphertext.bin -out base64.txt +``` + +用RC5算法的CBC模式加密文件plaintext.doc,输出到文件ciphertext.bin,salt、key和初始化向量(iv)在命令行指定。 + +``` +# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29 +``` + + **3、Diffie-Hellman应用例子** + +使用生成因子2和随机的1024-bit的素数产生D0ffie-Hellman参数,输出保存到文件dhparam.pem + +``` +# openssl dhparam -out dhparam.pem -2 1024 +``` + +从dhparam.pem中读取Diffie-Hell参数,以C代码的形式,输出到stdout。 + +``` +# openssl dhparam -in dhparam.pem -noout -C +``` + + **4、DSA应用例子应用例子** + +生成1024位DSA参数集,并输出到文件dsaparam.pem。 + +``` +# openssl dsaparam -out dsaparam.pem 1024 +``` + +使用参数文件dsaparam.pem生成DSA私钥匙,采用3DES加密后输出到文件dsaprivatekey.pem + +``` +# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem +``` + +使用私钥匙dsaprivatekey.pem生成公钥匙,输出到dsapublickey.pem + +``` +# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem +``` + +从dsaprivatekey.pem中读取私钥匙,解密并输入新口令进行加密,然后写回文件dsaprivatekey.pem + +``` +# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin +``` + + **5、RSA应用例子** + +产生1024位RSA私匙,用3DES加密它,口令为trousers,输出到文件rsaprivatekey.pem + +``` +# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024 +``` + +从文件rsaprivatekey.pem读取私匙,用口令trousers解密,生成的公钥匙输出到文件rsapublickey.pem + +``` +# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem +``` + +用公钥匙rsapublickey.pem加密文件plain.txt,输出到文件cipher.txt + +``` +# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt +``` + +使用私钥匙rsaprivatekey.pem解密密文cipher.txt,输出到文件plain.txt + +``` +# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt +``` + +用私钥匙rsaprivatekey.pem给文件plain.txt签名,输出到文件signature.bin + +``` +# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin +``` + +用公钥匙rsapublickey.pem验证签名signature.bin,输出到文件plain.txt + +``` +# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain +``` + +从X.509证书文件cert.pem中获取公钥匙,用3DES加密mail.txt,输出到文件mail.enc + +``` +# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem +``` + +从X.509证书文件cert.pem中获取接收人的公钥匙,用私钥匙key.pem解密S/MIME消息mail.enc,结果输出到文件mail.txt + +``` +# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt +``` + +cert.pem为X.509证书文件,用私匙key,pem为mail.txt签名,证书被包含在S/MIME消息中,输出到文件mail.sgn + +``` +# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn +``` + +验证S/MIME消息mail.sgn,输出到文件mail.txt,签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn中 + +``` +# openssl smime -verify -in mail.sgn -out mail.txt +``` + + + \ No newline at end of file diff --git a/command/pgrep.md b/command/pgrep.md new file mode 100644 index 0000000000..641dcbaa85 --- /dev/null +++ b/command/pgrep.md @@ -0,0 +1,61 @@ +pgrep +=== + +设置用户的认证信息,包括用户密码、密码过期时间等 + +## 补充说明 + +**pgrep命令** 以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。 + +### 语法 + +``` +pgrep(选项)(参数) +``` + +### 选项 + +``` +-o:仅显示找到的最小(起始)进程号; +-n:仅显示找到的最大(结束)进程号; +-l:显示进程名称; +-P:指定父进程号; +-g:指定进程组; +-t:指定开启进程的终端; +-u:指定进程的有效用户ID。 +``` + +### 参数 + +进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。 + +### 实例 + +``` +pgrep -lo httpd +4557 httpd + root@localhost ~ httpd +4566 httpd + +[root@localhost ~]# pgrep -l httpd +4557 httpd +4560 httpd +4561 httpd +4562 httpd +4563 httpd +4564 httpd +4565 httpd +4566 httpd + +[root@localhost ~]# pgrep httpd 4557 +4560 +4561 +4562 +4563 +4564 +4565 +4566 +``` + + + \ No newline at end of file diff --git a/command/pidof.md b/command/pidof.md new file mode 100644 index 0000000000..68f1b52832 --- /dev/null +++ b/command/pidof.md @@ -0,0 +1,43 @@ +pidof +=== + +查找指定名称的进程的进程号ID号 + +## 补充说明 + +**pidof命令** 用于查找指定名称的进程的进程号id号。 + +### 语法 + +``` +pidof(选项)(参数) +``` + +### 选项 + +``` +-s:仅返回一个进程号; +-c:仅显示具有相同“root”目录的进程; +-x:显示由脚本开启的进程; +-o:指定不显示的进程ID。 +``` + +### 参数 + +进程名称:指定要查找的进程名称。 + +### 实例 + +``` +pidof nginx +13312 5371 + +pidof crond +1509 + +pidof init +1 +``` + + + \ No newline at end of file diff --git a/command/restorecon.md b/command/restorecon.md new file mode 100644 index 0000000000..cac35689ae --- /dev/null +++ b/command/restorecon.md @@ -0,0 +1,69 @@ +restorecon +=== + +恢复文件的安全上下文 + +## 补充说明 + +**restorecon命令** 用来恢复SELinux文件属性即恢复文件的安全上下文。 + +### 语法 + +``` +restorecon [-iFnrRv] [-e excludedir ] [-o filename ] [-f filename | pathname...] +``` + +### 选项 + +``` +-i:忽略不存在的文件。 +-f:infilename 文件 infilename 中记录要处理的文件。 +-e:directory 排除目录。 +-R/-r:递归处理目录。 +-n:不改变文件标签。 +-o/outfilename:保存文件列表到 outfilename,在文件不正确情况下。 +-v:将过程显示到屏幕上。 +-F:强制恢复文件安全语境。 +``` + +### 实例 + +假设CentOS安装了apache,网页默认的主目录是`/var/www/html`,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录`/var/www/html`中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与`/var/www/html`目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例: + +
/*使用CentOS举例,如果默认没有安装apache,确保网络连接,使用下面的命令安装*/
+root@linuxde.net ~ install httpd
+ /*我们在root的家目录新建一个html文件*/
+root@linuxde.net ~
+/root
+
+root@linuxde.net ~ index.html
+
+/*随便输入一段文字,保存退出*/
+welcome to www.linuxde.net
+
+/*将这个文件mv到网页默认目录下*/
+[root@linuxde.net ~]# mv index.html /var/www/html/
+
+/*
+ * 这个时候我们使用firefox浏览器输入127.0.0.1/index.html发现打不开,
+ * 查看一下SELinux的日志文件,发现了下面这一段报错信息,从这个报错信息不难看出,
+ * 进程httpd访问网页主目录中的index.html时被SELinux阻止,原因是因为,SELinux配置信息不正确,
+ * 正确的SELinux配置信息应该是scontext=后面的部分,
+ * 而index.html文件的SELinux配置信息却是tcontext=后面的部分,
+ * 从tcontext=的第三段“admin_home_t”不难看出,这个文件的SELinux配置信息是root用户家目录的。
+ */
+type=AVC msg=audit(1378974214.610:465): avc:  denied  { open } for  pid=2359 comm="httpd" path="/var/www/html/index.html" dev="sda1" ino=1317685 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
+
+/*使用ls -Z也可以看出,文件和目录的SELinux信息不匹配*/
+[root@linuxde.net html]# ls -Z /var/www/html/
+.... unconfined_u:object_r:admin_home_t:s0 index.html
+
+[root@linuxde.net html]# ls -Zd /var/www/html/
+.... system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
+
+/*使用restorecon来恢复网页主目录中所有文件的SELinux配置信息(如果目标为一个目录,可以添加-R参数递归)*/
+[root@linuxde.net html]# restorecon -R /var/www/html/
+```
+
+
+
\ No newline at end of file
diff --git a/command/route.md b/command/route.md
new file mode 100644
index 0000000000..e6e3de9aab
--- /dev/null
+++ b/command/route.md
@@ -0,0 +1,105 @@
+route
+===
+
+显示并设置Linux中静态路由表
+
+## 补充说明
+
+**route命令** 用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
+
+在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在`/etc/rc.local`中添加route命令来保证该路由设置永久有效。
+
+### 语法  
+
+```
+route(选项)(参数)
+```
+
+### 选项  
+
+```
+-A:设置地址类型;
+-C:打印将Linux核心的路由缓存;
+-v:详细信息模式;
+-n:不执行DNS反向查找,直接显示数字形式的IP地址;
+-e:netstat格式显示路由表;
+-net:到一个网络的路由表;
+-host:到一个主机的路由表。
+```
+
+### 参数  
+
+```
+Add:增加指定的路由记录;
+Del:删除指定的路由记录;
+Target:目的网络或目的主机;
+gw:设置默认网关;
+mss:设置TCP的最大区块长度(MSS),单位MB;
+window:指定通过路由表的TCP连接的TCP窗口大小;
+dev:路由记录所表示的网络接口。
+```
+
+### 实例  
+
+ **显示当前路由:** 
+
+```
+[root@localhost ~]# route
+Kernel IP routing table
+Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
+112.124.12.0    *               255.255.252.0   U     0      0        0 eth1
+10.160.0.0      *               255.255.240.0   U     0      0        0 eth0
+192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
+172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
+10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
+default         112.124.15.247  0.0.0.0         UG    0      0        0 eth1
+
+[root@localhost ~]# route -n
+Kernel IP routing table
+Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
+112.124.12.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
+10.160.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
+192.168.0.0     10.160.15.247   255.255.0.0     UG    0      0        0 eth0
+172.16.0.0      10.160.15.247   255.240.0.0     UG    0      0        0 eth0
+10.0.0.0        10.160.15.247   255.0.0.0       UG    0      0        0 eth0
+0.0.0.0         112.124.15.247  0.0.0.0         UG    0      0        0 eth1
+```
+
+其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:
+
+*   U Up表示此路由当前为启动状态。
+*   H Host,表示此网关为一主机。
+*   G Gateway,表示此网关为一路由器。
+*   R Reinstate Route,使用动态路由重新初始化的路由。
+*   D Dynamically,此路由是动态性地写入。
+*   M Modified,此路由是由路由守护程序或导向器动态修改。
+*   ! 表示此路由当前为关闭状态。
+
+ **添加网关/设置网关:** 
+
+```
+route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    #增加一条到达244.0.0.0的路由。
+```
+
+ **屏蔽一条路由:** 
+
+```
+route add -net 224.0.0.0 netmask 240.0.0.0 reject     #增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
+```
+
+ **删除路由记录:** 
+
+```
+route del -net 224.0.0.0 netmask 240.0.0.0
+route del -net 224.0.0.0 netmask 240.0.0.0 reject
+```
+
+ **删除和添加设置默认网关:** 
+
+```
+route del default gw 192.168.120.240
+route add default gw 192.168.120.240
+```
+
+
+
\ No newline at end of file
diff --git a/command/seinfo.md b/command/seinfo.md
new file mode 100644
index 0000000000..238d3a6acd
--- /dev/null
+++ b/command/seinfo.md
@@ -0,0 +1,35 @@
+seinfo
+===
+
+查询SELinux的策略提供多少相关规则
+
+## 补充说明
+
+**seinfo命令** 是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
+
+### 语法  
+
+```
+seinfo(选项)
+```
+
+### 选项  
+
+```
+-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。
+-t:列出SELinux所有类型(type)的种类。
+-r:列出SELinux所有角色(role)的种类。
+-u:列出SELinux所有身份识别(user)的种类。
+-b:列出所有规则的种类(布尔值)。
+```
+
+### 实例  
+
+列出与httpd有关的规则:
+
+```
+seinfo -b | grep httpd
+```
+
+
+
\ No newline at end of file
diff --git a/command/semanage.md b/command/semanage.md
new file mode 100644
index 0000000000..4a8c14d0b5
--- /dev/null
+++ b/command/semanage.md
@@ -0,0 +1,86 @@
+semanage
+===
+
+默认目录的安全上下文查询与修改
+
+## 补充说明
+
+**semanage命令** 是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
+
+### 语法  
+
+```
+semanage {login|user|port|interface|fcontext|translation} -l
+semanage fcontext -{a|d|m} [-frst] file_spec
+```
+
+### 选项  
+
+```
+-l:查询。
+fcontext:主要用在安全上下文方面。
+-a:增加,你可以增加一些目录的默认安全上下文类型设置。
+-m:修改。
+-d:删除。
+```
+
+### 实例  
+
+查询一下`/var/www/html`的默认安全性本文的设置:
+
+```
+semanage fcontext -l
+SELinux fcontext    type          Context
+....(前面省略)....
+/var/www(/.*)?      all files     system_u:object_r:httpd_sys_content_t:s0
+....(後面省略)....
+```
+
+如上面例子所示,我们可以查询的到每个目录的安全性本文!而目录的设定可以使用正则表达式去指定一个范围。那么如果我们想要增加某些自定义目录的安全性本文呢?举例来说,我想要色设置`/srv/samba`成为 `public_content_t`的类型时,应该如何设置呢?
+
+用semanage命令设置`/srv/samba`目录的默认安全性本文为`public_content_t`:
+
+```
+mkdir /srv/samba
+ll -Zd /srv/samba
+drwxr-xr-x  root root root:object_r:var_t    /srv/samba
+```
+
+如上所示,默认的情况应该是`var_t`这个咚咚的!
+
+```
+semanage fcontext -l | grep '/srv'
+/srv/.*                     all files   system_u:object_r:var_t:s0
+/srv/(^/?ftp(/.*)?     all files   system_u:object_r:public_content_t:s0
+/srv/(^/?www(/.*)?     all files   system_u:object_r:httpd_sys_content_t:s0
+/srv/(^/?rsync(/.*)?   all files   system_u:object_r:public_content_t:s0
+/srv/gallery2(/.*)?         all files   system_u:object_r:httpd_sys_content_t:s0
+/srv                        directory   system_u:object_r:var_t:s0   //看这里!
+```
+
+上面则是默认的`/srv`底下的安全性本文资料,不过,并没有指定到`/srv/samba`。
+
+```
+semanage fcontext -a -t public_content_t "/srv/samba(/.*)?"
+semanage fcontext -l | grep '/srv/samba'
+/srv/samba(/.*)?            all files   system_u:object_r:public_content_t:s0
+```
+
+```
+cat /etc/selinux/targeted/contexts/files/file_contexts.local
+# This file is auto-generated by libsemanage
+# Please use the semanage command to make changes
+/srv/samba(/.*)?    system_u:object_r:public_content_t:s0  #写入这个档案
+
+```
+
+```
+restorecon -Rv /srv/samba* #尝试恢复默认值
+ll -Zd /srv/samba
+drwxr-xr-x  root root system_u:object_r:public_content_t /srv/samba/  #有默认值,以后用restorecon命令来修改比较简单!
+```
+
+semanage命令的功能很多,这里主要用到的仅有fcontext这个选项的用法而已。如上所示,你可以使用semanage来查询所有的目录默认值,也能够使用它来增加默认值的设置!
+
+
+
\ No newline at end of file
diff --git a/command/sendmail.md b/command/sendmail.md
new file mode 100644
index 0000000000..a88a7e4fdb
--- /dev/null
+++ b/command/sendmail.md
@@ -0,0 +1,33 @@
+sendmail
+===
+
+著名电子邮件服务器
+
+## 补充说明
+
+**sendmail命令** 是一款著名的电子邮件传送代理程序,也就是平常说的电子邮件服务器,它基于标准的简单邮件传输协议(SMTP)。
+
+### 语法  
+
+```
+sendmail(选项)
+```
+
+### 选项  
+
+```
+-bd:以守护进程方式运行指令;
+-bD:以前台运行方式运行;
+-bi:初始化别名数据库;
+-bm:以常规发送电子邮件;
+-bp:显示邮件的发送队列;
+-C:指定配置文件;
+-D:将调试的输出信息保存到日志文件,而不显示在标准输出设备上;
+-F:指定邮件发送者全名;
+-n:禁止使用邮件别名功能;
+-f:指定发件人的名字;
+-q:设置处理邮件队列中邮件的时间间隔。
+```
+
+
+
\ No newline at end of file
diff --git a/command/sesearch.md b/command/sesearch.md
new file mode 100644
index 0000000000..1bb4ff68fd
--- /dev/null
+++ b/command/sesearch.md
@@ -0,0 +1,45 @@
+sesearch
+===
+
+查询SELinux策略的规则详情
+
+## 补充说明
+
+使用seinfo命令可以查询SELinux的策略提供多少相关规则,如果查到的相关类型或者布尔值,想要知道详细规则时,使用 **sesearch命令** 查询。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
+
+### 语法  
+
+```
+sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
+```
+
+### 选项  
+
+```
+-a:列出该类型或布尔值的所有相关信息
+-t:后面还要接类型,例如 -t httpd_t
+-b:后面还要接布尔值的规则,例如 -b httpd_enable_ftp_server
+```
+
+### 实例  
+
+找出目标文件资源类型为`httpd_sys_content_t`的有关信息:
+
+```
+sesearch -a -t httpd_sys_content_t
+```
+
+找出主体进程为`httpd_t`且目标文件类型为httpd相关的所有信息:
+
+```
+sesearch -s httpd_t -t httpd_* -a
+```
+
+查看布尔值`httpd_enable_homedirs`设置了多少规则
+
+```
+sesearch -b httpd_enable_homedirs -a
+```
+
+
+
\ No newline at end of file
diff --git a/command/setsebool.md b/command/setsebool.md
new file mode 100644
index 0000000000..ec3f658da4
--- /dev/null
+++ b/command/setsebool.md
@@ -0,0 +1,155 @@
+setsebool
+===
+
+修改SElinux策略内各项规则的布尔值
+
+## 补充说明
+
+**setsebool命令** 是用来修改SElinux策略内各项规则的布尔值。setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
+
+### 语法  
+
+```
+setsebool [-P] 布尔值=[0|1]
+```
+
+### 选项  
+
+```
+-P:直接将设置值写入配置文件,该设置数据将来会生效的。
+```
+
+### 实例  
+
+允许vsvtp匿名用户写入权限:
+
+```
+setsebool -P allow_ftpd_anon_write=1
+```
+
+如果你希望你的ftp用户可以访问自己的家目录的话,需要开启:
+
+```
+setsebool -P ftp_home_dir 1
+```
+
+如果你希望将vsftpd以daemon的方式运行的话,需要开启:
+
+```
+setsebool -P ftpd_is_daemon 1
+```
+
+你可以让SElinux停止保护vsftpd的daemon方式动行:
+
+```
+setsebool -P ftpd_disable_trans 1 
+```
+
+HTTP被设置允许cgi的设置:
+
+```
+setsebool -P httpd_enable_cgi 1
+```
+
+允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页:
+
+```
+setsebool -P httpd_enable_homedirs 1
+chcon -R -t httpd_sys_content_t ~user/public_html
+```
+
+允许httpd访问终端:
+
+```
+setsebool -P httpd_tty_comm 1
+```
+
+关闭Selinux的关于httpd进程守护的保护:
+
+```
+setsebool -P httpd_disable_trans 1
+service httpd restart
+```
+
+关于named、master更新selinux设定:
+
+```
+setsebool -P named_write_master_zones 1
+```
+
+关闭named的进程守护保护:
+
+```
+setsebool -P named_disable_trans 1
+service named restart
+```
+
+Selinux将本机的NFS共享设置成只读:
+
+```
+setsebool -P nfs_export_all_ro 1
+```
+
+SElinux将本机的NFS共享设置成可读可写:
+
+```
+setsebool -P nfs_export_all_rw 1
+```
+
+如果你想要将远程NFS的家目录共享到本机,需要开启:
+
+```
+setsebool -P use_nfs_home_dirs 1
+```
+
+如果samba服务器共享目录给多个域,则需要:
+
+```
+setsebool -P allow_smbd_anon_write=1
+```
+
+samba服务器要共享家目录时:
+
+```
+setsebool -P samba_enable_home_dirs 1
+```
+
+如果你需在本机上使用远程samba服务器的家目录:
+
+```
+setsebool -P use_samba_home_dirs 1
+```
+
+关闭selinux关于samba的进程守护的保护:
+
+```
+setsebool -P smbd_disable_trans 1
+service smb restart
+```
+
+允许rsync其他用户写入时:
+
+```
+setsebool -P allow_rsync_anon_write=1
+```
+
+停止rsync的进程保护
+
+```
+setsebool -P rsync_disable_trans 1
+```
+
+允许系统使用kerberos:
+
+```
+setsebool -P allow_kerberos 1
+```
+
+系统工作在nis环境时:
+
+```
+setsebool -P allow_ypbind 1
+```
+
+
+
\ No newline at end of file
diff --git a/command/sftp.md b/command/sftp.md
new file mode 100644
index 0000000000..d03cc48c23
--- /dev/null
+++ b/command/sftp.md
@@ -0,0 +1,34 @@
+sftp
+===
+
+交互式的文件传输程序
+
+## 补充说明
+
+**sftp命令** 是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。
+
+### 语法  
+
+```
+sftp(选项)(参数)
+```
+
+### 选项  
+
+```
+-B:指定传输文件时缓冲区的大小;
+-l:使用ssh协议版本1;
+-b:指定批处理文件;
+-C:使用压缩;
+-o:指定ssh选项;
+-F:指定ssh配置文件;
+-R:指定一次可以容忍多少请求数;
+-v:升高日志等级。
+```
+
+### 参数  
+
+目标主机:指定sftp服务器ip地址或者主机名。
+
+
+
\ No newline at end of file
diff --git a/command/showmount.md b/command/showmount.md
new file mode 100644
index 0000000000..d4dd07fe2c
--- /dev/null
+++ b/command/showmount.md
@@ -0,0 +1,28 @@
+showmount
+===
+
+显示NFS服务器加载的信息
+
+## 补充说明
+
+**showmount命令** 查询“mountd”守护进程,以显示NFS服务器加载的信息。
+
+### 语法  
+
+```
+showmount(选项)(参数)
+```
+
+### 选项  
+
+```
+-d:仅显示已被NFS客户端加载的目录;
+-e:显示NFS服务器上所有的共享目录。
+```
+
+### 参数  
+
+NFS服务器:指定NFS服务器的ip地址或者主机名。
+
+
+
\ No newline at end of file
diff --git a/command/skill.md b/command/skill.md
new file mode 100644
index 0000000000..537acdc655
--- /dev/null
+++ b/command/skill.md
@@ -0,0 +1,126 @@
+skill
+===
+
+向选定的进程发送信号冻结进程
+
+## 补充说明
+
+**skill命令** 用于向选定的进程发送信号,冻结进程。这个命令初学者并不常用,深入之后牵涉到系统服务优化之后可能会用到。
+
+### 语法  
+
+```
+skill(选项)
+```
+
+### 选项  
+
+```
+-f:快速模式;
+-i:交互模式,每一步操作都需要确认;
+-v:冗余模式;
+-w:激活模式;
+-V:显示版本号;
+-t:指定开启进程的终端号;
+-u:指定开启进程的用户;
+-p:指定进程的id号;
+-c:指定开启进程的指令名称。
+```
+
+### 实例  
+
+如果您发现了一个占用大量CPU和内存的进程,但又不想停止它,该怎么办?考虑下面的top命令输出:
+
+```
+top -c -p 16514
+23:00:44  up 12 days,  2:04,  4 users,  load average: 0.47, 0.35, 0.31
+1 processes: 1 sleeping, 0 running, 0 zombie, 0 stopped
+CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
+           total    0.0%    0.6%    8.7%   2.2%     0.0%   88.3%    0.0%
+Mem:  1026912k av, 1010476k used,   16436k free,       0k shrd,   52128k buff
+                    766724k actv,  143128k in_d,   14264k in_c
+Swap: 2041192k av,   83160k used, 1958032k free                  799432k cached
+
+  PID USER     PRI  NI  SIZE  RSS SHARE stat %CPU %MEM   time CPU command
+16514 oracle    19   4 28796  26M 20252 D N   7.0  2.5   0:03   0 oraclePRODB2...
+```
+
+既然您确认进程16514占用了大量内存,您就可以使用skill命令“冻结”它,而不是停止它。
+
+```
+skill -STOP 1
+```
+
+之后,检查top输出:
+
+```
+23:01:11  up 12 days,  2:05,  4 users,  load average: 1.20, 0.54, 0.38
+1 processes: 0 sleeping, 0 running, 0 zombie, 1 stopped
+CPU states:  cpu    user    nice  system    irq  softirq  iowait    idle
+           total    2.3%    0.0%    0.3%   0.0%     0.0%    2.3%   94.8%
+Mem:  1026912k av, 1008756k used,   18156k free,       0k shrd,    3976k buff
+                    770024k actv,  143496k in_d,   12876k in_c
+Swap: 2041192k av,   83152k used, 1958040k free                  851200k cached
+
+  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
+16514 oracle    19   4 28796  26M 20252 T N   0.0  2.5   0:04   0 oraclePRODB2...
+```
+
+现在,CPU 从 0% 空闲变为 94% 空闲。该进程被有效冻结。过一段时间之后,您可能希望唤醒该进程:
+
+```
+skill -CONT 16514
+```
+
+如果希望暂时冻结进程以便为完成更重要的进程腾出空间,该方法非常有用。
+
+此命令用途很广。如果您要停止 "oracle" 用户的所有进程,只需要一个命令即可实现:
+
+```
+skill -STOP oracle
+```
+
+可以使用用户、PID、命令或终端 id 作为参数。以下命令可停止所有 rman 命令。
+
+```
+skill -STOP rman
+```
+
+如您所见,skill 决定您输入的参数(进程 ID、用户 ID 或命令)并进行相应操作。这可能会导致在某些情况下出现这样的问题:您可能具有同名的用户和命令。最好的示例是 "oracle" 进程,通常由用户 "oracle" 运行。因此,当您希望停止名为 "oracle" 的进程时,可执行以下命令:
+
+```
+skill -STOP oracle
+```
+
+用户 "oracle" 的所有进程都停止,包括您可能要使用的会话。要非常明确地执行命令,您可以选择使用一个新参数指定参数的类型。要停止一个名为 oracle 的命令,可执行以下命令:
+
+```
+skill -STOP -c oracle
+```
+
+snice命令的功能与skill类似。但它用于降低进程的优先级,而不是停止进程。首先,检查 top 输出:
+
+```
+  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
+    3 root      15   0     0    0     0 RW    0.0  0.0   0:00   0 kapmd
+13680 oracle    15   0 11336  10M  8820 T     0.0  1.0   0:00   0 oracle
+13683 oracle    15   0  9972 9608  7788 T     0.0  0.9   0:00   0 oracle
+13686 oracle    15   0  9860 9496  7676 T     0.0  0.9   0:00   0 oracle
+13689 oracle    15   0 10004 9640  7820 T     0.0  0.9   0:00   0 oracle
+13695 oracle    15   0  9984 9620  7800 T     0.0  0.9   0:00   0 oracle
+13698 oracle    15   0 10064 9700  7884 T     0.0  0.9   0:00   0 oracle
+13701 oracle    15   0 22204  21M 16940 T     0.0  2.1   0:00   0 oracle
+```
+
+现在,将 "oracle" 进程的优先级降低四个点。注意,该值越高,优先级越低。
+
+```
+snice +4 -u oracle
+  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
+16894 oracle    20   4 38904  32M 26248 D N   5.5  3.2   0:01   0 oracle
+```
+
+注意,NI 列(nice 值)现在是 4,优先级现在设置为 20,而不是 15。这对于降低优先级非常有帮助。
+
+
+
\ No newline at end of file
diff --git a/command/smbpasswd.md b/command/smbpasswd.md
new file mode 100644
index 0000000000..66eeb4e302
--- /dev/null
+++ b/command/smbpasswd.md
@@ -0,0 +1,32 @@
+smbpasswd
+===
+
+samba用户和密码管理工具
+
+## 补充说明
+
+**smbpasswd命令** 属于samba套件,能够实现添加或删除samba用户和为用户修改密码。
+
+### 语法  
+
+```
+smbpasswd(选项)(参数)
+```
+
+### 选项  
+
+```
+-a:向smbpasswd文件中添加用户;
+-c:指定samba的配置文件;
+-x:从smbpasswd文件中删除用户;
+-d:在smbpasswd文件中禁用指定的用户;
+-e:在smbpasswd文件中激活指定的用户;
+-n:将指定的用户的密码置空。
+```
+
+### 参数  
+
+用户名:指定要修改SMB密码的用户。
+
+
+
\ No newline at end of file
diff --git a/command/squid.md b/command/squid.md
new file mode 100644
index 0000000000..4a212901a6
--- /dev/null
+++ b/command/squid.md
@@ -0,0 +1,31 @@
+squid
+===
+
+squid服务器守护进程
+
+## 补充说明
+
+**squid命令** 高性能的Web客户端代理缓存服务器套件“squid”的服务器守护进程。
+
+### 语法  
+
+```
+squid(选项)
+```
+
+### 选项  
+
+```
+-d:将指定调试等级的信息发送到标准错误设备;
+-f:使用指定的配置文件。而不使用默认配置文件;
+-k:向squid服务器发送指令;
+-s:启用syslog日志;
+-z:创建缓存目录;
+-C:不捕获致命信号;
+-D:不进行DNS参数测试;
+-N:以非守护进程模式运行;
+-X:强制进入完全调试模式。
+```
+
+
+
\ No newline at end of file
diff --git a/command/squidclient.md b/command/squidclient.md
new file mode 100644
index 0000000000..ee5d2f8328
--- /dev/null
+++ b/command/squidclient.md
@@ -0,0 +1,34 @@
+squidclient
+===
+
+squid服务器的客户端管理工具
+
+## 补充说明
+
+**squidclient命令** 使用squid服务器的客户端管理工具,它可以查看squid服务器的详细运行信息和管理squid服务器。
+
+### 语法  
+
+```
+squidclient(选项)(参数)
+```
+
+### 选项  
+
+```
+-a:不包含“accept:header”;
+-r:强制缓存重新加载URL;
+-s:安静模式,不输出信息到标准输出设备;
+-h:从指定主机获取url
+-l:指定一个本地ip地址进行绑定;
+-p:端口号,默认为3128;
+-m:指定发送请求的方法;
+-u:代理认证用户名。
+```
+
+### 参数  
+
+URL:指定操作缓存中的URL。
+
+
+
\ No newline at end of file
diff --git a/command/ssh-keyscan.md b/command/ssh-keyscan.md
new file mode 100644
index 0000000000..cfffb06470
--- /dev/null
+++ b/command/ssh-keyscan.md
@@ -0,0 +1,33 @@
+ssh-keyscan
+===
+
+收集主机公钥的使用工具
+
+## 补充说明
+
+**ssh-keyscan命令** 是一个收集大量主机公钥的使用工具。
+
+### 语法  
+
+```
+ssh-keyscan(选项)(参数)
+```
+
+### 选项  
+
+```
+-4:强制使用IPv4地址;
+-6:强制使用IPv6地址;
+-f:从指定文件中读取“地址列表/名字列表”;
+-p:指定连接远程主机的端口;
+-T:指定连接尝试的超时时间;
+-t:指定要创建的密钥类型;
+-v:信息模式,打印调试信息。
+```
+
+### 参数  
+
+主机列表:指定要收集公钥的主机列表。
+
+
+
\ No newline at end of file
diff --git a/command/ssh.md b/command/ssh.md
new file mode 100644
index 0000000000..228f9e5647
--- /dev/null
+++ b/command/ssh.md
@@ -0,0 +1,47 @@
+ssh
+===
+
+openssh套件中的客户端连接工具
+
+## 补充说明
+
+**ssh命令** 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
+
+### 语法  
+
+```
+ssh(选项)(参数)
+```
+
+### 选项  
+
+```
+-1:强制使用ssh协议版本1;
+-2:强制使用ssh协议版本2;
+-4:强制使用IPv4地址;
+-6:强制使用IPv6地址;
+-A:开启认证代理连接转发功能;
+-a:关闭认证代理连接转发功能;
+-b:使用本机指定地址作为对应连接的源ip地址;
+-C:请求压缩所有数据;
+-F:指定ssh指令的配置文件;
+-f:后台执行ssh指令;
+-g:允许远程主机连接主机的转发端口;
+-i:指定身份文件;
+-l:指定连接远程服务器登录用户名;
+-N:不执行远程指令;
+-o:指定配置选项;
+-p:指定远程服务器上的端口;
+-q:静默模式;
+-X:开启X11转发功能;
+-x:关闭X11转发功能;
+-y:开启信任X11转发功能。
+```
+
+### 参数  
+
+*   远程主机:指定要连接的远程ssh服务器;
+*   指令:要在远程ssh服务器上执行的指令。
+
+
+
\ No newline at end of file
diff --git a/command/syslog.md b/command/syslog.md
new file mode 100644
index 0000000000..2608bc48e4
--- /dev/null
+++ b/command/syslog.md
@@ -0,0 +1,40 @@
+syslog
+===
+
+系统默认的日志守护进程
+
+## 补充说明
+
+**syslog** 是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。
+
+几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。
+
+通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。
+
+### 使用方法  
+
+在/var/log中创建并写入日志信息是由syslog协议处理的,是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用logger命令通过syslogd记录日志。
+
+要向syslog文件/var/log/messages中记录日志信息:
+
+```
+logger this is a test log line
+
+输出:
+tail -n 1 messages
+Jan  5 10:07:03 localhost root: this is a test log line
+
+```
+
+如果要记录特定的标记(tag)可以使用:
+
+```
+logger -t TAG this is a test log line
+
+输出:
+tail -n 1 messages
+Jan  5 10:37:14 localhost TAG: this is a test log line
+```
+
+
+
\ No newline at end of file
diff --git a/command/systemctl.md b/command/systemctl.md
new file mode 100644
index 0000000000..4ce1dc2684
--- /dev/null
+++ b/command/systemctl.md
@@ -0,0 +1,157 @@
+systemctl
+===
+
+系统服务管理器指令
+
+## 补充说明
+
+**systemctl命令** 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
任务旧指令新指令
使某服务自动启动chkconfig --level 3 httpd onsystemctl enable httpd.service
使某服务不自动启动chkconfig --level 3 httpd offsystemctl disable httpd.service
检查服务状态service httpd statussystemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务chkconfig --listsystemctl list-units --type=service
启动某服务service httpd startsystemctl start httpd.service
停止某服务service httpd stopsystemctl stop httpd.service
重启某服务service httpd restartsystemctl restart httpd.service
+ +### 实例 + +1.启动nfs服务 + +``` +systemctl start nfs-server.service +``` + +2.设置开机自启动 + +``` +systemctl enable nfs-server.service +``` + +3.停止开机自启动 + +``` +systemctl disable nfs-server.service +``` + +4.查看服务当前状态 + +``` +systemctl status nfs-server.service +``` + +5.重新启动某服务 + +``` +systemctl restart nfs-server.service +``` + +6.查看所有已启动的服务 + +``` +systemctl list -units --type=service +``` + +开启防火墙22端口 + +``` +iptables -I INPUT -p tcp --dport 22 -j accept +``` + +如果仍然有问题,就可能是SELinux导致的 + +关闭SElinux: + +修改`/etc/selinux/config`文件中的`SELINUX=””`为disabled,然后重启。 + +彻底关闭防火墙: + +``` +sudo systemctl status firewalld.service +sudo systemctl stop firewalld.service           +sudo systemctl disable firewalld.service +``` + + + \ No newline at end of file diff --git a/command/tracepath.md b/command/tracepath.md new file mode 100644 index 0000000000..ddb5392106 --- /dev/null +++ b/command/tracepath.md @@ -0,0 +1,43 @@ +tracepath +=== + +追踪目的主机经过的路由信息 + +## 补充说明 + +**tracepath命令** 用来追踪并显示报文到达目的主机所经过的路由信息。 + +### 语法 + +``` +tracepath(参数) +``` + +### 参数 + +* 目的主机:指定追踪路由信息的目的主机; +* 端口:指定使用的UDP端口号。 + +### 实例 + +``` +tracepath www.58.com + 1: 192.168.2.10 (192.168.2.10) 20.150ms pmtu 1500 + 1: unknown (192.168.2.1) 9.343ms + 2: 221.6.45.33 (221.6.45.33) 34.430ms + 3: 221.6.9.81 (221.6.9.81) 19.263ms + 4: 122.96.66.37 (122.96.66.37) 54.372ms + 5: 219.158.96.149 (219.158.96.149) asymm 6 128.526ms + 6: 123.126.0.66 (123.126.0.66) 138.281ms + 7: 124.65.57.26 (124.65.57.26) 166.244ms + 8: 61.148.154.98 (61.148.154.98) 103.723ms + 9: 202.106.42.102 (202.106.42.102) asymm 10 78.099ms +10: 210.77.139.150 (210.77.139.150) asymm 9 199.930ms +11: 211.151.104.6 (211.151.104.6) asymm 10 121.965ms +12: no reply +13: 211.151.111.30 (211.151.111.30) asymm 12 118.989ms reached + Resume: pmtu 1500 hops 13 back 12 +``` + + + \ No newline at end of file diff --git a/command/usernetctl.md b/command/usernetctl.md new file mode 100644 index 0000000000..6256620cf7 --- /dev/null +++ b/command/usernetctl.md @@ -0,0 +1,24 @@ +usernetctl +=== + +被允许时操作指定的网络接口 + +## 补充说明 + +**usernetctl命令** 在用于被允许时操作指定的网络接口。 + +### 语法 + +``` +usernetctl(参数) +``` + +### 参数 + +* 网络接口:被操纵的网络接口; +* up:激活网络接口; +* down:禁用网络接口; +* report:报告网络接口状态。 + + + \ No newline at end of file diff --git a/command/watch.md b/command/watch.md new file mode 100644 index 0000000000..1774af81a0 --- /dev/null +++ b/command/watch.md @@ -0,0 +1,43 @@ +watch +=== + +周期性的方式执行给定的指令 + +## 补充说明 + +**watch命令** 以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。 + +### 语法 + +``` +watch(选项)(参数) +``` + +### 选项 + +``` +-n:指定指令执行的间隔时间(秒); +-d:高亮显示指令输出信息不同之处; +-t:不显示标题。 +``` + +### 参数 + +指令:需要周期性执行的指令。 + +### 实例 + +``` +#watch uptime +#watch -t uptime +#watch -d -n 1 netstat -ntlp +#watch -d 'ls -l | fgrep goface' //监测goface的文件 +#watch -t -differences=cumulative uptime +#watch -n 60 from //监控mail +#watch -n 1 "df -i;df" //监测磁盘inode和block数目变化情况 +``` + +FreeBSD和Linux下watch命令的不同,在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果,如:`watch -n 1 -d netstat -ant`,而在FreeBSD下的watch命令是查看其它用户的正在运行的操作,watch允许你偷看其它terminal正在做什么,该命令只能让超级用户使用。 + + + \ No newline at end of file diff --git a/command/xauth.md b/command/xauth.md new file mode 100644 index 0000000000..4d86d9a350 --- /dev/null +++ b/command/xauth.md @@ -0,0 +1,41 @@ +xauth +=== + +显示和编辑被用于连接X服务器的认证信息 + +## 补充说明 + +**xauth命令** 用于显示和编辑被用于连接X服务器的认证信息。 + +### 语法 + +``` +xauth(选项)(参数) +``` + +### 选项 + +``` +-f:不使用默认的认证文件,而使用指定的认证文件; +-q:安静模式,不打印未请求的状态信息; +-v:详细模式,打印指定的各种操作信息; +-i:忽略认证文件锁定; +-b:执行任何操作,终端认证文件锁定。 +``` + +### 参数 + +* add:添加认证条目到认证文件中; +* extract:将指定的设备内容加入到指定的密码文件中; +* info:显示授权文件相关信息; +* exit:退出交互模式; +* list:列出给定的显示设备的内容; +* merge:合并多个授权文件内容; +* extract:将指定设备内容写入指定的授权文件; +* nextrct:将指定设备内容写入指定的授权文件; +* nmerge:合并多个授权文件内容; +* remove:删除指定显示设备的授权条目; +* source:从指定文件读取包含xauth的内容指令。 + + + \ No newline at end of file diff --git a/command/xclip.md b/command/xclip.md new file mode 100644 index 0000000000..821113a582 --- /dev/null +++ b/command/xclip.md @@ -0,0 +1,28 @@ +xclip +=== + +管理 X 粘贴板 + +## 补充说明 + +在 X 系统里面,从一个窗口复制一段文字到另一个窗口,有两套机制,分别是 Selections 和 cut buffers。 + +常用的 copy & paste 是利用的 cut buffers 机制;另外用鼠标选中一段文字,然后在另一个窗口按鼠标中键实现复制,利用的是 selections 机制。selection 又可以分为 master 和 slave selection。 + +当用鼠标选中一段文件,这段文字就自动被复制到 master selection。然后在另一个地方按鼠标中键,就自动把 master selection 的内容粘贴出来。 + +当你想复制少量文字的时候,两种方法都是很方便的。但是当复制大段文字的时候就挺麻烦。另外就是你可能会频繁的执行一些复制粘贴工作,不停的用鼠标选中文字,然后再粘贴。这是对手指的折磨。 + +我忍受不了这种折磨,所以发现了 xclip, 方便的管理 X selections 里面内容的工具。 + +比如如下命令就把文件 /etc/passwd 的内容复制到 X master selections 里面了。 + +``` +xclip -i /etc/passwd + +``` + +然后到别的地方就能复制出来,利用鼠标中键。或者是更舒服的 shift+insert。 我现在最常用的方法是通过键盘绑定来管理 X master selections 的内容。比如 alt+F1 就能把我的 ~/f1 的内容复制到 X master selections,alt+F2 复制 ~/f2 的内容。这样就能把你需要经常用到的内容方便的进行复制粘贴。比如常用的密码啥的。 + + + \ No newline at end of file diff --git a/command/xhost.md b/command/xhost.md new file mode 100644 index 0000000000..9805364141 --- /dev/null +++ b/command/xhost.md @@ -0,0 +1,32 @@ +xhost +=== + +制哪些X客户端能够在X服务器上显示 + +## 补充说明 + +**xhost命令** 是X服务器的访问控制工具,用来控制哪些X客户端能够在X服务器上显示。该命令必须从有显示连接的机器上运行。可以通过使用`-host`参数,从访问列表中除去一个名称。不要从访问列表中除去当前的名称。如果已经这样做了,请在作出任何更改之前注销系统。 + +### 语法 + +``` +xhost(参数) +``` + +### 参数 + +* +:关闭访问控制,允许任何主机访问本地的X服务器; +* -:打开访问控制,仅允许授权清单中的主机访问本地的X服务器。 + +输入无变量的xhost命令将显示访问X服务器的当前主机名,并显示一条消息表明访问是否已启用。 + +为了安全起见,只能从控制主机运行影响访问控制的选项。对于工作站来说,这台机器也就是服务器。对于X终端来说,这台机器是登录主机。 + +要在缺省情况下启用远程名称,可以在`/etc/X?.hosts`文件中定义名称,其中`?`为启用访问的显示器号。 + +例如,显示器`jeanne:0`可以由使用jeanne的缺省主机名的系统上的`/etc/X0.hosts`文件中定义的系统访问。在显示名称和文件名中,0表明已定义的远程系统允许通过增强X-Windows访问的显示器号。 + +注意:`-name`参数,定义要从X服务器访问列表中除去的主机名。已有的连接没有被中断,但将拒绝新的连接请求。注意:可以除去当前的机器;然而,不允许进行进一步的连接(包括试图将其添加回来)。再一次启用本地连接的唯一方法就是将服务器复位(因此也会中断所有连接)。 + + + \ No newline at end of file diff --git a/command/xset.md b/command/xset.md new file mode 100644 index 0000000000..5e56326a74 --- /dev/null +++ b/command/xset.md @@ -0,0 +1,29 @@ +xset +=== + +设置X-Window系统中的用户爱好的实用工具 + +## 补充说明 + +**xset命令** 是设置X-Window系统中的用户爱好的实用工具。 + +### 语法 + +``` +xset(选项)(参数) +``` + +### 选项 + +``` +-b:蜂鸣器开关设置; +-c:键盘按键声响设置。 +``` + +### 参数 + +* c:键盘按键声响设置; +* s:屏幕保护程序设置。 + + + \ No newline at end of file diff --git a/command/ypdomainname.md b/command/ypdomainname.md new file mode 100644 index 0000000000..ef7acbbb6c --- /dev/null +++ b/command/ypdomainname.md @@ -0,0 +1,23 @@ +ypdomainname +=== + +显示主机的NIS的域名 + +## 补充说明 + +**ypdomainname命令** 显示主机的NIS的域名。 + +### 语法 + +``` +ypdomainname(选项) +``` + +### 选项 + +``` +-v:详细信息模式。 +``` + + + \ No newline at end of file