diff --git a/Linux_man_cn/basename.md b/Linux_man_cn/basename.md index 692f41e..03b283c 100644 --- a/Linux_man_cn/basename.md +++ b/Linux_man_cn/basename.md @@ -5,8 +5,6 @@ **basename命令** 用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异 的输出文件名称 -## 选项 - ```markdown -a, --multiple support multiple arguments and treat each as a NAME -s, --suffix=SUFFIX remove a trailing SUFFIX diff --git a/Linux_man_cn/bc.md b/Linux_man_cn/bc.md index d32094c..43cf627 100644 --- a/Linux_man_cn/bc.md +++ b/Linux_man_cn/bc.md @@ -5,8 +5,6 @@ **bc命令** 是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以 很方便的进行浮点运算,当然整数运算也不再话下 -## 选项 - ```markdown -i --interactive 强制进入交互式模式;输入quit后回车退出此模式 -l --mathlib 定义使用的标准数学库 @@ -28,5 +26,4 @@ echo "sqrt(1000/10) + 1" | bc -l # 计算平方和平方根 echo "10^10" | bc echo "sqrt(100)" | bc - ``` diff --git a/Linux_man_cn/bzip2.md b/Linux_man_cn/bzip2.md index bb3ba96..8fef5c8 100644 --- a/Linux_man_cn/bzip2.md +++ b/Linux_man_cn/bzip2.md @@ -54,4 +54,4 @@ bzip2 -dc dir.tar.bz2 | tar -x # 展开压缩包,对tar.gz文件使用gzip而 bzip2 -c filename # 压缩到标准输出;使用`-c`指定压缩到标准输出不删除原有文件,不同的是,压缩后的文件无法输出到标准输出 bzip2 -- -myfilename # 使用bzip2的时候将所有后面的看作文件(即使文件名以'-'开头);为了防止文件名中`-`产生以为是选项的歧义 -``` \ No newline at end of file +``` diff --git a/Linux_man_cn/cat.md b/Linux_man_cn/cat.md index 851079b..2287a41 100644 --- a/Linux_man_cn/cat.md +++ b/Linux_man_cn/cat.md @@ -1,7 +1,5 @@ # **cat** -## 选项 - ```markdown 将[文件]或标准输入组合输出到标准输出 -A, --show-all 等于-vET,显示不可打印字符,行尾显示“$” diff --git a/Linux_man_cn/chattr.md b/Linux_man_cn/chattr.md index ef012db..c1190b5 100644 --- a/Linux_man_cn/chattr.md +++ b/Linux_man_cn/chattr.md @@ -38,5 +38,3 @@ chattr +i /etc/fstab # 用chattr命令防止系统中某个关键文件被修 chattr +a /data1/user_act.log # 让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作 ``` - - diff --git a/Linux_man_cn/chgrp.md b/Linux_man_cn/chgrp.md index 57c1bee..18c0857 100644 --- a/Linux_man_cn/chgrp.md +++ b/Linux_man_cn/chgrp.md @@ -9,8 +9,6 @@ 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或 群组识别码皆可 -## 选项 - ```markdown 用法:chgrp [选项]... 用户组 文件...  或:chgrp [选项]... --reference=参考文件 文件... @@ -47,5 +45,4 @@ ```bash chgrp -R mengxin /usr/meng # 将`/usr/meng`及其子目录下的所有文件的用户组改为mengxin chgrp newuser ah # 更改文件ah的组群所有者为newuser - ``` diff --git a/Linux_man_cn/chmod.md b/Linux_man_cn/chmod.md index 36548ac..260f439 100644 --- a/Linux_man_cn/chmod.md +++ b/Linux_man_cn/chmod.md @@ -6,10 +6,6 @@ 另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法 变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件 - - -## 选项 - ```markdown 用法:chmod [选项] 模式[,模式] 文件  或:chmod [选项] 八进制模式 文件 @@ -56,4 +52,3 @@ chmod 764 f01 chmod a+x f01 # 对文件f01的u,g,o都设置可执行属性 chown user:market f01 # 把文件f01给uesr,添加到market组 ``` - diff --git a/Linux_man_cn/chown.md b/Linux_man_cn/chown.md index ce1de98..ff5274a 100644 --- a/Linux_man_cn/chown.md +++ b/Linux_man_cn/chown.md @@ -7,8 +7,6 @@ 只有文件属主和超级用户才可以便用该命令 -## 选项 - ```markdown 用法:chown [选项]... [所有者][:[组]] 文件...  或:chown [选项]... --reference=参考文件 文件... @@ -23,30 +21,27 @@ With --reference, change the owner and group of each FILE to those of RFILE. (仅在可以更改符号链接的所有权的系统上有用) --from=当前所有者:当前所属组 只当每个文件的所有者和组符合选项所指定时才更改所有者和组。其中一个可以省略,这时已省略的属性就不 - 需要符合原有的属性 + 需要符合原有的属性 --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' - --reference=RFILE 使用RFILE的所有者和组,而不是指定OWNER:GROUP值 + --reference=RFILE 使用RFILE的所有者和组,而不是指定OWNER:GROUP值 -R, --recursive 对文件和目录递归处理 指定了-R选项时,以下选项将修改遍历层次的方式,如果制定了多个,只有最后一个生效 --H 如果命令行参数是目录的符号链接,则遍历它 --L 遍历目录下的没一个符号链接 +-H 如果命令行参数是目录的符号链接,则遍历它 +-L 遍历目录下的没一个符号链接 -P 不遍历任何符号链接(默认) Owner is unchanged if missing. Group is unchanged if missing, but changed to login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may be numeric as well as symbolic. - - - ``` ## 实例 ```bash -chown root /u # 将 /u 的属主更改为"root" -chown root:staff /u # 和上面类似,但同时也将其属组更改为"staff" -chown -hR root /u # 将 /u 及其子目录下所有文件的属主更改为"root" +chown root /u # 将 /u 的属主更改为"root" +chown root:staff /u # 和上面类似,但同时也将其属组更改为"staff" +chown -hR root /u # 将 /u 及其子目录下所有文件的属主更改为"root" ``` diff --git a/Linux_man_cn/chroot.md b/Linux_man_cn/chroot.md index a3f2ee7..cf3b879 100644 --- a/Linux_man_cn/chroot.md +++ b/Linux_man_cn/chroot.md @@ -7,23 +7,21 @@ chroot命令之后,系统读取的目录和文件将不再是系统根下的而是被指定的目录,因此它带来的好处大致有以下3个: - **增加了系统的安全性,限制了用户的权力:** + **增加了系统的安全性,限制了用户的权力:** 在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot 以此达到用户不能访问一些特定的文件 - **建立一个与原系统隔离的系统目录结构,方便用户的开发:** + **建立一个与原系统隔离的系统目录结构,方便用户的开发:** 使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译 以及一些与系统不相关的独立开发 - **切换系统的根目录位置,引导 Linux 系统启动以及急救系统等:** + **切换系统的根目录位置,引导 Linux 系统启动以及急救系统等:** chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根 位置并执行真正的 init。另外,当系统出现一些问题时,我们也可以使用 chroot 来切换到一个临时的系统 -## 选项 - ```markdown --userspec=用户:组 指定所用的用户及用户组(可使用"数字"或"名字") --groups=组列表 指定可供选择的用户组列表,形如组1,组2,组3... @@ -34,6 +32,4 @@ chroot 的作用就是切换系统的根位置,而这个作用最为明显的 ```bash chroot target /bin/sh # 将target作为根目录(运行其中的`/bin/sh`) chroot target /bin/ls # 将target作为根目录(运行其中的`/bin/ls`) - ``` - diff --git a/Linux_man_cn/cksum.md b/Linux_man_cn/cksum.md index 6cc6b30..a594b6c 100644 --- a/Linux_man_cn/cksum.md +++ b/Linux_man_cn/cksum.md @@ -15,5 +15,3 @@ ```bash cksum testfile1 #对指定文件进行CRC校验 ``` - - diff --git a/Linux_man_cn/clear.md b/Linux_man_cn/clear.md index 3c4d080..65d797a 100644 --- a/Linux_man_cn/clear.md +++ b/Linux_man_cn/clear.md @@ -9,4 +9,3 @@ ```bash clear ``` - diff --git a/Linux_man_cn/column.md b/Linux_man_cn/column.md index 9f8a39a..d361f31 100644 --- a/Linux_man_cn/column.md +++ b/Linux_man_cn/column.md @@ -1,6 +1,6 @@ # **column** -## 选项 +列格式化程序。通过在适当位置插入标签 ```markdown column [选项] [文件] @@ -10,4 +10,4 @@ column [选项] [文件] -o, --output-separator <字符串> 表格输出列分隔符,默认为两个空格 -x, --fillrows 先填充行,再填充列 -``` \ No newline at end of file +``` diff --git a/Linux_man_cn/cp.md b/Linux_man_cn/cp.md index 2e1c85c..00cc57d 100644 --- a/Linux_man_cn/cp.md +++ b/Linux_man_cn/cp.md @@ -5,8 +5,6 @@ **cp命令** 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件 或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误 -## 选项 - ```markdown 用法:cp [选项]... [-T] 源文件 目标文件  或:cp [选项]... 源文件... 目录 diff --git a/Linux_man_cn/cpio.md b/Linux_man_cn/cpio.md index a70a1b7..fba70fa 100644 --- a/Linux_man_cn/cpio.md +++ b/Linux_man_cn/cpio.md @@ -4,8 +4,6 @@ **cpio命令** 将归档文件及从包中提取文件,cpio命令可以复制文件到归档包中,或者从归档包中复制文件 -## 选项 - ```markdown cpio [OPTION...] [目标目录] @@ -119,5 +117,3 @@ cpio -icduv < /opt/etc.cpio # 备份包etc.cpio还原到相应的位置,如果 示例可以看出,cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般 和find命令配合使用 comment - - diff --git a/Linux_man_cn/cut.md b/Linux_man_cn/cut.md index 79fab6b..1ddd5bd 100644 --- a/Linux_man_cn/cut.md +++ b/Linux_man_cn/cut.md @@ -9,28 +9,26 @@ 当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可 以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态 -## 选项 - ```markdown Print selected parts of lines from each FILE to standard output. Mandatory arguments to long options are mandatory for short options too. --b, --bytes=列表 只选中指定的这些字节 --c, --characters=列表 只选中指定的这些字符 --d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界 +-b, --bytes=列表 只选中指定的这些字节 +-c, --characters=列表 只选中指定的这些字符 +-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界 -f, --fields=LIST 只选择这些字段; 除非指定了-s选项,否则还会打印任何不包含分隔符的行,即显示指定字段的内容 -n 与-b选项连用,不分割多字节字符 - --complement 补全选中的字节、字符或域 --s, --only-delimited 不打印没有包含分界符的行 - --output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入的分界符 + --complement 补全选中的字节、字符或域 +-s, --only-delimited 不打印没有包含分界符的行 + --output-delimiter=string 使用指定的字符串作为输出分界符,默认采用输入的分界符 仅使用f -b, -c 或-f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔 开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次 每种参数格式表示范围如下: - N 从第1 个开始数的第N 个字节、字符或域 - N- 从第N 个开始到所在行结束的所有字符、字节或域 - N-M 从第N 个开始到第M 个之间(包括第M 个)的所有字符、字节或域 - -M 从第1 个开始到第M 个之间(包括第M 个)的所有字符、字节或域 + N 从第1 个开始数的第N 个字节、字符或域 + N- 从第N 个开始到所在行结束的所有字符、字节或域 + N-M 从第N 个开始到第M 个之间(包括第M 个)的所有字符、字节或域 + -M 从第1 个开始到第M 个之间(包括第M 个)的所有字符、字节或域 当没有文件参数,或者文件不存在时,从标准输入读取 @@ -45,7 +43,7 @@ cut -f2 -d";" test2.txt # 使用-d选项指定字段分隔符 pip3 list -o --format columns | cut -d ' ' -f1 | xargs -n1 pip install -U # 一次性升级所有pip包 ls /etc/rc3.d/S* | cut -c 15- # 显示运行级别为3开启的服务 -### 指定字段的字符或者字节范围 +### 指定字段的字符或者字节范围 : << comment cut命令可以将一串字符作为列来显示,字符字段的记法: diff --git a/Linux_man_cn/date.md b/Linux_man_cn/date.md index bdb047a..da0ac88 100644 --- a/Linux_man_cn/date.md +++ b/Linux_man_cn/date.md @@ -8,8 +8,6 @@ 间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间 (UTC)1970年1月1日0时0分0秒起流逝的秒数 -## 选项 - ```markdown 用法:date [选项]... [+格式]  或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] @@ -31,7 +29,7 @@ %A 当前locale 的星期名全称 (如:星期日) %b 当前locale 的月名缩写 (如:一,代表一月) %B 当前locale 的月名全称 (如:一月) -%c 当前locale 的日期和时间 (如:2005年3月3日 +%c 当前locale 的日期和时间 (如:2005年3月3日 %C 世纪;比如 %Y,通常为省略当前年份的后两位 %d 按月计的日期(例如:01) %D 按月计的日期;等于%m/%d/%y @@ -96,7 +94,7 @@ date --date='TZ="America/Los_Angeles" 09:00 next Fri' ``` -## 实例 +## 实例 ```bash date +"%Y-%m-%d" # 格式化输出并用-符号连接日期 diff --git a/Linux_man_cn/dd.md b/Linux_man_cn/dd.md index 54af020..c63ff7c 100644 --- a/Linux_man_cn/dd.md +++ b/Linux_man_cn/dd.md @@ -12,8 +12,6 @@ 其次,dd命令可以创建一个固定大小的文件如下: dd if=/dev/zero of=/var/swap/file.swap bs=1024K count=64( linux支持K单位,unix不支持;) -## 选项 - ```markdown bs=BYTES 一次读写BYTES字节数 cbs=BYTES 一次转换BYTES字节数,即指定转换缓冲区大小 @@ -113,12 +111,16 @@ dd if=hdadisk.img of=/dev/hdb # 从硬盘镜像恢复 dd if=/dev/hda1 of=~/partition1.img # 备份分区 dd if=/dev/cdrom of=tgsservice.iso bs=2048 # 备份CDROM dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' # 将硬盘sda压缩并备份到远程机器上 -dd bs=1 seek=2TB if=/dev/null of=ext4.test # 建立一个大的测试文件(不占用空间) time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file # 测试所在磁盘的写入速度 dd if=/root/1Gb.file bs=64k | dd of=/dev/null # 测试磁盘的读取速度 +dd bs=1 seek=2TB if=/dev/null of=ext4.test # 建立一个大的测试文件(不占用空间) + +# 创建一个10M大小的文件,两个命令皆可 +dd if=/dev/zero of=daygeek2.txt bs=10M count=1 +dd if=/dev/zero of=daygeek3.txt bs=1M count=10 # 确定硬盘的最佳块大小 dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.filedd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.filedd \ if=/dev/zero bs=4096 count=250000 of=/root/1Gb.filedd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file -``` \ No newline at end of file +``` diff --git a/Linux_man_cn/df.md b/Linux_man_cn/df.md index 509cf49..2402370 100644 --- a/Linux_man_cn/df.md +++ b/Linux_man_cn/df.md @@ -4,8 +4,6 @@ **df命令** 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘占用空间等信息 -## 选项 - ```markdown -a, --all 包含全部的文件系统 -B, --block-size=SIZE 在打印之前按size调整大小; 例如:'- BM'以1048576字节为单位打印size;请参阅下面的SIZE格式 @@ -13,10 +11,10 @@ --total produce a grand total -h, --human-readable 以可读性较高的方式来显示信息(e.g., 1K 234M 2G) -H, --si 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes --i, --inodes 显示inode 信息而非块使用量 --k 即--block-size=1K --l, --local 只显示本机的文件系统 - --no-sync 取得使用量数据前不进行同步动作(默认) +-i, --inodes 显示inode 信息而非块使用量 +-k 即--block-size=1K +-l, --local 只显示本机的文件系统 + --no-sync 取得使用量数据前不进行同步动作(默认) --output[=FIELD_LIST] use the output format defined by FIELD_LIST, or print all fields if FIELD_LIST is omitted. -P, --portability 使用POSIX的输出格式 @@ -24,14 +22,10 @@ -t, --type=TYPE 仅显示指定文件系统类型的磁盘信息 -T, --print-type 显示文件系统的类型 -x, --exclude-type=TYPE 不显示指定文件系统类型的磁盘信息 - ``` ## 实例 ```bash df # 查看系统磁盘设备,默认是KB为单位 - ``` - - diff --git a/Linux_man_cn/diff.md b/Linux_man_cn/diff.md index 3797559..d014699 100644 --- a/Linux_man_cn/diff.md +++ b/Linux_man_cn/diff.md @@ -1,4 +1,4 @@ -# **diff** +# diff ## 说明 @@ -6,8 +6,6 @@ diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不 会对其子目录文件进行任何比较操作 -## 选项 - ```markdown -<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用 @@ -147,9 +145,9 @@ diff /usr/li/test.txt test.txt # 将目录`/usr/li`下的文件test.txt与 : << comment 输出详解: -n1 a n3,n4 -n1,n2 d n3 -n1,n2 c n3,n4 +n1 a n3,n4 +n1,n2 d n3 +n1,n2 c n3,n4 其中,字母"a"、"d"、"c"分别表示添加、删除及修改操作。而"n1"、"n2"表示在文件1中的行号,"n3"、"n4"表示在文件2中的行号 注意:以上说明指定了两个文件中不同处的行号及其相应的操作。在输出形式中,每一行后面将跟随受到影响的若干行。其中,以<开始 @@ -157,4 +155,3 @@ n1,n2 c n3,n4 comment ``` - diff --git a/Linux_man_cn/dirname.md b/Linux_man_cn/dirname.md index abdaa87..84fdfdf 100644 --- a/Linux_man_cn/dirname.md +++ b/Linux_man_cn/dirname.md @@ -1,39 +1,25 @@ -dirname -=== - -去除文件名中的非目录部分 +# **dirname** ## 说明 **dirname命令** 去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个`/`及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个`/`后无字符,dirname 命令使用倒数第二个`/`,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名 -## 选项 - -``` -dirname(选项)(参数) -``` - - - -``` ---help:显示帮助 ---version:显示版本号 +```markdown +-z, --zero 每行以斜杠/结束,而不是换行符 ``` ## 实例 +```bash +dirname // # 输出为 / +dirname /a/b/ # 输出为 /a +dirname a # 输出为 . +dirname a/b # 输出为路径名 a + +dirname dir1/str dir2/str +: << comment +# 输出为: +dir1 +dir2 +comment ``` -dirname // -结果为 / - -dirname /a/b/ -结果为:/a - -dirname a -结果为 . - -dirname a/b -结果为路径名 a -``` - - diff --git a/Linux_man_cn/dirs.md b/Linux_man_cn/dirs.md index 0f1a33d..91112b7 100644 --- a/Linux_man_cn/dirs.md +++ b/Linux_man_cn/dirs.md @@ -3,17 +3,15 @@ ## 说明 **dirs命令** 显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)。dirs始终显示当然目录, 再是堆栈中的内容; -即使目录堆栈为空, dirs命令仍然只显示当然目录 - -## 选项 +即使目录堆栈为空, dirs命令仍然只显示当然目录,使用pushd命令将目录添加到列表中;该 popd命令从列表中删除目录,当前目录始终是堆栈中的第一个目录 ```markdown --c:删除目录栈中的所有记录 --l:以完整格式显示 --p:一个目录一行的方式显示 --v:每行一个目录来显示目录栈的内容,每个目录前加上的编号 -+N:显示从左到右的第n个目录,数字从0开始 --N:显示从右到左的第n个日录,数字从0开始 +-c 删除目录栈中的所有记录 +-l 以完整格式显示;默认列表格式使用波浪号表示主目录 +-p 一个目录一行的方式显示 +-v 每行一个目录来显示目录栈的内容,每个目录前加上索引 ++N 显示从左到右的第n个目录,数字从0开始 +-N 显示从右到左的第n个日录,数字从0开始 ``` @@ -22,5 +20,3 @@ ```bash dirs ``` - - diff --git a/Linux_man_cn/dmesg.md b/Linux_man_cn/dmesg.md index 3e3f80f..23187df 100644 --- a/Linux_man_cn/dmesg.md +++ b/Linux_man_cn/dmesg.md @@ -5,8 +5,6 @@ **dmesg命令** 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。 开机信息保存在`/var/log/dmesg`文件里 -## 选项 - ```markdown -C, --clear 清除内核环形缓冲区(ring butter) -c, --read-clear 读取并清除所有消息 @@ -58,5 +56,4 @@ ```bash dmesg | grep sda # 查看硬盘基础信息 - ``` diff --git a/Linux_man_cn/dpkg.md b/Linux_man_cn/dpkg.md index 35e21e7..b9801a9 100644 --- a/Linux_man_cn/dpkg.md +++ b/Linux_man_cn/dpkg.md @@ -28,6 +28,7 @@ dpkg -l #列出当前已安装的包 dpkg -c package.deb #列出deb包的内容 dpkg --configure package #配置包 echo -e "$(( $(dpkg -l | wc -l) -5 ))" # 所有已安装的包总数 -``` - +# 清理debian旧内核 +dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/-/\1/")"'/d;s/^[^ ]* [^ ]* .*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge +``` diff --git a/Linux_man_cn/du.md b/Linux_man_cn/du.md index 38d8dd9..7a3d91d 100644 --- a/Linux_man_cn/du.md +++ b/Linux_man_cn/du.md @@ -4,8 +4,6 @@ **du命令** 也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别 -## 选项 - ```markdown -a或-all 显示目录中个别文件的大小 -b或-bytes 显示目录或文件大小时,以byte为单位 @@ -32,6 +30,3 @@ du -sh * | sort -k1,1rh | head -n 10 # 当前目录下所占空间倒序排 # 统计目录下文件的大小(按M打印显示) du $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\1:g' ``` - - - diff --git a/Linux_man_cn/echo.md b/Linux_man_cn/echo.md index d0d6f28..1648e70 100644 --- a/Linux_man_cn/echo.md +++ b/Linux_man_cn/echo.md @@ -48,6 +48,7 @@ openssl rand -base64 4 # 方法二 cat /proc/sys/kernel/random/uuid | cut -c 1-8 # 方法三 < /dev/urandom tr -dc A-Za-z0-9 | head -c8;echo # 方法四 date +%s | sha256sum | base64 | head -c 8;echo # 方法五 +tr -dc "[:alnum:]" < /dev/urandom | head -c 8 # 方法六 # 获取8位随机数字 echo $RANDOM | cksum | cut -c 1-8 # 方法一 diff --git a/Linux_man_cn/expr.md b/Linux_man_cn/expr.md index 6a2168e..db7c9f1 100644 --- a/Linux_man_cn/expr.md +++ b/Linux_man_cn/expr.md @@ -4,8 +4,6 @@ **expr命令** 是一款表达式计算工具,使用它完成表达式的求值操作 -## 选项 - ```markdown 将表达式的值列印到标准输出,分隔符下面的空行可提升算式优先级 可用的表达式有: @@ -58,5 +56,3 @@ result=`expr 2 + 3` result=$(expr $no1 + 5) ``` - - diff --git a/Linux_man_cn/find.md b/Linux_man_cn/find.md index 1f916dc..dd32f9d 100644 --- a/Linux_man_cn/find.md +++ b/Linux_man_cn/find.md @@ -7,8 +7,6 @@ 统管理任务只是为了找出一个知道存放在哪里的文件,find可以遍历当前目录甚至整个文件系统查找文件或目录。即使系统中含有网络 文件系统(NFS),find命令在该文件系统中同样有效,只要你具有相应的权限 -## 选项 - ```markdown 用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] diff --git a/Linux_man_cn/fmt.md b/Linux_man_cn/fmt.md index 79112c1..ae1eff5 100644 --- a/Linux_man_cn/fmt.md +++ b/Linux_man_cn/fmt.md @@ -4,17 +4,13 @@ **fmt命令** 读取文件的内容,根据选项的设置对文件格式进行简单的优化处理,并将结果送到标准输出设备 -## 选项 - ```markdown --c --crown-margin 保持前两行的缩进 --p, --prefix=字符串 只对以指定字符串开头的行重新格式化,将前缀重新附着到被重新格式化的行上 --s, --split-only 分割过长的行,但不自动补足 +-c --crown-margin 保持前两行的缩进 +-p, --prefix=字符串 只对以指定字符串开头的行重新格式化,将前缀重新附着到被重新格式化的行上 +-s, --split-only 分割过长的行,但不自动补足 -t, --tagged-paragraph indentation of first line different from second -u, --uniform-spacing one space between words, two after sentences -w, --width=WIDTH maximum line width (default of 75 columns) -g, --goal=WIDTH goal width (default of 93% of width) ``` - - diff --git a/Linux_man_cn/free.md b/Linux_man_cn/free.md index b8df282..b1f1782 100644 --- a/Linux_man_cn/free.md +++ b/Linux_man_cn/free.md @@ -4,8 +4,6 @@ **free命令** 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区 -## 选项 - ```markdown -b, --bytes Bytes为单位显示内存使用 -k, --kilo KB为单位显示内存使用(默认) @@ -26,7 +24,6 @@ -s, --seconds seconds 间隔几秒显示结果,实际上可以指定任意浮点数 --si Use power of 1000 not 1024 -t, --total 在一行以总和的形式显示内存的使用信息 - ``` ## 实例 @@ -36,7 +33,7 @@ free -t # 以总和的形式显示内存的使用信息 free -s 10 # 周期性的查询内存使用信息,每10s 执行一次命令 ``` -## free输出解释: +## free输出解释 ```markdown total 安装的总内存 (MemTotal and SwapTotal in /proc/meminfo) @@ -74,4 +71,3 @@ Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情 如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache ``` - diff --git a/Linux_man_cn/ftp.md b/Linux_man_cn/ftp.md index 0e9e771..c9ebfe9 100644 --- a/Linux_man_cn/ftp.md +++ b/Linux_man_cn/ftp.md @@ -5,8 +5,6 @@ **ftp命令** 用来设置文件系统相关功能。ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件, 这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux进行ftp操作将会非常容易 -## 选项 - ```markdown -d:详细显示指令执行过程,便于排错或分析程序执行的情况 -i:关闭互动模式,不询问任何问题 @@ -54,6 +52,3 @@ ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果 ftp> ! # 从 ftp 子系统退出到外壳 ``` - - - diff --git a/Linux_man_cn/fuser.md b/Linux_man_cn/fuser.md index 6b72e47..62ab69b 100644 --- a/Linux_man_cn/fuser.md +++ b/Linux_man_cn/fuser.md @@ -7,14 +7,12 @@ 每个进程号后面都跟随一个字母,该字母指示进程如何使用文件 -* c:指示进程的工作目录 -* e:指示该文件为进程的可执行文件(即进程由该文件拉起) -* f:指示该文件被进程打开,默认情况下f字符不显示 -* F:指示该文件被进程打开进行写入,默认情况下F字符不显示 -* r:指示该目录为进程的根目录 -* m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存 - -## 选项 +* c:指示进程的工作目录 +* e:指示该文件为进程的可执行文件(即进程由该文件拉起) +* f:指示该文件被进程打开,默认情况下f字符不显示 +* F:指示该文件被进程打开进行写入,默认情况下F字符不显示 +* r:指示该目录为进程的根目录 +* m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存 ```markdown -a:显示命令行中指定的所有文件 @@ -42,5 +40,4 @@ fuser -kxuc /home comment fuser -d /usr文件 # 要列出正在使用已从给定文件系统删除的文件的全部进程 - ``` diff --git a/Linux_man_cn/groupmod.md b/Linux_man_cn/groupmod.md index e8ca62d..76239f7 100644 --- a/Linux_man_cn/groupmod.md +++ b/Linux_man_cn/groupmod.md @@ -4,8 +4,6 @@ **groupmod命令** 更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作 -## 选项 - ```markdown 用法:groupmod [选项] 组 @@ -23,5 +21,4 @@ ```bash groupmod -n cisco web # 将组名web改成cisco groupmod -g 9999 web # 创建web组的同时指定gid为9999 - ``` diff --git a/Linux_man_cn/groups.md b/Linux_man_cn/groups.md index 9329a32..8ecbbb2 100644 --- a/Linux_man_cn/groups.md +++ b/Linux_man_cn/groups.md @@ -1,36 +1,11 @@ -groups -=== - -用来打印指定用户所属的工作组 +# groups ## 说明 **groups命令** 在标准输入输出上输出指定用户所在组的组成员,每个用户属于`/etc/passwd`中指定的一个组和在`/etc/group`中指定的其他组 -## 选项 - -``` -groups(选项)(参数) -``` - - - -``` --help:显示命令的帮助信息 ---version:显示命令的版本信息 -``` - -### 参数 - -用户名:指定要打印所属工作组的用户名 - ## 实例 -显示linux用户所属的组 - +```bash +groups ops # 显示ops用户所属的组 ``` -groups linux -linux : linux adm dialout cdrom plugdev lpadmin admin sambashare -``` - - diff --git a/Linux_man_cn/gzip.md b/Linux_man_cn/gzip.md index e067714..cdcbdf8 100644 --- a/Linux_man_cn/gzip.md +++ b/Linux_man_cn/gzip.md @@ -1 +1,24 @@ - \ No newline at end of file +# **gzip** + +```markdown +-c, --stdout ???????????????????? +-d, --decompress ???? +-f, --force ?????????????????? +-k, --keep keep (don't delete) input files +-l, --list ?????????? +-L, --license display software license +-n, --no-name ??????????????????? +-N, --name ?????????????????? +-q, --quiet ??????? +-r, --recursive ???? + --rsyncable make rsync-friendly archive +-S, --suffix=SUF use suffix SUF on compressed files + --synchronous synchronous output (safer if system crashes, but slower) +-t, --test ????????? +-v, --verbose ???????? +-V, --version display version number +-1, --fast ???? +-9, --best ???? + +????????? - ?????????? +``` diff --git a/Linux_man_cn/hdparm.md b/Linux_man_cn/hdparm.md index 8f3f641..849d481 100644 --- a/Linux_man_cn/hdparm.md +++ b/Linux_man_cn/hdparm.md @@ -4,8 +4,6 @@ **hdparm命令** 提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数 -## 选项 - ```markdown -a<快取分区>:设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定 -A<0或1>:启动或关闭读取文件时的快取功能 diff --git a/Linux_man_cn/head.md b/Linux_man_cn/head.md index a5eb5e2..169dae3 100644 --- a/Linux_man_cn/head.md +++ b/Linux_man_cn/head.md @@ -21,4 +21,5 @@ GB 1000*1000*1000, G 1024*1024*1024, 对于T, P, E, Z, Y 同样适用 ```bash head -1 file # 显示file文件第一行 head -n1 /etc/issue # 查看操作系统版本,不一定每个系统都能看到 +head -c 10MB /dev/zero > daygeek4.txt # 创建10M大小的文件 ``` diff --git a/Linux_man_cn/history.md b/Linux_man_cn/history.md index 534ad4e..98e2186 100644 --- a/Linux_man_cn/history.md +++ b/Linux_man_cn/history.md @@ -22,6 +22,3 @@ ```bash history -c # 清空历史记录 ``` - - - diff --git a/Linux_man_cn/host.md b/Linux_man_cn/host.md index fb30f9f..381719a 100644 --- a/Linux_man_cn/host.md +++ b/Linux_man_cn/host.md @@ -4,8 +4,6 @@ **host命令** 是常用的分析域名查询工具,可以用来测试域名系统工作是否正常 -## 选项 - ```markdown -a:显示详细的DNS信息 -c<类型>:指定查询类型,默认值为IN @@ -22,6 +20,5 @@ ## 实例 ```bash -host www.jsdig.com - +host www.jsdig.com ``` diff --git a/Linux_man_cn/hostname.md b/Linux_man_cn/hostname.md index d523137..ecbf44f 100644 --- a/Linux_man_cn/hostname.md +++ b/Linux_man_cn/hostname.md @@ -6,8 +6,6 @@ 统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改`/etc/hosts`和 `/etc/sysconfig/network`的相关内容 -## 选项 - ```markdown Usage: hostname [-b] {hostname|-F file} set host name (from file) hostname [-a|-A|-d|-f|-i|-I|-s|-y] display formatted name @@ -32,7 +30,6 @@ Program name: -I, --all-ip-addresses all addresses for the host -s, --short 显示短主机名称,在第一个点处截断 -y, --yp, --nis 显示NIS/YP域名 - ``` ## 实例 @@ -40,5 +37,3 @@ Program name: ```bash hostname -i # 查寻本地主机的IP地址同等于host `hostname` ``` - - diff --git a/Linux_man_cn/hwclock.md b/Linux_man_cn/hwclock.md index 644844a..c5d2591 100644 --- a/Linux_man_cn/hwclock.md +++ b/Linux_man_cn/hwclock.md @@ -11,8 +11,6 @@ RTC是电脑内建的硬件时间,执行这项指令可以显示现在时刻 指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取 系统时钟的设定 -## 选项 - ```markdown clock命令和hwclock相同 diff --git a/Linux_man_cn/iconv.md b/Linux_man_cn/iconv.md index df0099b..f1b571c 100644 --- a/Linux_man_cn/iconv.md +++ b/Linux_man_cn/iconv.md @@ -1,4 +1,4 @@ -# iconv +# **iconv** ## 说明 @@ -6,8 +6,6 @@ Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数,可以用来在C/C++程序中很方便的转换字符编码,这在抓取网页的程序中很有用处, 而iconv命令在调试此类程序时用得着 -## 选项 - ```markdown 输入/输出格式规范: -f, --from-code=名称 原始文本编码 @@ -21,7 +19,6 @@ Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数,可以 -o, --output=FILE 输出文件 -s, --silent 关闭警告 --verbose 打印进度信息 - ``` ## 实例 @@ -30,5 +27,3 @@ Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数,可以 iconv -l # 列出当前支持的字符编码 iconv file1 -f EUC-JP-MS -t UTF-8 -o file2 # 将文件file1转码,转后文件输出到fil2中。没`-o`那么会输出到标准输出 ``` - - diff --git a/Linux_man_cn/id.md b/Linux_man_cn/id.md index 8e73b68..4c55202 100644 --- a/Linux_man_cn/id.md +++ b/Linux_man_cn/id.md @@ -8,8 +8,6 @@ 当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在 `/etc/group`文件中搜寻。如往常一样,你可以在控制台输入`man id`进入id的手册页来获取更多的详情 -## 选项 - ```markdown -a ignore, for compatibility with other versions -Z, --context print only the security context of the current user @@ -27,7 +25,4 @@ ```bash id - ``` - - diff --git a/Linux_man_cn/join.md b/Linux_man_cn/join.md index c677787..b500b62 100644 --- a/Linux_man_cn/join.md +++ b/Linux_man_cn/join.md @@ -5,8 +5,6 @@ **join命令** 用来将两个文件中,制定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到 标准输出设备 -## 选项 - ```markdown -a FILENUM 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行 -e EMPTY 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串 @@ -14,13 +12,13 @@ -j FIELD equivalent to '-1 FIELD -2 FIELD' -o FORMAT 按照指定的格式来显示结果 -t CHAR 使用栏位的分割字符 --v 文件编号 类似 -a 文件编号,但禁止组合输出行 --1 域 在文件1 的此域组合 --2 域 在文件2 的此域组合 ---check-order 检查输入行是否正确排序,即使所有输入行均是成对的 ---nocheck-order 不检查输入是否正确排序 ---header 将首行视作域的头部,直接输出而不对其进行匹配 --z, --zero-terminated 以0 字节而非新行作为行尾标志 +-v 文件编号 类似 -a 文件编号,但禁止组合输出行 +-1 域 在文件1 的此域组合 +-2 域 在文件2 的此域组合 +--check-order 检查输入行是否正确排序,即使所有输入行均是成对的 +--nocheck-order 不检查输入是否正确排序 +--header 将首行视作域的头部,直接输出而不对其进行匹配 +-z, --zero-terminated 以0 字节而非新行作为行尾标志 ``` diff --git a/Linux_man_cn/last.md b/Linux_man_cn/last.md index cfb34af..2b4bfbd 100644 --- a/Linux_man_cn/last.md +++ b/Linux_man_cn/last.md @@ -7,8 +7,6 @@ **lastb命令** Lastb与last相同,但默认情况下它显示文件/var/log/btmp的日志,其中包含所有错误的登录尝试 -## 选项 - ```markdown -f file 让last指定记录文件替代默认的/var/log/wtmp -num 指定last命令显示的行数 @@ -30,5 +28,3 @@ ```bash last reboot # 显示上次用户登录列表 ``` - - diff --git a/Linux_man_cn/let.md b/Linux_man_cn/let.md index baa5c61..93e9df5 100644 --- a/Linux_man_cn/let.md +++ b/Linux_man_cn/let.md @@ -5,11 +5,9 @@ **let命令** 是bash中用于计算的工具,提供常用运算符还提供了方幂`**`运算符。在变量的房屋计算中不需要加上`$`来表示变量, 如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1 -## 选项 - ```markdown -自加操作`let no++` -自减操作`let no--` +自加操作`let no++` +自减操作`let no--` 简写形式`let no+=10`,`let no-=20`,分别等同于`let no=no+10,``let no=no-20` ``` @@ -24,5 +22,3 @@ echo $a $b let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))" echo "t1 = $t1, a = $a, b = $b" ``` - - diff --git a/Linux_man_cn/ln.md b/Linux_man_cn/ln.md index 8d542c6..32073bc 100644 --- a/Linux_man_cn/ln.md +++ b/Linux_man_cn/ln.md @@ -13,8 +13,6 @@ * 源文件和链接文件同步更新 * 支持跨文件系统创建链接文件 -## 选项 - ```markdown 用法:ln [选项] [-T] 目标 链接名 (第一种格式)  或:ln [选项] 目标 (第二种格式) @@ -29,10 +27,10 @@ 创建硬链接时,每个TARGET必须存在。 符号链接可以包含任意文本; 如果以后解析,则会相对于其父目录解释相对链接 Mandatory arguments to long options are mandatory for short options too. - --backup[=CONTROL] 为每个已存在的目标文件创建备份文件 --b 类似--backup,但不接受任何参数 --d, -F, --directory 创建指向目录的硬链接(只适用于超级用户) --f, --force 强行删除任何已存在的目标文件 + --backup[=CONTROL] 为每个已存在的目标文件创建备份文件 +-b 类似--backup,但不接受任何参数 +-d, -F, --directory 创建指向目录的硬链接(只适用于超级用户) +-f, --force 强行删除任何已存在的目标文件 -i, --interactive 删除已存在文件之前先询问用户 -L, --logical dereference TARGETs that are symbolic links -n, --no-dereference 如果符号链接是一个目录也将其链接名称视作一个普通文件 @@ -72,8 +70,7 @@ ln -s /usr/mengqc/mub1 /usr/liu/abc ``` - -## 扩展知识 +## 扩展知识 文件链接有两种形式,即硬链接和符号链接 @@ -99,10 +96,10 @@ Linux具有为一个文件起多个名字的功能,称为链接。被链接的 对硬链接有如下限制: -* 不能对目录文件做硬链接 -* 不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中 +* 不能对目录文件做硬链接 +* 不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中 -### 软,硬链接不同点: +### 软,硬链接不同点 如果源文件被删除的话,软连接文件只是一个符号链接,因此软连接文件不可访问。硬链接文件是可以访问的,相当于源文件的一个拷贝 大小内容是一样的,同步更新 @@ -116,7 +113,7 @@ Linux具有为一个文件起多个名字的功能,称为链接。被链接的 切记:inode是内核调用的数字标识 -### 符号链接 +### 符号链接 符号链接也称为软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,它只是一个文本文件(如图中的abc文件) 其中包含它提供链接的另一个文件的路径名,如图中虚线箭头所示。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于 @@ -131,12 +128,9 @@ Linux具有为一个文件起多个名字的功能,称为链接。被链接的 符号链接保持了链接与源文件或目录之间的区别: -* 删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据 -* 在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l -* 符号链接的大小是其链接文件的路径名中的字节数 -* 当用`ln -s`命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如: +* 删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据 +* 在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l +* 符号链接的大小是其链接文件的路径名中的字节数 +* 当用`ln -s`命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如: lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的数字“14”恰好说明源文件名original_file 由14个字符构成 - - - diff --git a/Linux_man_cn/login.md b/Linux_man_cn/login.md index 206520b..66cd15b 100644 --- a/Linux_man_cn/login.md +++ b/Linux_man_cn/login.md @@ -13,4 +13,3 @@ login [ -p ] [ -h 主机 ] [ -H ] [ -f 用户名 | 用户名 ] -p 告诉login指令不销毁环境变量 -h 指定远程服务器的主机名 ``` - diff --git a/Linux_man_cn/lsmod.md b/Linux_man_cn/lsmod.md index 2918c95..53abc8d 100644 --- a/Linux_man_cn/lsmod.md +++ b/Linux_man_cn/lsmod.md @@ -1,22 +1,13 @@ -lsmod -=== - -显示已载入系统的模块 +# lsmod ## 说明 **lsmod命令** 用于显示已经加载到内核中的模块的状态信息。执行lsmod命令后会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放入核心。您可以将这些功能编译成一个个单独的模块,待需要时再分别载入 -## 选项 - -``` -lsmod -``` - ## 实例 -``` -[root@LinServ-1 ~]# lsmod +```markdown +[root@server-1 ~]# lsmod Module Size Used by ipv6 272801 15 xfrm_nalgo 13381 1 ipv6 @@ -92,11 +83,9 @@ ohci_hcd 24937 0 ehci_hcd 34509 0 ``` -* 第1列:表示模块的名称 -* 第2列:表示模块的大小 -* 第3列:表示依赖模块的个数 -* 第4列:表示依赖模块的内容 +* 第1列:表示模块的名称 +* 第2列:表示模块的大小 +* 第3列:表示依赖模块的个数 +* 第4列:表示依赖模块的内容 通常在使用lsmod命令时,都会采用类似`lsmod | grep -i ext3`这样的命令来查询当前系统是否加载了某些模块 - - diff --git a/Linux_man_cn/lsof.md b/Linux_man_cn/lsof.md index 6456c1d..2a137b9 100644 --- a/Linux_man_cn/lsof.md +++ b/Linux_man_cn/lsof.md @@ -35,9 +35,9 @@ Defaults in parentheses; comma-separated set (s) items; dash-separated ranges. -s list file size -t terse listing -T disable TCP/TPI info -U select Unix socket -v list version info -V verbose search +|-w Warnings (+) -X skip TCP&UDP* files -Z Z context [Z] - -- end option scan - +f|-f +filesystem or -file names +|-f[gG] flaGs - -F [f] select fields; -F? for help + -- end option scan + +f|-f +filesystem or -file names +|-f[gG] flaGs + -F [f] select fields; -F? for help +|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0) +m [m] use|create mount supplement +|-M portMap registration (-) -o o o 0t offset digits (8) @@ -53,7 +53,6 @@ Defaults in parentheses; comma-separated set (s) items; dash-separated ranges. -x [fl] cross over +d|+D File systems or symbolic Links names select named files or files on named file systems Anyone can list all files; /dev warnings disabled; kernel ID check disabled. - ``` ## 详解 @@ -127,5 +126,4 @@ lsof输出各列信息的意义如下: lsof -i # 列出所有的网络连接或端口 lsof ~ # 查看打开用户目录的进程 lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh # 杀掉80端口相关的进程 - ``` diff --git a/Linux_man_cn/lspci.md b/Linux_man_cn/lspci.md index 8bdac79..f51a742 100644 --- a/Linux_man_cn/lspci.md +++ b/Linux_man_cn/lspci.md @@ -4,8 +4,6 @@ **lspci命令** 用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息 -## 选项 - ```markdown -n:以数字方式显示PCI厂商和设备代码 -t:以树状结构显示PCI设备的层次关系,包括所有的总线、桥、设备以及它们之间的联接 @@ -18,42 +16,40 @@ Usage: lspci [] Basic display modes: --mm Produce machine-readable output (single -m for an obsolete format) --t Show bus tree +-mm Produce machine-readable output (single -m for an obsolete format) +-t Show bus tree Display options: --v Be verbose (-vv for very verbose) --k Show kernel drivers handling each device --x Show hex-dump of the standard part of the config space --xxx Show hex-dump of the whole config space (dangerous; root only) --xxxx Show hex-dump of the 4096-byte extended config space (root only) --b Bus-centric view (addresses and IRQ's as seen by the bus) --D Always show domain numbers +-v Be verbose (-vv for very verbose) +-k Show kernel drivers handling each device +-x Show hex-dump of the standard part of the config space +-xxx Show hex-dump of the whole config space (dangerous; root only) +-xxxx Show hex-dump of the 4096-byte extended config space (root only) +-b Bus-centric view (addresses and IRQ's as seen by the bus) +-D Always show domain numbers Resolving of device ID's to names: --n Show numeric ID's --nn Show both textual and numeric ID's (names & numbers) --q Query the PCI ID database for unknown ID's via DNS --qq As above, but re-query locally cached entries --Q Query the PCI ID database for all ID's via DNS +-n Show numeric ID's +-nn Show both textual and numeric ID's (names & numbers) +-q Query the PCI ID database for unknown ID's via DNS +-qq As above, but re-query locally cached entries +-Q Query the PCI ID database for all ID's via DNS Selection of devices: --s [[[[]:]]:][][.[]] Show only devices in selected slots --d []:[][:] Show only devices with specified ID's +-s [[[[]:]]:][][.[]] Show only devices in selected slots +-d []:[][:] Show only devices with specified ID's Other options: --i Use specified ID database instead of /usr/share/hwdata/pci.ids --p Look up kernel modules in a given file instead of default modules.pcimap --M Enable `bus mapping' mode (dangerous; root only) +-i Use specified ID database instead of /usr/share/hwdata/pci.ids +-p Look up kernel modules in a given file instead of default modules.pcimap +-M Enable `bus mapping' mode (dangerous; root only) PCI access options: --A Use the specified PCI access method (see `-A help' for a list) --O = Set PCI access parameter (see `-O help' for a list) --G Enable PCI access debugging --H Use direct hardware access ( = 1 or 2) --F Read PCI configuration dump from a given file - - +-A Use the specified PCI access method (see `-A help' for a list) +-O = Set PCI access parameter (see `-O help' for a list) +-G Enable PCI access debugging +-H Use direct hardware access ( = 1 or 2) +-F Read PCI configuration dump from a given file ``` ## 实例 @@ -62,7 +58,4 @@ PCI access options: lspci -tv # 显示PCI信息 lspci | grep Ethernet # 显示网卡信息 lspci | grep VGA - ``` - - diff --git a/Linux_man_cn/lsusb.md b/Linux_man_cn/lsusb.md index 764e196..a49f271 100644 --- a/Linux_man_cn/lsusb.md +++ b/Linux_man_cn/lsusb.md @@ -7,8 +7,6 @@ lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大家使用,如果您的开发板中或者产品中没有lsusb命令可以自己移植 一个,放到文件系统里面 -## 选项 - ```markdown -v:显示USB设备的详细信息 -s<总线:设备号>仅显示指定的总线和(或)设备号的设备 @@ -22,46 +20,40 @@ lsusb命令是一个学习USB驱动开发,认识USB设备的助手,推荐大 ```bash : << comment 插入usb鼠标后执行lsusb的输出内容如下: -Bus 005 Device 001: id 0000:0000 -Bus 001 Device 001: ID 0000:0000 -Bus 004 Device 001: ID 0000:0000 -Bus 003 Device 001: ID 0000:0000 -Bus 002 Device 006: ID 15d9:0a37 -Bus 002 Device 001: ID 0000:0000 +Bus 005 Device 001: id 0000:0000 +Bus 001 Device 001: ID 0000:0000 +Bus 004 Device 001: ID 0000:0000 +Bus 003 Device 001: ID 0000:0000 +Bus 002 Device 006: ID 15d9:0a37 +Bus 002 Device 001: ID 0000:0000 comment ``` 解释: - **Bus 005** +* Bus 005 表示第五个usb主控制器(机器上总共有5个usb主控制器 -- 可以通过命令lspci | grep USB查看) - **Device 006** +* Device 006 表示系统给usb鼠标分配的设备号(devnum),同时也可以看到该鼠标是插入到了第二个usb主控制器 -``` 006 usb_device.devnum /sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/devnum -``` - **ID 15d9:0a37** +ID 15d9:0a37 表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备) -``` 15d9 usb_device_descriptor.idVendor 0a37 usb_device_descriptor.idProduct /sys/devices/pci0000:00/0000:00:1d.1/usb2/2-2/idVendor -``` -**Bus 002 Device 006: ID 15d9:0a37 +**Bus 002 Device 006: ID 15d9:0a37 Bus 002 Device 001: ID 0000:0000** 表示002号usb主控制器上接入了两个设备: -* 一个是usb根Hub -- 001  -* 一个是usb鼠标  -- 006 - - +* 一个是usb根Hub -- 001 +* 一个是usb鼠标  -- 006 diff --git a/Linux_man_cn/ltrace.md b/Linux_man_cn/ltrace.md index dd4ce08..552bf4b 100644 --- a/Linux_man_cn/ltrace.md +++ b/Linux_man_cn/ltrace.md @@ -1,21 +1,10 @@ -ltrace -=== - -用来跟踪进程调用库函数的情况 +# ltrace ## 说明 **ltrace命令** 是用来跟踪进程调用库函数的情况 -## 选项 - -``` -ltrace [option ...] [command [arg ...]] -``` - - - -``` +```markdown -a 对齐具体某个列的返回值 -c 计算时间和调用,并在程序退出时打印摘要 -C 解码低级别名称(内核级)为用户级名称 @@ -43,45 +32,7 @@ ltrace [option ...] [command [arg ...]] 最基本应用,不带任何参数: +```bash +ltrace -T ./a.out # 输出调用时间开销 +ltrace -S ./a.out # 显示系统调用 ``` -[guest@localhost tmp]$ ltrace ./a.out -__libc_start_main(0x80484aa, 1, 0xbfc07744, 0x8048550, 0x8048540 -printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10 no2:6 diff:4 ) = 24 -printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9 no2:7 diff:2 ) = 23 -printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8 no2:8 diff:0 ) = 23 ---- SIGFPE (Floating point exception) --- -+++ killed by SIGFPE +++ -``` - -输出调用时间开销: - -``` -[guest@localhost tmp]$ ltrace -T ./a.out -__libc_start_main(0x80484aa, 1, 0xbf81d394, 0x8048550, 0x8048540 -printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10 no2:6 diff:4 ) = 24 <0.000972> -printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9 no2:7 diff:2 ) = 23 <0.000155> -printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8 no2:8 diff:0 ) = 23 <0.000153> ---- SIGFPE (Floating point exception) --- -+++ killed by SIGFPE +++ -``` - -显示系统调用: - -``` -[guest@localhost tmp]$ ltrace -S ./a.out -SYS_brk(NULL) = 0x9e20000 -SYS_access(0xa4710f, 4, 0xa4afc0, 0, 0xa4b644) = 0 -SYS_open("/etc/ld.so.preload", 0, 02) = 3 -SYS_fstat64(3, 0xbfbd7a94, 0xa4afc0, -1, 3) = 0 -SYS_mmap2(0, 17, 3, 2, 3) = 0xb7f2a000 -SYS_close(3) = 0 -SYS_open("/lib/libcwait.so", 0, 00) = 3 -SYS_read(3, "\177ELF\001\001\001", 512) = 512 -SYS_fstat64(3, 0xbfbd76fc, 0xa4afc0, 4, 0xa4b658) = 0 -SYS_mmap2(0, 4096, 3, 34, -1) = 0xb7f29000 -SYS_mmap2(0, 5544, 5, 2050, 3) = 0x423000 -SYS_mmap2(0x424000, 4096, 3, 2066, 3) = 0x424000 -.............省去若干行 -``` - - diff --git a/Linux_man_cn/man.md b/Linux_man_cn/man.md index e0e8b58..0b62f96 100644 --- a/Linux_man_cn/man.md +++ b/Linux_man_cn/man.md @@ -47,8 +47,7 @@ -Z, --ditroff 使用 groff 并强制它生成 ditroff ``` - -### 数字所代表内容 +## 数字所代表内容 1. 用户在shell环境可操作的命令或执行文件 2. 系统内核可调用的函数与工具等 @@ -60,7 +59,6 @@ 8. 系统管理员可用的管理命令 9. 跟kernel有关的文件 - ## 实例 ```bash diff --git a/Linux_man_cn/md5sum.md b/Linux_man_cn/md5sum.md index d5f37c2..e88930c 100644 --- a/Linux_man_cn/md5sum.md +++ b/Linux_man_cn/md5sum.md @@ -7,15 +7,13 @@ MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的 信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要极小可能性存在 -## 选项 - ```markdown 若没有文件选项,或者文件处为"-",则从标准输入读取 --b, --binary 以二进制模式读取 --c, --check 从文件中读取MD5 的校验值并予以检查 - --tag create a BSD-style checksum --t, --text 以纯文本模式读取(默认)[注意:GNU系统上的二进制和文本模式选项没有区别] +-b, --binary 以二进制模式读取 +-c, --check 从文件中读取MD5 的校验值并予以检查 + --tag create a BSD-style checksum +-t, --text 以纯文本模式读取(默认)[注意:GNU系统上的二进制和文本模式选项没有区别] 以下四个选项对于验证校验和非常有用 --quiet don't print OK for each successfully verified file @@ -32,4 +30,3 @@ md5sum insert.sql # 生成一个文件insert.sql的md5值 md5sum file -c file.md # 检查file是否被修改,file.md包含file文件的原始md5值 ``` - diff --git a/Linux_man_cn/mkdir.md b/Linux_man_cn/mkdir.md index a668778..aefc084 100644 --- a/Linux_man_cn/mkdir.md +++ b/Linux_man_cn/mkdir.md @@ -4,8 +4,6 @@ **mkdir命令** 用来创建目录 -## 选项 - ```markdown 用法:mkdir [选项]... 目录... diff --git a/Linux_man_cn/mke2fs.md b/Linux_man_cn/mke2fs.md index ed1ab6b..5360887 100644 --- a/Linux_man_cn/mke2fs.md +++ b/Linux_man_cn/mke2fs.md @@ -1,7 +1,4 @@ -mke2fs -=== - -创建磁盘分区上的“etc2/etc3”文件系统 +# mke2fs ## 说明 @@ -9,13 +6,7 @@ mke2fs ## 选项 -``` -mke2fs(选项)(参数) -``` - - - -``` +```markdwon -b<区块大小>:指定区块大小,单位为字节 -c;检查是否有损坏的区块 -f<不连续区段大小>:指定不连续区段的大小,单位为字节 @@ -31,20 +22,10 @@ mke2fs(选项)(参数) -R=<区块数>:设置磁盘阵列参数 -S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap -v:执行时显示详细信息 --V:显示版本信息 ``` -### 参数 - -* 设备文件:指定要创建的文件系统的分区设备文件名 -* 块数:指定要创建的文件系统的磁盘块数量 - ## 实例 -创建指定的ext2文件系统 - +```bash +mke2fs -q /dev/hda1 # 创建指定的ext2文件系统 ``` -mke2fs -q /dev/hda1 -``` - - diff --git a/Linux_man_cn/mkswap.md b/Linux_man_cn/mkswap.md index fdc4559..66d3e2c 100644 --- a/Linux_man_cn/mkswap.md +++ b/Linux_man_cn/mkswap.md @@ -5,8 +5,6 @@ **mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的 大小,但是这个参数是为了向后兼容设置的,没有使用的必要,一般都将整个文件或者设备作为交换区 -## 选项 - ```markdown -c:建立交换区前,先检查是否有损坏的区块 -f:在SPARC电脑上建立交换区时,要加上此参数 @@ -18,23 +16,16 @@ ```bash swapon -s # 查看当前的swap空间(file(s)/partition(s)),等价于cat /proc/swaps -``` - -```bash -# 添加交换空间 -mkswap /dev/sdb2 -# 启用交换分区 -swapon /dev/sdb2 +mkswap /dev/sdb2 # 添加交换空间 +swapon /dev/sdb2 # 启用交换分区 -# 写入`/etc/fstab`,以便在引导时启用 +# 写入`/etc/fstab`以下内容,以便在引导时启用 /dev/sdb2 swap swap defaults 0 0 # 添加一个交换文件,步骤如下:创建大小为512M的交换文件: dd if=/dev/zero of=/swapfile1 bs=1024 count=524288 -``` -```bash # 添加交换文件 # 使用mkswap命令来设置交换文件 mkswap /swapfile1 @@ -42,17 +33,12 @@ mkswap /swapfile1 启用交换分区 swapon /swapfile1 -# 写入`/etc/fstab`,以便在引导时启用: +# 写入`/etc/fstab`以下内容,以便在引导时启用: /swapfile1 swap swap defaults 0 0 # 新添了交换分区并启用它之后,查看`cat /proc/swaps`或free命令的输出来确保交换分区已被启用了 -``` -```bash # 删除交换空间,禁用交换分区:从`/etc/fstab`中删除项目,使用fdisk或yast工具删除分区 swapoff /dev/sdb2 ``` - - - diff --git a/Linux_man_cn/mktemp.md b/Linux_man_cn/mktemp.md index 6700530..e8fa95d 100644 --- a/Linux_man_cn/mktemp.md +++ b/Linux_man_cn/mktemp.md @@ -4,8 +4,6 @@ **mktemp命令** 被用来创建临时文件供shell脚本使用 -## 选项 - ```markdown -d, --directory 创建一个目录而非文件 -u, --dry-run 不创建任何东西,仅打印出名字。(仅供测试) @@ -16,5 +14,3 @@ slashes, but mktemp creates only the final component ``` - - diff --git a/Linux_man_cn/mount.md b/Linux_man_cn/mount.md index 6bb6b3b..efb4750 100644 --- a/Linux_man_cn/mount.md +++ b/Linux_man_cn/mount.md @@ -4,8 +4,6 @@ **mount命令** Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件 -## 选项 - ```markdown mount [-lhV] mount -a [选项] @@ -67,5 +65,4 @@ mount | column -t # 以表格形式输出 mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share # 挂载一个windows共享 mount -o ro /dev/hda1 /mnt 将/dev/hda1用只读模式挂在/mnt之下 mount -o loop /tmp/image.iso /mnt/cdrom # 将/tmp/image.iso光碟的image使用loop模式挂在/mnt/cdrom下。可不烧录检视光碟 - ``` diff --git a/Linux_man_cn/mv.md b/Linux_man_cn/mv.md index e8d58b4..eebd1a8 100644 --- a/Linux_man_cn/mv.md +++ b/Linux_man_cn/mv.md @@ -14,8 +14,6 @@ mv命令可以用来将源文件移至一个目标文件中,或将一组文件 注意事项:mv与cp的结果不同,mv好像文件"搬家",文件个数并未增加。而cp对文件进行复制,文件个数增加了 -## 选项 - ```markdown 用法:mv [选项]... [-T] 源文件 目标文件  或:mv [选项]... 源文件... 目录 diff --git a/Linux_man_cn/newusers.md b/Linux_man_cn/newusers.md index 091c0e2..2a6b0ba 100644 --- a/Linux_man_cn/newusers.md +++ b/Linux_man_cn/newusers.md @@ -1,55 +1,21 @@ -newusers -=== - -用于批处理的方式一次创建多个命令 +# newusers ## 说明 **newusers命令** 用于批处理的方式一次创建多个命令 -## 选项 - -``` -newusers(参数) +```markdown +-r, --system create system accounts +-R, --root CHROOT_DIR directory to chroot into ``` -### 参数 - -用户文件:指定包含用户信息的文本文件,文件的格式要与`/etc/passwd`相同 - ## 实例 -实用newusers命令批量添加用户: - -用法很简单,newusers后面直接跟一个文件,文件格式和`/etc/passwd`的格式相同 - -``` +```bash +# newusers命令批量添加用户:newusers后面直接跟一个文件,文件格式和`/etc/passwd`的格式相同 +:<< comment 用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL -``` - -举例: - -``` jingang0:x:520:520::/home/jingang0:/sbin/nologin jingang1:x:521:521::/home/jingang1:/sbin/nologin -...... -``` - -值得一提的是关于SHELL类型,查看主机上所有SHELL,可以通过chsh来查看: - +comment ``` -[root@localhost beinan]# chsh --list -/bin/sh -/bin/bash -/sbin/nologin -/bin/ksh -/bin/tcsh -/bin/csh -/bin/zsh -``` - -其中除了`/sbin/nologin`,其它类型的SHELL都能登录系统,nologin大多是虚拟用户用的SHELL,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL设置成`/sbin/nologin`,比如上面的例子 - -关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档 - - diff --git a/Linux_man_cn/nohup.md b/Linux_man_cn/nohup.md index 00eefce..d75e1fc 100644 --- a/Linux_man_cn/nohup.md +++ b/Linux_man_cn/nohup.md @@ -8,8 +8,6 @@ 到`$HOME/nohup.out`文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把 指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符 -## 选项 - ```markdown If standard input is a terminal, redirect it from /dev/null If standard output is a terminal, append output to 'nohup.out' if possible,'$HOME/nohup.out' otherwise @@ -21,5 +19,4 @@ To save output to FILE, use 'nohup COMMAND > FILE ```bash nohup command > myout.file 2>&1 & - ``` diff --git a/Linux_man_cn/nslookup.md b/Linux_man_cn/nslookup.md index d9c7d05..fb3eb78 100644 --- a/Linux_man_cn/nslookup.md +++ b/Linux_man_cn/nslookup.md @@ -1,4 +1,4 @@ -# nslookup +# **nslookup** ## 说明 @@ -10,8 +10,6 @@ nslookup4有两种工作模式,即“交互模式”和“非交互模式” 输入nslookup命令直接进入交互模式,此时nslookup会连接到默认的域名服务器(即`/etc/resolv.conf`的第一个dns地址)。或者输入 `nslookup -nameserver/ip`。进入非交互模式,就直接输入`nslookup 域名`就可以 -## 选项 - ```markdown -sil:不显示任何警告信息 ``` @@ -20,7 +18,4 @@ nslookup4有两种工作模式,即“交互模式”和“非交互模式” ```bash nslookup www.jsdig.com - ``` - - diff --git a/Linux_man_cn/passwd.md b/Linux_man_cn/passwd.md index b7e75c3..10633ec 100644 --- a/Linux_man_cn/passwd.md +++ b/Linux_man_cn/passwd.md @@ -5,8 +5,6 @@ **passwd命令** 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可 以指定用户名称,一般用户只能变更自己的密码 -## 选项 - ```markdown 用法: passwd [选项...] <帐号名称> -k, --keep-tokens 保持身份验证令牌不过期 @@ -70,5 +68,5 @@ comment passwd -l linuxde # 锁定用户linuxde不能更改密码 passwd -d linuxde # 清除linuxde用户密码,注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意 - +echo "666666" | passwd --stdin ww &> /dev/null # 设置用户ww密码为666666 ``` diff --git a/Linux_man_cn/paste.md b/Linux_man_cn/paste.md index b43859c..d8eb29e 100644 --- a/Linux_man_cn/paste.md +++ b/Linux_man_cn/paste.md @@ -4,13 +4,8 @@ **paste命令** 用于将多个文件按照列队列进行合并 -## 选项 - ```markdown --d, --delimiters=列表 改用指定列表里的字符替代制表分隔符 --s, --serial 不使用平行的行目输出模式,而是每个文件占用一行 +-d, --delimiters=列表 改用指定列表里的字符替代制表分隔符 +-s, --serial 不使用平行的行目输出模式,而是每个文件占用一行 ``` - - - diff --git a/Linux_man_cn/perl.md b/Linux_man_cn/perl.md index 1cf0939..60c598d 100644 --- a/Linux_man_cn/perl.md +++ b/Linux_man_cn/perl.md @@ -3,9 +3,6 @@ ## 说明 **perl命令** 是perl语言解释器,负责解释执行perl语言程序 - -## 选项 - ```markdown -w:输出有用的警告信息 -U:允许不安全的操作 diff --git a/Linux_man_cn/pidof.md b/Linux_man_cn/pidof.md index 5f2c720..bfd3acc 100644 --- a/Linux_man_cn/pidof.md +++ b/Linux_man_cn/pidof.md @@ -4,8 +4,6 @@ **pidof命令** 用于查找指定名称的进程的进程号id号 -## 选项 - ```markdown -s:仅返回一个进程pid号 -c:仅显示具有相同“root”目录的进程 @@ -13,7 +11,7 @@ -o:指定不显示的进程ID ``` -## 实例 +## 实例 ```bash pidof nginx # 查询nginx进程pid diff --git a/Linux_man_cn/ping.md b/Linux_man_cn/ping.md index 3a7ab3d..9ff8c79 100644 --- a/Linux_man_cn/ping.md +++ b/Linux_man_cn/ping.md @@ -5,8 +5,6 @@ **ping命令** 用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应 该信息,因而得知该主机运作正常 -## 选项 - ```markdown -d:使用Socket的SO_DEBUG功能 -c<完成次数>:设置完成要求回应的次数 @@ -28,11 +26,5 @@ ```bash ping -q -i0 -c 256 -l 4096 -s 1450 -S 10485760 -W 1 hostname # 使用-i0选项以尽可能快的速度发送ICMP数据包,必须时root用户 - -traceroute --icmp 198.124.42.201 # 使用traceroute查找路径中的跃点 ping -q -i0 -c 256 -l 4096 -s 1450 -S 10485760 -W 1 198.124.238.153 # 测试每一跳,看看损失从哪里开始 - - ``` - - diff --git a/Linux_man_cn/popd.md b/Linux_man_cn/popd.md index 19d119b..6c20121 100644 --- a/Linux_man_cn/popd.md +++ b/Linux_man_cn/popd.md @@ -1,40 +1,19 @@ -popd -=== - -用于删除目录栈中的记录 +# popd ## 说明 **popd命令** 用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录 -## 选项 - -``` -pushd(选项)(参数) -``` - - - -``` -+N:将第N个目录删除(从左边数起,数字从0开始) --N:将第N个目录删除(从右边数起,数字从0开始) --n:将目录出栈时,不切换目录 +```markdown ++N 将第N个目录删除(从左边数起,数字从0开始) +-N 将第N个目录删除(从右边数起,数字从0开始) +-n 将目录出栈时,不切换目录 ``` ## 实例 +```bash +# 当前目录/tmp/dir4 +popd +1 # 输出:/tmp/dir4 /tmp/dir2 /tmp/dir1 ~ +popd -2 # 输出:/tmp/dir4 /tmp/dir1 ~ ``` -root@Mylinux:/tmp/dir4# popd(相当于popd +0) -/tmp/dir3 /tmp/dir2 /tmp/dir1 ~ - -root@Mylinux:/tmp/dir3# pushd /tmp/dir4 -/tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 ~ - -root@Mylinux:/tmp/dir4# popd +1 -/tmp/dir4 /tmp/dir2 /tmp/dir1 ~ - -root@Mylinux:/tmp/dir4# popd -2 -/tmp/dir4 /tmp/dir1 ~ -``` - - diff --git a/Linux_man_cn/pr.md b/Linux_man_cn/pr.md index 454c817..2c116c7 100644 --- a/Linux_man_cn/pr.md +++ b/Linux_man_cn/pr.md @@ -4,61 +4,59 @@ **pr命令** 用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页面添加标题 -## 选项 - ```markdown 用法:pr [选项] [文件] Mandatory arguments to long options are mandatory for short options too. -+首页[:末页], --pages=首页[:末页] 在指定的首页/末页处开始/停止打印 --列数, --columns=列数 输出指定的列数。如果指定了-a 选项,则从上到下列印 程序会自动在每一页均衡每列占用的行数 --a, --across 设置每列从上到下输出,配合"-列数"选项一起使用 ++首页[:末页], --pages=首页[:末页] 在指定的首页/末页处开始/停止打印 +-列数, --columns=列数 输出指定的列数。如果指定了-a 选项,则从上到下列印 程序会自动在每一页均衡每列占用的行数 +-a, --across 设置每列从上到下输出,配合"-列数"选项一起使用 -c, --show-control-chars - 使用头标(^G)和八进制反斜杠标记 --d, --double-space 加倍输出空白区域 + 使用头标(^G)和八进制反斜杠标记 +-d, --double-space 加倍输出空白区域 -D, --date-format=格式 - 使用遵循指定格式的页眉日期 + 使用遵循指定格式的页眉日期 -e[字符[宽度]], --expand-tabs[=字符[宽度]] - 扩展输入的字符(制表符) 到制表符宽度(8) --F, -f, --form-feed 使用出纸页页标代替新行作为页面间的分隔符 - (使用-F 选项时报头为3 行,不使用时为5 行) --h, --header=页眉 在页眉中使用居中的指定字符代替文件名,-h "" 输出一个空行,不要使用 -h"" 即为页指定标题 + 扩展输入的字符(制表符) 到制表符宽度(8) +-F, -f, --form-feed 使用出纸页页标代替新行作为页面间的分隔符 + (使用-F 选项时报头为3 行,不使用时为5 行) +-h, --header=页眉 在页眉中使用居中的指定字符代替文件名,-h "" 输出一个空行,不要使用 -h"" 即为页指定标题 -i[字符[宽度]], --output-tabs[=字符[宽度]] - 使用指定字符(或制表符)代替空格不足到指定制表符宽度(默认8) --J, --join-lines 合并整个行,关闭-W 选项的行截断,不使用栏调整,使用 - --sep-string[=字符串] 设置分隔符 + 使用指定字符(或制表符)代替空格不足到指定制表符宽度(默认8) +-J, --join-lines 合并整个行,关闭-W 选项的行截断,不使用栏调整,使用 + --sep-string[=字符串] 设置分隔符 -l, --length=页长 使用指定页长的行数(默认66)(默认文本行数为56,当启用-F 时为 63) --m, --merge 在同一行显示所有文件,每个文件占用一栏,分割行,但是当 - 使用-J 时将行合并到完整长度 +-m, --merge 在同一行显示所有文件,每个文件占用一栏,分割行,但是当 + 使用-J 时将行合并到完整长度 -n[分隔符[位数]], --number-lines[=分隔符[位数]] - 显示行号,使用指定(默认5) 位数,后接分隔符(默认TAB) - 默认从输入文件的第一行开始计数 + 显示行号,使用指定(默认5) 位数,后接分隔符(默认TAB) + 默认从输入文件的第一行开始计数 -N, --first-line-number=数字 - 从首页的首行以指定数字开始计数(参看"+首页") + 从首页的首行以指定数字开始计数(参看"+首页") -o, --indent=缩进量 - 将每行缩进(默认0)个空格,不影响-w 或-W 参数 - 缩进亮的值将被加入页面宽度 + 将每行缩进(默认0)个空格,不影响-w 或-W 参数 + 缩进亮的值将被加入页面宽度 -r, --no-file-warnings - 当文件无法打开时忽略警告 + 当文件无法打开时忽略警告 -s[CHAR], --separator[=CHAR] - 由单个字符分隔各列,未附加-w 时默认为制表符,否则为空 - 另外除非-w 选项被指定,否则"-s[CHAR]"会屏蔽三个列相关 - 的截行选项(-COLUMN|-a -COLUMN|-m) + 由单个字符分隔各列,未附加-w 时默认为制表符,否则为空 + 另外除非-w 选项被指定,否则"-s[CHAR]"会屏蔽三个列相关 + 的截行选项(-COLUMN|-a -COLUMN|-m) -S[STRING], --sep-string[=STRING] separate columns by STRING, without -S: Default separator with -J and otherwise (same as -S" "), no effect on column options -t, --omit-header omit page headers and trailers -T, --omit-pagination - 按照输入文件中的设置忽略页眉和页脚并除去所有分页记号 + 按照输入文件中的设置忽略页眉和页脚并除去所有分页记号 -v, --show-nonprinting - 使用八进制反斜杠标记 + 使用八进制反斜杠标记 -w, --width=页面宽度 - 为多栏页面输出将设置为指定的字符数(默认72) - 仅当-s[char] 选项不启用时有效(即保持默认值 72) + 为多栏页面输出将设置为指定的字符数(默认72) + 仅当-s[char] 选项不启用时有效(即保持默认值 72) -W, --page-width=页宽 - 总是将页宽设置为指定的(默认72)字符数 - 除非-J 选项启用总是截断行,此参数与-S 或-s 冲突 + 总是将页宽设置为指定的(默认72)字符数 + 除非-J 选项启用总是截断行,此参数与-S 或-s 冲突 如果页长<=10 则使用-t 选项。如果FILE 没有定义,或者FILE 是"-",则从标准输入读入 diff --git a/Linux_man_cn/printf.md b/Linux_man_cn/printf.md index f1566bc..43b13cb 100644 --- a/Linux_man_cn/printf.md +++ b/Linux_man_cn/printf.md @@ -4,8 +4,6 @@ **printf命令** 格式化并输出结果到标准输出 -## 选项 - ```markdown 和C语言printf一样,FORMAT控制输出,转义序列如下: @@ -31,20 +29,20 @@ ``` - **格式替代符** - -* %b 相对应的参数被视为含有要被处理的转义序列之字符串 -* %c ASCII字符。显示相对应参数的第一个字符 -* %d, %i 十进制整数 -* %e, %E, %f 浮点格式 -* %g %e或%f转换,看哪一个较短,则删除结尾的零 -* %G %E或%f转换,看哪一个较短,则删除结尾的零 -* %o 不带正负号的八进制值 -* %s 字符串 -* %u 不带正负号的十进制值 -* %x 不带正负号的十六进制值,使用a至f表示10至15 -* %X 不带正负号的十六进制值,使用A至F表示10至15 -* %% 字面意义的% +## 格式替代符 + +* %b 相对应的参数被视为含有要被处理的转义序列之字符串 +* %c ASCII字符。显示相对应参数的第一个字符 +* %d, %i 十进制整数 +* %e, %E, %f 浮点格式 +* %g %e或%f转换,看哪一个较短,则删除结尾的零 +* %G %E或%f转换,看哪一个较短,则删除结尾的零 +* %o 不带正负号的八进制值 +* %s 字符串 +* %u 不带正负号的十进制值 +* %x 不带正负号的十六进制值,使用a至f表示10至15 +* %X 不带正负号的十六进制值,使用A至F表示10至15 +* %% 字面意义的% ## 实例 diff --git a/Linux_man_cn/ps.md b/Linux_man_cn/ps.md index 068c2df..23eae2e 100644 --- a/Linux_man_cn/ps.md +++ b/Linux_man_cn/ps.md @@ -6,11 +6,7 @@ 查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等, 总之大部分信息都是可以通过执行该命令得到的 -## 选项 - -Usage: ps [options] - -```bash +```markdown 基本选项 -A, -e all processes -a all with tty, except session leaders @@ -139,7 +135,6 @@ jstack pid |grep tid -A 30 # 打印线程的堆栈信息 # java进程占用内存过高排查 jmap -histo:live [pid] # 分析具体的对象数目和占用内存大小,从而定位代码 jmap -dump:live,format=b,file=xxx.hprof [pid] # 利用MAT工具分析是否存在内存泄漏等 - ``` ## linux进程5种状态 diff --git a/Linux_man_cn/pushd.md b/Linux_man_cn/pushd.md index 7472293..9e16809 100644 --- a/Linux_man_cn/pushd.md +++ b/Linux_man_cn/pushd.md @@ -4,26 +4,19 @@ **pushd命令** 是将目录加入命令堆叠中。如果指令没有指定目录名称,则会将当前的工作目录置入目录堆叠的最顶端。置入目录如果没有指定堆叠的位置,也会置入目录堆叠的最顶端,同时工作目录会自动切换到目录堆叠最顶端的目录去 - - -```bash +```markdown -n 只加入目录到堆叠中,不进行cd操作 +N 删除从左到右的第n个目录,数字从0开始 -N 删除从右到左的第n个目录,数字从0开始 ``` - ## 实例 ```bash +# 当前目录/tmp/dir4 # 参数--目录:需要压入堆栈的目录 -root@Mylinux:/tmp/dir4# pushd /tmp/dir3 -/tmp/dir3 /tmp/dir4 /tmp/dir1 ~ - -root@Mylinux:/tmp/dir3# pushd /tmp/dir2 -/tmp/dir2 /tmp/dir3 /tmp/dir4 /tmp/dir1 ~ +pushd /tmp/dir3 # 输出:/tmp/dir3 /tmp/dir4 /tmp/dir1 ~ -root@Mylinux:/tmp/dir2# pushd -1 -/tmp/dir1 ~ /tmp/dir2 /tmp/dir3 /tmp/dir4 -# 注意:最左边表示栈顶,最右边表示栈底 +# 当前目录/tmp/dir2 注意:最左边表示栈顶,最右边表示栈底 +pushd -1 # 输出:/tmp/dir1 ~ /tmp/dir2 /tmp/dir3 /tmp/dir4 ``` diff --git a/Linux_man_cn/read.md b/Linux_man_cn/read.md index aa2d8b1..ff9649b 100644 --- a/Linux_man_cn/read.md +++ b/Linux_man_cn/read.md @@ -12,8 +12,6 @@ read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] 存放在 REPLY 变量中 ``` -## 选项 - ```markdown -a array 将词语赋值给 ARRAY 数组变量的序列下标成员,从零开始 -d delim 持续读取直到读入 DELIM 变量中的第一个字符,而不是换行符 @@ -36,7 +34,7 @@ read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] ```bash read name # 从标准输入读取输入并赋值给变量name - + read one two three # 在控制台输入1 2 3,它们之间用空格隔开。等待一组输入,每个单词之间使用空格隔开,直到回车结束,并分别 # 将单词依次赋值给这三个读入变量 diff --git a/Linux_man_cn/rm.md b/Linux_man_cn/rm.md index ed6caf1..c739dac 100644 --- a/Linux_man_cn/rm.md +++ b/Linux_man_cn/rm.md @@ -9,8 +9,6 @@ 否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是 否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除 -## 选项 - ```markdown -f, --force 忽略不存在的文件和参数,不提示直接强制删除 diff --git a/Linux_man_cn/rmdir.md b/Linux_man_cn/rmdir.md index c036ad7..9b06984 100644 --- a/Linux_man_cn/rmdir.md +++ b/Linux_man_cn/rmdir.md @@ -7,8 +7,6 @@ 注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录 本身,也不能是被删除目录的子目录 -## 选项 - ```markdown --ignore-fail-on-non-empty 忽略仅由目录非空产生的所有错误 -p, --parents 删除目录,若该目录删除后上层目录变为空目录一并删除; 例如:'rmdir -p a/b/c' 和 'rmdir a/b/c a/b a'相同 @@ -22,5 +20,3 @@ rmdir -p bin/os_1 # 删除子目录os_1,若bin目录为空,则删除,否则保留 ``` - - diff --git a/Linux_man_cn/rpm.md b/Linux_man_cn/rpm.md index 0951705..41735e8 100644 --- a/Linux_man_cn/rpm.md +++ b/Linux_man_cn/rpm.md @@ -5,8 +5,6 @@ **rpm命令** 是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便 因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度 -## 选项 - ```markdown 用法: rpm [选项...] @@ -171,4 +169,3 @@ rpm -qf /usr/bin/ftptop rpm -qf /var/log/dmesg ``` - diff --git a/Linux_man_cn/rpm2cpio.md b/Linux_man_cn/rpm2cpio.md index 8937c50..0640c01 100644 --- a/Linux_man_cn/rpm2cpio.md +++ b/Linux_man_cn/rpm2cpio.md @@ -1,26 +1,16 @@ -rpm2cpio -=== - -将RPM软件包转换为cpio格式的文件 +# rpm2cpio ## 说明 -**rpm2cpio命令** 用于将rpm软件包转换为cpio格式的文件 +从RPM软件包提取cpio格式的文件 -## 选项 -``` +```markdown rpm2cpio(参数) ``` -### 参数 - -文件:指定要转换的rpm包的文件名 - ## 实例 -``` +```bash rpm2cpio ../libstdc++-4.3.0-8.i386.rpm | cpio -idv ``` - - diff --git a/Linux_man_cn/scp.md b/Linux_man_cn/scp.md index 082cbf6..545e4ca 100644 --- a/Linux_man_cn/scp.md +++ b/Linux_man_cn/scp.md @@ -7,8 +7,6 @@ 占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会 导致硬盘I/O非常高,而scp基本不影响系统正常使用 -## 选项 - ```markdown scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] diff --git a/Linux_man_cn/sed.md b/Linux_man_cn/sed.md index 0724826..0db7a4e 100644 --- a/Linux_man_cn/sed.md +++ b/Linux_man_cn/sed.md @@ -35,7 +35,7 @@ sed脚本。其他非选项参数被视为输入文件,如果没有输入文 ```markdown a\ 在当前行下面插入文本 i\ 在当前行上面插入文本 -c\ 把选定的行改为新的文本 +c\ 用新的文本替换选定的行 d 删除,删除选择的行 D 删除模板块的第一行 s 替换指定字符 @@ -113,6 +113,8 @@ sed -i '5i\test line' file # 在file文件第5行插入test line sed '/test/{ n; s/aa/bb/; }' file # 若匹配到test,则移动到匹配行的下一行,替换这行的aa为bb并打印,接着继续执行 sed '1,10y/abcde/ABCDE/' file # y变形命令,将1至10行所有abcde转为大写,但正则表达式元字符不能使用该命令 sed '10q' file # q退出命令,打印完第10行后退出sed命令 +sed 's/$/EOL/' file # 在file文件末尾插入字符,此例为末尾插入EOL字符 +sed -e 's/erors/errors/g' -e 's/last/final/g' file # 查找多个并替换,此例为查找erors替换为errors,查找last替换为final # 关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config # 方法一 @@ -380,7 +382,7 @@ sed '1,/^$/d' # 删除第一行空行之前的所有内容,可用 sed '/^Subject: */!d; s///;q' # 从邮件头提取“Subject”(标题栏字段),并移除开头的“Subject:”字样 sed '/^Reply-To:/q; /^From:/h; /./d;g;q' # 从邮件头获得回复地址 sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//' # 获取邮件地址。在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮地址的部分剃除。(见上一脚本) -sed 's/^/> /' # 在每一行开头加上一个尖括号和空格(引用信息) +sed 's/^/> /' # 在每一行开头加上一个右尖括号和空格(引用信息) sed 's/^> //' # 将每一行开头处的尖括号和空格删除(解除引用) sed -e :a -e 's/<[^>]*>//g;/ /proc/sys/vm/drop_caches # 清空Linux Buffer Cache -``` \ No newline at end of file +``` diff --git a/Linux_man_cn/tail.md b/Linux_man_cn/tail.md index 12e1a34..16d168f 100644 --- a/Linux_man_cn/tail.md +++ b/Linux_man_cn/tail.md @@ -6,17 +6,15 @@ 一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入 注意:如果表示bytes或lines的K值之前有一个”+”号,则从文件开头的第K项开始显示 -K值后缀:b表示512,b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000, +K值后缀:b表示512,b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y -## 选项 - ```markdown --c, --bytes=K 输出最后K个字节;或使用-c + K输出从每个文件的第K个字节开始的字节 +-c, --bytes=K 输出最后K个字节;或使用-c + K输出从每个文件的第K个字节开始的字节 -f, --follow[={name|descriptor}] 随着文件的增长输出附加的数据;缺少的选项参数意味着“描述符”与--follow = name --retry相同 -n, --lines=K output the last K lines, instead of the last 10;or use -n +K to output starting with the Kth - --max-unchanged-stats=N with --follow=name, reopen a FILE which has not changed size after N (default 5) - iterations to see if it has been unlinked or renamed (this is the usual case of + --max-unchanged-stats=N with --follow=name, reopen a FILE which has not changed size after N (default 5) + iterations to see if it has been unlinked or renamed (this is the usual case of rotated log files);with inotify, this option is rarely useful --pid=PID with -f, terminate after process ID, PID dies -q, --quiet, --silent never output headers giving file names diff --git a/Linux_man_cn/tcpdump.md b/Linux_man_cn/tcpdump.md index 06d31cb..cda136f 100644 --- a/Linux_man_cn/tcpdump.md +++ b/Linux_man_cn/tcpdump.md @@ -5,8 +5,6 @@ **tcpdump命令** 是一款抓包,嗅探器工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用`-w`选项将数据包保存到文件 中,方便以后分析 -## 选项 - ```markdown -a:尝试将网络和广播地址转换成名称 -c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作 @@ -57,5 +55,4 @@ tcpdump net ucb-ether # 监视指定网络的数据包,打印网络地址为uc tcpdump 'gateway snup and (port ftp or ftp-data)' # 打印所有通过网关snup的ftp数据包,gateway后必须是网关名称 tcpdump ip and not net localnet # 打印所有源地址或目标地址是本地主机的IP数据包 tcpdump -i any port 80 -A # 抓取80端口的HTTP报文并以文本形式展示 - ``` diff --git a/Linux_man_cn/top.md b/Linux_man_cn/top.md index 16c0d85..c8ae744 100644 --- a/Linux_man_cn/top.md +++ b/Linux_man_cn/top.md @@ -5,8 +5,6 @@ **top命令** 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提 供的互动式界面,用热键可以管理 -## 选项 - ```markdown -b 以批处理模式操作 -c 显示完整的治命令 diff --git a/Linux_man_cn/touch.md b/Linux_man_cn/touch.md index fb3f1c0..af80e70 100644 --- a/Linux_man_cn/touch.md +++ b/Linux_man_cn/touch.md @@ -5,8 +5,6 @@ **touch命令** 有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地 保留下来;二是用来创建新的空文件 -## 选项 - ```markdown 用法:touch [选项]... 文件.. @@ -27,5 +25,5 @@ ## 实例 ```bash -touch -c -t 0304050607 file # 改变文件file的时间标签 +touch -c -t 0304050607 file # 改变文件file的时间 ``` diff --git a/Linux_man_cn/tr.md b/Linux_man_cn/tr.md index 75f6d71..d2b6f52 100644 --- a/Linux_man_cn/tr.md +++ b/Linux_man_cn/tr.md @@ -2,47 +2,44 @@ ## 说明 -**tr命令** 可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令 - -## 选项 +**tr命令** 字符转换过滤器,可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令 ```markdown 用法:tr [选项]... SET1 [SET2] 从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出 --c, -C, --complement 首先补足SET1,即取代所有不属于第一字符集的字符 --d, --delete 删除匹配SET1 的内容,并不作替换 --s, --squeeze-repeats 如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度 --t, --truncate-set1 先将SET1 的长度截为和SET2 相等 +-c, -C, --complement 首先补足SET1,即取代所有不属于第一字符集的字符 +-d, --delete 删除匹配SET1 的内容,并不作替换 +-s, --squeeze-repeats 如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度 +-t, --truncate-set1 先将SET1 的长度截为和SET2 相等 SET 是一组字符串,一般都可按照字面含义理解。解析序列如下: - \NNN 八进制值为NNN 的字符(1 至3 个数位) - \\ 反斜杠 - \a 终端鸣响 - \b 退格 - \f 换页 - \n 换行 - \r 回车 - \t 水平制表符 - \v 垂直制表符 - 字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符 - [字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度 - [字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数 - [:alnum:] 所有的字母和数字 - [:alpha:] 所有的字母 - [:blank:] 所有呈水平排列的空白字符 - [:cntrl:] 所有的控制字符 - [:digit:] 所有的数字 - [:graph:] 所有的可打印字符,不包括空格 - [:lower:] 所有的小写字母 - [:print:] 所有的可打印字符,包括空格 - [:punct:] 所有的标点字符 - [:space:] 所有呈水平或垂直排列的空白字符 - [:upper:] 所有的大写字母 - [:xdigit:] 所有的十六进制数 - [=字符=] 所有和指定字符相等的字符 - +\NNN 八进制值为NNN 的字符(1 至3 个数位) +\\ 反斜杠 +\a 终端鸣响 +\b 退格 +\f 换页 +\n 换行 +\r 回车 +\t 水平制表符 +\v 垂直制表符 +字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符 +[字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度 +[字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数 +[:alnum:] 所有的字母和数字 +[:alpha:] 所有的字母 +[:blank:] 所有呈水平排列的空白字符 +[:cntrl:] 所有的控制字符 +[:digit:] 所有的数字 +[:graph:] 所有的可打印字符,不包括空格 +[:lower:] 所有的小写字母 +[:print:] 所有的可打印字符,包括空格 +[:punct:] 所有的标点字符 +[:space:] 所有呈水平或垂直排列的空白字符 +[:upper:] 所有的大写字母 +[:xdigit:] 所有的十六进制数 +[=字符=] 所有和指定字符相等的字符 使用方式: tr '[:lower:]' '[:upper:]' 仅在SET1 和SET2 都给出,同时没有-d 选项的时候才会进行替换 diff --git a/Linux_man_cn/traceroute.md b/Linux_man_cn/traceroute.md index 6261fe7..66f2533 100644 --- a/Linux_man_cn/traceroute.md +++ b/Linux_man_cn/traceroute.md @@ -1,25 +1,14 @@ -traceroute -=== - -显示数据包到主机间的路径 +# **traceroute** ## 说明 -**traceroute命令** 用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节 +**traceroute命令** 跟踪发送到远程主机的数据包所采用的路由。此命令可在LAN,WAN或Internet上运行。远程主机可以由IP地址指定 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址 -## 选项 - -``` -traceroute(选项)(参数) -``` - - - -``` +```markdown -d:使用Socket层级的排错功能 -f<存活数值>:设置第一个检测数据包的存活数值TTL的大小 -F:设置勿离断位 @@ -37,27 +26,10 @@ traceroute(选项)(参数) -x:开启或关闭数据包的正确性检验 ``` -### 参数 - -主机:指定目的主机IP地址或主机名 - ## 实例 -``` +```bash traceroute www.58.com -traceroute to www.58.com (211.151.111.30), 30 hops max, 40 byte packets - 1 unknown (192.168.2.1) 3.453 ms 3.801 ms 3.937 ms - 2 221.6.45.33 (221.6.45.33) 7.768 ms 7.816 ms 7.840 ms - 3 221.6.0.233 (221.6.0.233) 13.784 ms 13.827 ms 221.6.9.81 (221.6.9.81) 9.758 ms - 4 221.6.2.169 (221.6.2.169) 11.777 ms 122.96.66.13 (122.96.66.13) 34.952 ms 221.6.2.53 (221.6.2.53) 41.372 ms - 5 219.158.96.149 (219.158.96.149) 39.167 ms 39.210 ms 39.238 ms - 6 123.126.0.194 (123.126.0.194) 37.270 ms 123.126.0.66 (123.126.0.66) 37.163 ms 37.441 ms - 7 124.65.57.26 (124.65.57.26) 42.787 ms 42.799 ms 42.809 ms - 8 61.148.146.210 (61.148.146.210) 30.176 ms 61.148.154.98 (61.148.154.98) 32.613 ms 32.675 ms - 9 202.106.42.102 (202.106.42.102) 44.563 ms 44.600 ms 44.627 ms -10 210.77.139.150 (210.77.139.150) 53.302 ms 53.233 ms 53.032 ms -11 211.151.104.6 (211.151.104.6) 39.585 ms 39.502 ms 39.598 ms -12 211.151.111.30 (211.151.111.30) 35.161 ms 35.938 ms 36.005 ms ``` 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是`-q`的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用`traceroute -q 4 www.58.com`,表示向每个网关发送4个数据包 @@ -68,26 +40,8 @@ traceroute to www.58.com (211.151.111.30), 30 hops max, 40 byte packets 如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决 -**跳数设置** - -``` -[root@localhost ~]# traceroute -m 10 www.baidu.com -traceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets - 1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms - 2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms - 3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms - 4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms - 5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms - 6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms - 7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms - 8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms - 9 * * * -10 * * * -``` - -其它一些实例 - -``` +```bash +traceroute --icmp 198.124.42.201 # 使用traceroute查找路径中的跃点 traceroute -m 10 www.baidu.com # 跳数设置 traceroute -n www.baidu.com # 显示IP地址,不查主机名 traceroute -p 6888 www.baidu.com # 探测包使用的基本UDP端口设置6888 @@ -95,5 +49,3 @@ traceroute -q 4 www.baidu.com # 把探测包的个数设置为值4 traceroute -r www.baidu.com # 绕过正常的路由表,直接发送到网络相连的主机 traceroute -w 3 www.baidu.com # 把对外发探测包的等待响应时间设置为3秒 ``` - - diff --git a/Linux_man_cn/trap.md b/Linux_man_cn/trap.md index 42a3c2a..e3e416b 100644 --- a/Linux_man_cn/trap.md +++ b/Linux_man_cn/trap.md @@ -1,5 +1,4 @@ -trap -=== +# trap 指定在接收到信号后将要采取的动作 @@ -7,19 +6,15 @@ trap **trap命令** 用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。当shell接收到sigspec指定的信号时,arg参数(命令)将会被读取,并被执行。例如: -``` -trap "exit 1" HUP INT PIPE QUIT TERM -``` - -表示当shell收到HUP INT PIPE QUIT TERM这几个命令时,当前执行的程序会读取参数“exit 1”,并将它作为命令执行 +trap -[lp] [[arg] sigspec ...] -## 选项 +```bash +# 表示当shell收到HUP INT PIPE QUIT TERM这几个命令时,当前执行的程序会读取参数“exit 1”,并将它作为命令执行 +trap "exit 1" HUP INT PIPE QUIT TERM -``` -trap -[lp] [[arg] sigspec ...] ``` -参数说明 +参数说明 如果arg参数缺省或者为“-”,每个接收到的sigspec信号都将会被重置为它们进入shell时的值 @@ -39,13 +34,13 @@ trap -[lp] [[arg] sigspec ...] 如果sigspec是ERR,arg参数指定的命令将会在任何简单命名执行完后返回值为非零值时执行,但是也有以下例外情况: -1. 如果执行失败的命令是紧跟在while或者until关键字之后的一组命令中的一部分时 -2. 如果执行失败的命令是if测试语句的一部分时,是 && 和 ||连接的列表中的一部分时 -3. 如果执行失败的命令的返回值是被取反过的(通过!操作符) +1. 如果执行失败的命令是紧跟在while或者until关键字之后的一组命令中的一部分时 +2. 如果执行失败的命令是if测试语句的一部分时,是 && 和 ||连接的列表中的一部分时 +3. 如果执行失败的命令的返回值是被取反过的(通过!操作符) 在以上情况中如果sigspec是ERR,arg命令不会执行,这些规则同样适用于errexit选项。如果sigspec是RETURN,arg指定的命令在每次shell函数或者脚本用"."或者内置的命令执行完成后执行,在shell入口处被忽略的命令 是没法被trap和reset的,被trap的信号,在创建的子进程中使用时会在子进程被创建时被重置为原始的值。如果trap使用的sigspec信号 是invalid的信号则trap命令返回false(失败),否则返回成功(true) -### 信号 +### 信号 信号是一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略,默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务 @@ -141,7 +136,7 @@ trap -[lp] [[arg] sigspec ...] -### 捕获信号 +### 捕获信号 当你按下 Ctrl + C 键或 Break 键在终端一个shell程序的执行过程中,正常程序将立即终止,并返回命令提示符。这可能并不总是可取的。例如,你可能最终留下了一堆临时文件,将不会清理 @@ -155,10 +150,10 @@ $ trap commands signals 在shell脚本中的陷阱有三种常见的用途: -1. 清理临时文件 -2. 忽略信号 +1. 清理临时文件 +2. 忽略信号 - **1、清理临时文件:** + **1、清理临时文件:** trap命令作为一个例子,下面展示了如何可以删除一些文件,然后退出,如果有人试图从终端中止程序: @@ -188,7 +183,7 @@ WORKDIR 值 $$ 所以在前面的例子中,将被取代 trap 命令执行的 $ trap 'rm $WORKDIR/work1$ $WORKDIR/dataout$; exit' 1 2 ``` - **2、忽略信号:** + **2、忽略信号:** 如果陷阱列出的命令是空的,指定的信号接收时,将被忽略。例如,下面的命令: @@ -210,7 +205,7 @@ $ trap 2 如果你忽略了一个信号,所有的子shell也忽略该信号。不过,如果指定要采取的行动在收到的信号,所有的子shell仍然会在收到该信号的默认操作 - **3、重设陷阱:** + **3、重设陷阱:** 当你改变了默认在收到信号后应采取的动作,你可以改变它回来的陷阱,如果你只是省略第一个参数; @@ -219,5 +214,3 @@ $ trap 1 2 ``` 复位应采取的动作收到信号1或2返回默认 - - diff --git a/Linux_man_cn/ulimit.md b/Linux_man_cn/ulimit.md index 924a5a2..47fa320 100644 --- a/Linux_man_cn/ulimit.md +++ b/Linux_man_cn/ulimit.md @@ -18,8 +18,6 @@ ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类 作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对 于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户 -## 选项 - ```markdown -a:显示目前资源限制的设定 -c :设定core文件的最大值,单位为区块 @@ -59,7 +57,4 @@ max user processes (-u) 98304 #当前用户同时打开的进 virtual memory (kbytes, -v) unlimited #没有限制进程的最大地址空间 file locks (-x) unlimited #所能锁住的文件的最大个数没有限制 comment - ``` - - diff --git a/Linux_man_cn/umount.md b/Linux_man_cn/umount.md index 9a40057..9bedbac 100644 --- a/Linux_man_cn/umount.md +++ b/Linux_man_cn/umount.md @@ -1,79 +1,24 @@ -umount -=== - -用于卸载已经加载的文件系统 +# **umount** ## 说明 **umount命令** 用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱 -## 选项 - -``` -umount(选项)(参数) +```markdown +-a 卸除/etc/mtab中记录的所有文件系统 +-h 显示帮助 +-n 卸除时不要将信息存入/etc/mtab文件中 +-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统 +-t<文件系统类型> 仅卸除选项中所指定的文件系统 +-v 执行时显示详细的信息 ``` - - -``` --a:卸除/etc/mtab中记录的所有文件系统 --h:显示帮助 --n:卸除时不要将信息存入/etc/mtab文件中 --r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统 --t<文件系统类型>:仅卸除选项中所指定的文件系统 --v:执行时显示详细的信息 --V:显示版本信息 -``` - -### 参数 - -文件系统:指定要卸载的文件系统或者其对应的设备文件名 - ## 实例 -下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息: - -通过设备名卸载 - -``` -umount -v /dev/sda1 -/dev/sda1 umounted -``` - -通过挂载点卸载 - -``` -umount -v /mnt/mymount/ -/tmp/diskboot.img umounted -``` - -如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录: - -``` -umount -v /mnt/mymount/ -umount: /mnt/mymount: device is busy -umount: /mnt/mymount: device is busy -``` - -有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点: +```bash +umount -v /dev/sda1 # 通过设备名卸载 +umount -v /mnt/mymount/ # 通过挂载点卸载 +umount -vl /mnt/mymount/ # 延迟卸载,对付系统文件正忙的另一种方法是执行延迟卸载 +eject /dev/cdrom 卸载并弹出CD ``` -lsof | grep mymount 查找mymount分区里打开的文件 -bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount -``` - -从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程 - -对付系统文件正忙的另一种方法是执行延迟卸载: - -``` -umount -vl /mnt/mymount/ 执行延迟卸载 -``` - -延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD: - -``` -eject /dev/cdrom 卸载并弹出CD -``` - - diff --git a/Linux_man_cn/uname.md b/Linux_man_cn/uname.md index 1b1b39f..325a247 100644 --- a/Linux_man_cn/uname.md +++ b/Linux_man_cn/uname.md @@ -4,21 +4,18 @@ **uname命令** 用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等) -## 选项 - ```markdown 用法:uname [选项] 输出一组系统信息。如果不跟随选项,则视为只附加-s 选项 --a, --all 以如下次序输出所有信息。其中若-p 和-i 的探测结果不可知则被省略 --s, --kernel-name 输出内核名称 --n, --nodename 输出网络节点上的主机名 +-a, --all 以如下次序输出所有信息。其中若-p 和-i 的探测结果不可知则被省略 +-s, --kernel-name 输出内核名称 +-n, --nodename 输出网络节点上的主机名 -r, --kernel-release 输出内核发行号 --v, --kernel-version 输出内核版本 --m, --machine 输出主机的硬件架构名称 --p, --processor 输出处理器类型或"unknown" --i, --hardware-platform 输出硬件平台或"unknown" --o, --operating-system 输出操作系统名称 - +-v, --kernel-version 输出内核版本 +-m, --machine 输出主机的硬件架构名称 +-p, --processor 输出处理器类型或"unknown" +-i, --hardware-platform 输出硬件平台或"unknown" +-o, --operating-system 输出操作系统名称 ``` ## 实例 diff --git a/Linux_man_cn/uniq.md b/Linux_man_cn/uniq.md index 024bb68..cf719ad 100644 --- a/Linux_man_cn/uniq.md +++ b/Linux_man_cn/uniq.md @@ -4,8 +4,6 @@ **uniq命令** 用于报告或忽略文件中的重复行,一般与sort命令结合使用 -## 选项 - ```markdown 用法:uniq [选项]... [文件] Filter adjacent matching lines from INPUT (or standard input), diff --git a/Linux_man_cn/unset.md b/Linux_man_cn/unset.md index 9359876..50bd8e8 100644 --- a/Linux_man_cn/unset.md +++ b/Linux_man_cn/unset.md @@ -4,8 +4,6 @@ **unset命令** 用于删除已定义的shell变量(包括环境变量)和shell函数。unset命令不能够删除具有只读属性的shell变量和环境变量 -## 选项 - ```markdown -f:仅删除函数 -v:仅删除变量 @@ -16,4 +14,3 @@ ```bash unset -v mylove # 使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除 ``` - diff --git a/Linux_man_cn/unzip.md b/Linux_man_cn/unzip.md index 178cf36..ac97873 100644 --- a/Linux_man_cn/unzip.md +++ b/Linux_man_cn/unzip.md @@ -4,8 +4,6 @@ **unzip命令** 用于解压缩由zip命令压缩的“.zip”压缩包 -## 选项 - ```markdown -c:将解压缩的结果显示到屏幕上,并对字符做适当的转换 -f:更新现有的文件 @@ -64,7 +62,4 @@ unzip test.zip # 将压缩文件text.zip在当前目录下解压缩 unzip -n test.zip -d /tmp # 将压缩文件text.zip在指定目录`/tmp`下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件 unzip -v test.zip # 查看压缩文件目录,但不解压 unzip -o test.zip -d tmp/ # 将压缩文件test.zip在指定目录`/tmp`下解压缩,如果已有相同的文件存在,覆盖原先的文件 - ``` - - diff --git a/Linux_man_cn/uptime.md b/Linux_man_cn/uptime.md index 4fd86ef..651b138 100644 --- a/Linux_man_cn/uptime.md +++ b/Linux_man_cn/uptime.md @@ -4,12 +4,9 @@ **uptime命令** 能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载 -## 选项 - ```bash -p, --pretty 以漂亮易读方式输出 -s, --since 系统从何时运行的 - ``` ## 实例 diff --git a/Linux_man_cn/useradd.md b/Linux_man_cn/useradd.md index f336b02..502c966 100644 --- a/Linux_man_cn/useradd.md +++ b/Linux_man_cn/useradd.md @@ -8,8 +8,6 @@ userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存 在Slackware中,adduser指令是个script程序,利用交互的方式取得输入的用户帐号,然后再交由真正建立帐号的useradd命令建立新用 户,如此可方便管理员建立用户帐号。在Red Hat Linux中,**adduser命令** 则是useradd命令的符号连接,两者实际上是同一个指令 -## 选项 - ```markdown useradd [选项] 登录 useradd -D @@ -53,5 +51,4 @@ useradd -g sales jack -G company,employees # 新建用户jack同时指定所 # 设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号 useradd caojh -u 544 # 建立一个新用户账户,并设置ID - ``` diff --git a/Linux_man_cn/userdel.md b/Linux_man_cn/userdel.md index a5b6c3b..42a26eb 100644 --- a/Linux_man_cn/userdel.md +++ b/Linux_man_cn/userdel.md @@ -4,8 +4,6 @@ **userdel命令** 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件 -## 选项 - ```markdown -f, --force 强制执行某些否则会失败的动作,例如:即使用户已经登录状态 -r, --remove 删除用户的同时删除主目录和邮件池 @@ -19,6 +17,4 @@ ```bash userdel linuxde # 删除用户linuxde,但不删除其家目录及文件 userdel -r linuxde # 删除用户linuxde,其家目录及文件一并删除;不要轻易用`-r`选项 - ``` - diff --git a/Linux_man_cn/usermod.md b/Linux_man_cn/usermod.md index 4cece33..50d46e1 100644 --- a/Linux_man_cn/usermod.md +++ b/Linux_man_cn/usermod.md @@ -6,8 +6,6 @@ 必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在 server上更动相关的NIS设定 -## 选项 - ```markdown 用法:usermod [选项] 登录 diff --git a/Linux_man_cn/users.md b/Linux_man_cn/users.md index aae3a9b..5e7fb12 100644 --- a/Linux_man_cn/users.md +++ b/Linux_man_cn/users.md @@ -8,7 +8,4 @@ ```bash # 根据文件判断输出当前有谁正登录在系统上。如果文件未予指定,则使用/var/run/utmp,/var/log/wtmp 是通用的相关文件 - ``` - - diff --git a/Linux_man_cn/w.md b/Linux_man_cn/w.md index 126aab6..3764903 100644 --- a/Linux_man_cn/w.md +++ b/Linux_man_cn/w.md @@ -5,8 +5,6 @@ **w命令** 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序 单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息 -## 选项 - ```markdown -h, --no-header 不打印头信息 -u, --no-current ignore current process username @@ -34,8 +32,4 @@ JCPU 以终端代号来区分,该终端所有相关的进程执行 PCPU CPU执行程序耗费的时间 WHAT 用户正在执行的操作 comment - - ``` - - diff --git a/Linux_man_cn/watch.md b/Linux_man_cn/watch.md index 82c6a73..211d2ad 100644 --- a/Linux_man_cn/watch.md +++ b/Linux_man_cn/watch.md @@ -5,8 +5,6 @@ **watch命令** 以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带 有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果 -## 选项 - ```markdown watch [options] command @@ -42,9 +40,6 @@ FreeBSD和Linux下watch命令的不同,在Linux下,watch是周期性的执 如:`watch -n 1 -d netstat -ant`,而在FreeBSD下的watch命令是查看其它用户的正在运行的操作 watch允许你偷看其它terminal正在做什么,该命令只能让超级用户使用 -## 实例 - ```bash watch -n 1 'cat /proc/interrupts' # 检测文件/proc/interrupts的变化 - ``` diff --git a/Linux_man_cn/wc.md b/Linux_man_cn/wc.md index bee9bd6..a628232 100644 --- a/Linux_man_cn/wc.md +++ b/Linux_man_cn/wc.md @@ -5,16 +5,14 @@ **wc命令** 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令我们可以计算文件的Byte数、字数或是列数 若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数 -## 选项 - ```markdown 以下选项可用于选择打印的计数,始终按以下顺序排列:换行符,单词,字符,字节,最大行长度 -c, --bytes 打印统计的字节数 --m, --chars 打印统计的字符数 --l, --lines 打印行数 - --files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被指定为"-"则从标准输入读文件名 --L, --max-line-length 显示最长行的长度 --w, --words 显示单词计数 +-m, --chars 打印统计的字符数 +-l, --lines 打印行数 + --files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被指定为"-"则从标准输入读文件名 +-L, --max-line-length 显示最长行的长度 +-w, --words 显示单词计数 ``` @@ -22,6 +20,6 @@ ```bash wc -l * # 统计当前目录下的所有文件行数 -find . * | xargs wc -l # 当前目录以及子目录的所有文件行数 +find . * | xargs wc -l # 当前目录以及子目录的所有文件行数 wc test.txt # 查看文件的字节数、字数、行数 ``` diff --git a/Linux_man_cn/wget.md b/Linux_man_cn/wget.md index 77aadee..db882a5 100644 --- a/Linux_man_cn/wget.md +++ b/Linux_man_cn/wget.md @@ -20,10 +20,6 @@ wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下 4. **设置方便简单** 5. **程序小,完全免费** -## 选项 - -wget [选项]... [URL]... - ```markdown 长选项所必须的参数在使用短选项时也是必须的 diff --git a/Linux_man_cn/whatis.md b/Linux_man_cn/whatis.md index c9252a5..1d59a2b 100644 --- a/Linux_man_cn/whatis.md +++ b/Linux_man_cn/whatis.md @@ -7,8 +7,6 @@ whatis命令在用`catman -w`命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部 分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用`man -f`命令 -## 选项 - ```markdown Usage: whatis [OPTION...] 关键词... diff --git a/Linux_man_cn/whereis.md b/Linux_man_cn/whereis.md index ce03054..6a4057b 100644 --- a/Linux_man_cn/whereis.md +++ b/Linux_man_cn/whereis.md @@ -1,4 +1,4 @@ -# whereis +# **whereis** ## 说明 @@ -11,8 +11,6 @@ whereis命令只能用于程序名的搜索,而且只搜索二进制文件( 一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库 文件没有被更新 -## 选项 - ```markdown -b:只查找二进制文件 -B<目录>:只在设置的目录下查找二进制文件 @@ -33,6 +31,3 @@ whereis -m svn # 查出说明文档路径 whereis -s svn # 查找source源文件 ``` - - - diff --git a/Linux_man_cn/who.md b/Linux_man_cn/who.md index c55d20c..0da48ab 100644 --- a/Linux_man_cn/who.md +++ b/Linux_man_cn/who.md @@ -5,38 +5,31 @@ **who命令** 是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入 时间以及从何处登入或正在使用哪个X显示器 -## 选项 - ```markdown --a, --all 等于-b -d --login -p -r -t -T -u 选项的组合 --b, --boot 上次系统启动时间 --d, --dead 显示已死的进程 --H, --heading 输出头部的标题列 --l,--login 显示系统登录进程 - --lookup 尝试通过 DNS 查验主机名 --m 只面对和标准输入有直接交互的主机和用户 --p, --process 显示由 init 进程衍生的活动进程 --q, --count 列出所有已登录用户的登录名与用户数量 --r, --runlevel 显示当前的运行级别 --s, --short 只显示名称、线路和时间(默认) --T, -w, --mesg 用+,- 或 ? 标注用户消息状态 --u, --users 列出已登录的用户 - --message 等于-T - --writable 等于-T +-a, --all 等于-b -d --login -p -r -t -T -u 选项的组合 +-b, --boot 上次系统启动时间 +-d, --dead 显示已死的进程 +-H, --heading 输出头部的标题列 +-l,--login 显示系统登录进程 + --lookup 尝试通过 DNS 查验主机名 +-m 只面对和标准输入有直接交互的主机和用户 +-p, --process 显示由 init 进程衍生的活动进程 +-q, --count 列出所有已登录用户的登录名与用户数量 +-r, --runlevel 显示当前的运行级别 +-s, --short 只显示名称、线路和时间(默认) +-T, -w, --mesg 用+,- 或 ? 标注用户消息状态 +-u, --users 列出已登录的用户 + --message 等于-T + --writable 等于-T If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common. If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual - ``` - ## 实例 ```bash who -q who -H who -w - ``` - - diff --git a/Linux_man_cn/whoami.md b/Linux_man_cn/whoami.md index 9022f59..b9ef11f 100644 --- a/Linux_man_cn/whoami.md +++ b/Linux_man_cn/whoami.md @@ -7,7 +7,5 @@ ## 实例 ```bash - +whoami # 仅列出当前登录用户名 ``` - - diff --git a/Linux_man_cn/whois.md b/Linux_man_cn/whois.md index 13f255a..dfcfdda 100644 --- a/Linux_man_cn/whois.md +++ b/Linux_man_cn/whois.md @@ -4,41 +4,37 @@ **whois** whois目录服务的客户端 -## 选项 - ```markdown -用法: whois 【选项】 …… 对象 …… +用法: whois 【选项】 …… 对象 …… -h HOST, --host HOST 连接到服务器 HOST -p PORT, --port PORT 连接到端口 PORT --H 隐藏法律声明 - --verbose 解释正在做什么 - --help 显示帮助并退出 - --version 输出版本信息并退出 - -这些标志是由 whois.ript.net 和 RIPE-like 服务器支持的: - -l 寻找有更少具体匹配的一个级别 --L 寻找所有更少具体匹配的级别 --m 寻找有更加具体匹配的一个级别 --M 寻找有更加具体的匹配的所有级别 --c 寻找包含 mnt-irt 属性的最小匹配 --x 精确匹配 +-H 隐藏法律声明 + --verbose 详细模式输出 + +这些标志是由 whois.ript.net 和 RIPE-like 服务器支持的: + -l 寻找有更少具体匹配的一个级别 +-L 寻找所有更少具体匹配的级别 +-m 寻找有更加具体匹配的一个级别 +-M 寻找有更加具体的匹配的所有级别 +-c 寻找包含 mnt-irt 属性的最小匹配 +-x 精确匹配 -b return brief IP address ranges with abuse contact --B 关闭对象过滤(显示 email 地址) --G 关闭相关联对象的分组 --d 返回 DNS 反解授权对象 --i ATTR[,ATTR]... 对特定的属性( ATTR )进行逆向查询 --T TYPE[,TYPE]... 只寻找 TYPE 的对象 --K 只返回主键 --r 关闭联系信息的递归查询 --R 强制显示域对象的本地副本,即使 - 它包含引用 --a 一并搜索所有的数据库镜像 --s SOURCE[,SOURCE]... 从 SOURCE 中搜索数据库镜像 --g SOURCE:FIRST-LAST 从串行的 FIRST 到 LAST 的 SOURCE 中查找更新 --t TYPE 请求 TYPE 对象的模板 --v TYPE 请求 TYPE 对象的详细模板 --q [version|sources|types] 询问制定服务器信息 +-B 关闭对象过滤(显示 email 地址) +-G 关闭相关联对象的分组 +-d 返回 DNS 反解授权对象 +-i ATTR[,ATTR]... 对特定的属性( ATTR )进行逆向查询 +-T TYPE[,TYPE]... 只寻找 TYPE 的对象 +-K 只返回主键 +-r 关闭联系信息的递归查询 +-R 强制显示域对象的本地副本,即使 + 它包含引用 +-a 一并搜索所有的数据库镜像 +-s SOURCE[,SOURCE]... 从 SOURCE 中搜索数据库镜像 +-g SOURCE:FIRST-LAST 从串行的 FIRST 到 LAST 的 SOURCE 中查找更新 +-t TYPE 请求 TYPE 对象的模板 +-v TYPE 请求 TYPE 对象的详细模板 +-q [version|sources|types] 询问制定服务器信息 ``` @@ -46,5 +42,4 @@ ```bash whois linuxde.net # 查询域名信息 - ``` diff --git a/Linux_man_cn/zip.md b/Linux_man_cn/zip.md index 16c2471..1585dc5 100644 --- a/Linux_man_cn/zip.md +++ b/Linux_man_cn/zip.md @@ -4,8 +4,6 @@ **zip命令** 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件 -## 选项 - ```markdown -A:调整可执行的自动解压缩文件 -b<工作目录>:指定暂时存放文件的目录 @@ -72,5 +70,3 @@ yum install -y unzip zip # yum安装 zip -q -r html.zip /home/Blinux/html # 将/home/Blinux/html/目录下所有文件和文件夹打包到当前目录下的html.zip ``` - -