📄 linux系统命令应用指南 - linux伊甸园----linuxeden_com-linuxunix新闻下载技术文档论坛人才.htm
字号:
<P style="TEXT-INDENT: 2em">在这种情况下,您实际要输入 ^ 符号,而不是 CNTRL
键。这种改变只在当前窗口中起效。为了使这种改变永久生效,需要在您的 .bashrc 文件中输入该语句。
<P style="TEXT-INDENT: 2em">Diff 和 Date 。 顾名思义, Diff
比较两个文件。它返回那些导致文件不同的行,并返回关于如何使文件变得相同的一些含义隐晦的输出:
<P style="TEXT-INDENT: 2em">$ diff test.out test2.out
<P style="TEXT-INDENT: 2em">0a1
<P style="TEXT-INDENT: 2em">> Another test.
<P style="TEXT-INDENT: 2em">在这里我们被告知,需要将 "Another test."
这一行添加到 test.out ,以便使它与 test2.out 相似。第一个字符 "0" 是要在
test.out 中编辑的行号; "a" 表示该行应该被添加到 test.out ,以便与 test2.out
的第一行 "1" 相匹配。如果我们需要更改 test.out ,则第二个字符也可以是 "c" ,而如果我们需要从
test.out 中删除一些内容,则第二个字符是 "d" 。
<P
style="TEXT-INDENT: 2em">您可能希望使一个文件与另一个文件相似,以便为某些代码提供补丁。
diff 还经常作为分析工具,用于验证程序或脚本 — 例如 sed 脚本 — 的输出是否是所预期的输出。
<P style="TEXT-INDENT: 2em">date
命令可用于显示或设置日期。如果用户具有超级用户权限,则他或她可以通过在以下命令中提供一个数字型字符串来设置日期:
<P style="TEXT-INDENT: 2em">$ date 0101010004
<P style="TEXT-INDENT: 2em">此命令将日期设置为 2004 年 (04) 1 月 1
日 (0101) 凌晨 1 时 (0100) 。
<P
style="TEXT-INDENT: 2em">但是,任何用户可以用所需的格式来显示日期。注意在格式序列之前需要一个加号
"+" 。如果没有出现此命令的预期输出,则尝试将它包含在单引号中:
<P style="TEXT-INDENT: 2em">$ date +'%H%M%S'
<P style="TEXT-INDENT: 2em">204748
<P style="TEXT-INDENT: 2em">您可以在序列中包含空格,这时您需要使用双引号:
<P style="TEXT-INDENT: 2em">$ date +"%H %M %S"
<P style="TEXT-INDENT: 2em">20 47 51
<P
style="TEXT-INDENT: 2em">在日期的主页上列有三十多种不同的格式序列,这些序列可以按需要结合起来,以获得您最后的输出格式。
<P style="TEXT-INDENT: 2em">date 的输出还可以用于脚本中,如:
<P style="TEXT-INDENT: 2em">$ date -d '2 day'
<P style="TEXT-INDENT: 2em">Thu Jan 29 19:02:02 EST 2004
<P style="TEXT-INDENT: 2em">-d 选项指示 date
显示其后字符串中所描述的时间。在上例中,我们要求显示从现在起( 2004 年 1 月 27
日)两天后的日期。我们也可以要求显示三天前的日期,其命令为:
<P style="TEXT-INDENT: 2em">$ date -d '-3 day'
<P style="TEXT-INDENT: 2em">Sun Jan 25 20:56:59 EST 2004
<P style="TEXT-INDENT: 2em">date
多种功能的另一个示例是能够向其输出附加字符串,为生成唯一的文件名提供了一种便利的方法。
<P style="TEXT-INDENT: 2em">$ ls -l | cat > $(date
+ls_%d%b%y%H%M.out)
<P style="TEXT-INDENT: 2em">$ ls ls_*.out
<P style="TEXT-INDENT: 2em">ls_04Feb041633.out
<P style="TEXT-INDENT: 2em">在这里,我们将一个长文件列表的输出传送给 cat
,它将我们的输出再传送到一个名为 ls_04Feb041609.out
的文件。注意我们为文件名使用了一个变量,由美元符号 "$" 表示。依次将 "ls_" 和 ".out"
附加到日期,其格式为月份中的日 (%d) 、本地的月份名称缩写 (%b) 、年份的最后两位数字 (%y) 、小时
(%H) 和分钟 (%M) ,从而产生此文件名。
<P style="TEXT-INDENT: 2em">Sort 和 Uniq 。
您可以从管道或从命令行所指定的文件对文本文件的行进行 sort 操作。除非另外指定, sort
对多列输出的第一列进行操作。在默认情况下,除非使用 -n 选项,数字型的列按字母顺序排序。
<P style="TEXT-INDENT: 2em">Sort 列可以用两种不同的格式指定。如果使用 -k
选项,则列的位置从 1 开始进行编号。您还可以使用 +POS1
格式,从第一列编号为零开始进行列的编号。以下两个命令产生相同的输出:
<P style="TEXT-INDENT: 2em">$ ls -l *.out | sort +5 -7
<P style="TEXT-INDENT: 2em">$ ls -l *.out | sort -k 6,8
<P style="TEXT-INDENT: 2em">-rw-r--r-- 1 bluher users
375 Dec 5 2002 fdisk.out
<P style="TEXT-INDENT: 2em">-rw-r--r-- 1 bluher users
2447 Dec 28 20:15 ls.out
<P style="TEXT-INDENT: 2em">-rw-r--r-- 1 bluher users
590 Jan 4 21:24 greps.out
<P style="TEXT-INDENT: 2em">-rw-r--r-- 1 bluher users 78
Jan 4 21:25 sgrep.out
<P style="TEXT-INDENT: 2em">...
<P style="TEXT-INDENT: 2em">在默认情况下, sort
命令的列分隔符是空格和制表符。可以使用 -t SEP 选项指定其他分隔符,其中 SEP 是您指定的分隔符号。
sort 的默认顺序是从最低到最高,利用 -r 选项可以将顺序颠倒。
<P style="TEXT-INDENT: 2em">Sort
可用于很多不同的任务。例如,它可用于对文件输出进行排序(如 /etc/passwd
),或者如我们在下面所看到的那样,对 du 的输出进行排序。当使用 -m 选项时, sort
将文件合并,实际上并没有对它们进行排序。但是,如果您希望将它们排序,就应该在文件合并前对它们排序。
<P style="TEXT-INDENT: 2em">Sort 经常与 uniq
命令一起使用,从已排序的文件中删除完全相同的行。 uniq 命令在管道中经常跟在 sort
命令的后面,还可以使用 -c 选项来计算某一行所出现的次数,或者使用 -d 选项,只报告完全相同的行:
<P style="TEXT-INDENT: 2em">$ sort -m test.out
test2_sort.out | uniq -c
<P style="TEXT-INDENT: 2em">1 Another test.
<P style="TEXT-INDENT: 2em">1 Testing testing
<P style="TEXT-INDENT: 2em">2 This is a test.
<P style="TEXT-INDENT: 2em">在这里我们合并两个文件 test.out 和
test2_sort.out 。然后我们使用 -c 选项,将输出传送到 uniq
,这样最后的结果是按字母顺序排列的列表,完全相同的行被删除,并带有一个关于每行出现频率的报告。
<P style="TEXT-INDENT: 2em">打印机控制
<P style="TEXT-INDENT: 2em">在多数情况下,打印机命令的使用相对较为明确。通过在
lpr 命令后面指定文件名,将作业发送到打印机。如果没有提供文件名,则假定使用标准输入。使用 lpq
命令,您可以获得关于发送到打印机的作业的状态报告。当您指定作业号时, Lprm
将作业从行打印机后台打印队列中删除。
<P style="TEXT-INDENT: 2em">$ lpr grep2.out
<P style="TEXT-INDENT: 2em">$ lpq
<P style="TEXT-INDENT: 2em">Printer:lp@linux 'lpdfilter
drv=upp method=auto color=yes'
<P style="TEXT-INDENT: 2em">Queue:1 printable job
<P style="TEXT-INDENT: 2em">Server:pid 1929 active
<P style="TEXT-INDENT: 2em">Unspooler:pid 1930 active
<P style="TEXT-INDENT: 2em">Status:waiting for subserver
to exit at 21:24:14.637
<P style="TEXT-INDENT: 2em">Rank Owner/ID Class Job
Files Size Time
<P style="TEXT-INDENT: 2em">active bluher@linux+928 A
928 grep2.out 779 21:24:14
<P style="TEXT-INDENT: 2em">done bluher A 877 (STDIN)
117258 13:09:53
<P style="TEXT-INDENT: 2em">$ lprm 928
<P style="TEXT-INDENT: 2em">Printer lp@linux:
<P style="TEXT-INDENT: 2em">checking perms
'cfA928linux.local'
<P style="TEXT-INDENT: 2em">dequeued 'cfA928linux.local'
<P style="TEXT-INDENT: 2em">在这里,当我们将作业发送到打印机后,我们查询其状态。
Lpq 向我们显示编号为 877 的作业已经完成,而我们刚发送的作业编号为 928 。我们使用命令 lprm
928 将活动的作业从队列中删除。
<P style="TEXT-INDENT: 2em">磁盘信息
<P
style="TEXT-INDENT: 2em">无论您是维护自己的系统还是支持具有很多用户的企业,监视磁盘空间都是系统管理员更重要的职责之一。
du 、 df 和 fdisk 命令提供了可用磁盘空间的不同视图。
<P style="TEXT-INDENT: 2em">du
命令提供对每个目录的文件空间使用情况的评估。在默认情况下,测量的单位是块的数目,块的大小通常在安装您的系统时确定。
<P style="TEXT-INDENT: 2em">在以下的示例中,系统是使用 1024
字节的块安装的。如果没有指定目录,则 du 开始对当前目录进行计算。 -h 选项以易于读懂的形式提供大小的值:
<P style="TEXT-INDENT: 2em">$ du -h Documents
<P style="TEXT-INDENT: 2em">105k Documents/jj
<P style="TEXT-INDENT: 2em">573k Documents/John
<P style="TEXT-INDENT: 2em">682k Documents
<P style="TEXT-INDENT: 2em">可以使用 -a 选项更改输出,该选项指示 du
显示文件和目录的块数。选项 --block-size=SIZE 指示 du 以 SIZE
所指定字节大小的块的数目来显示输出。
<P style="TEXT-INDENT: 2em">$ du --block-size=512
Documents
<P style="TEXT-INDENT: 2em">209 Documents/jj
<P style="TEXT-INDENT: 2em">1146 Documents/John
<P style="TEXT-INDENT: 2em">1363 Documents
<P style="TEXT-INDENT: 2em">在默认情况下, du
还为每个子目录递归地打印信息。通过使用 max-depth=N 选项可以限制这种操作,其中 N
等于被报告的最大级数:
<P style="TEXT-INDENT: 2em">$ du --max-depth=2 .
<P style="TEXT-INDENT: 2em">$ du --max-depth=2 | sort -n
<P style="TEXT-INDENT: 2em">4 ./.xemacs
<P style="TEXT-INDENT: 2em">4 ./public_html
<P style="TEXT-INDENT: 2em">105 ./Documents/jj
<P style="TEXT-INDENT: 2em">573 ./Documents/Ian
<P style="TEXT-INDENT: 2em">682 ./Documents
<P style="TEXT-INDENT: 2em">2420 ./jdevhome/system
<P style="TEXT-INDENT: 2em">8350
./jdevhome/system9.0.3.1035
<P style="TEXT-INDENT: 2em">13483 ./jdevhome/mywork
<P style="TEXT-INDENT: 2em">24252 ./jdevhome
<P style="TEXT-INDENT: 2em">...
<P style="TEXT-INDENT: 2em">du 报告目录和子目录的空间使用情况,而 df
报告已安装文件系统的磁盘空间使用情况:
<P style="TEXT-INDENT: 2em">$ df
<P style="TEXT-INDENT: 2em">Filesystem 1k-blocks Used
Available Use% Mounted on
<P style="TEXT-INDENT: 2em">/dev/hda6 4195632 1983656
2211976 48% /
<P style="TEXT-INDENT: 2em">/dev/hda5 14607 3778 10075
28% /boot
<P style="TEXT-INDENT: 2em">/dev/hda9 937372 494028
443344 53% /home
<P style="TEXT-INDENT: 2em">/dev/hda8 6297248 3876880
2420368 62% /opt
<P style="TEXT-INDENT: 2em">shmfs 256220 0 256220 0%
/dev/shm
<P style="TEXT-INDENT: 2em">在这里, df 报告了五个文件系统的状态。与 du
类似, df 利用 -h 选项提供人类可读的输出:
<P style="TEXT-INDENT: 2em">$ df -h
<P style="TEXT-INDENT: 2em">Filesystem Size Used Avail
Use% Mounted on
<P style="TEXT-INDENT: 2em">/dev/hda6 4.0G 1.9G 2.1G 48%
/
<P style="TEXT-INDENT: 2em">/dev/hda5 14M 3.7M 9.8M 28%
/boot
<P style="TEXT-INDENT: 2em">/dev/hda9 915M 476M 440M 52%
/home
<P style="TEXT-INDENT: 2em">/dev/hda8 6.0G 3.7G 2.3G 62%
/opt
<P style="TEXT-INDENT: 2em">shmfs 250M 0 250M 0%
/dev/shm
<P style="TEXT-INDENT: 2em">df 命令还允许您利用 -block-size=SIZE
选项来指定块的大小。
<P style="TEXT-INDENT: 2em">fdisk 命令是 Linux 的分区表操作命令。与
du 和 df 不同,没有 root 用户权限时不能运行该命令。如果指定了 -l
选项,则可以将它仅用于报告的目的。它提供了您的整个分区表的完整视图,而不仅仅是您使用 df 所看到的扩展
Linux 分区:
<P style="TEXT-INDENT: 2em"># fdisk -l
<P style="TEXT-INDENT: 2em">Disk /dev/hda:240 heads, 63
sectors, 1940 cylinders
<P style="TEXT-INDENT: 2em">Units = cylinders of 15120 *
512 bytes
<P style="TEXT-INDENT: 2em">Device Boot Start End Blocks
Id System
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -