第五章 Linux常用命令
Q1:常用的文本内容显示命令有哪些?区别是什么?
- 文本内容显示的命令有cat,more,less, head,tail
- cat:显示文本文件, 也可以把几个文件 内容附加到另一个文件中。如果没有指定 文件,或者文件为“-”,那么就从标准输入 读取。
- cat [选项] [文件]
- 【例5.1】 显示/etc/inittab文件的内容。 [root@rhel ~]# cat /etc/inittab
- 【例5.2】 把textfile1文件的内容加上行号后输 入到textfile2文件中。 [root@rhel ~]# cat -n textfile1 > textfile2
- 【例5.3】 使用cat命令创建mm.txt。 [root@rhel ~]#cat >mm.txt<Hello >Linux >EOF //在此输入字符EOF,会自动回到shell提示符界面
- more:分页显示文本文件, 其最基本的按键就是按空 格键就显示下一页内容,按[b]键返回显示 上一页内容。
- more [选项] [文件名]
- 【例5.4】 分页显示/etc/services文件的内容。 [root@rhel ~]# more /etc/services
- 【例5.5】 逐页显示testfile文件内容,如有连续两行以上 空白行则以一行空白行显示。 [root@rhel ~]# more -s testfile
- 【例5.6】 从第20行开始显示testfile文件的内容。 [root@rhel ~]# more +20 testfile
- 【例5.7】 一次两行显示/etc/passwd文件内容。 [root@rhel ~]# more -2 /etc/passwd
- less:回卷显示文本文件
- less [选项] [文件名]
- 【例5.8】 回卷显示/etc/services文件的内容。 [root@rhel ~]# less /etc/services
- head:显示指定文件的前几行, 默认缺省设置为10 行
- head[选项][文件]
- 【例5.9】 查看/etc/passwd文件的前100个字节数据内容。 [root@rhel ~]# head –c 100 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nol
- 【例5.10】 查看/etc/passwd文件的前3行数据内容。 [root@rhel ~]# head -3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
- tail:显示指定文件的末尾几行,默认缺省设置为10 行
- tail [选项] [文件名]
- 【例5.11】查看/etc/passwd文件末尾3行数据内容。 [root@rhel ~]# tail -3 /etc/passwd news:x:9:13:News server user:/etc/news:/bin/bash distcache:x:94:94:Distcache:/:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
- 【例5.12】 查看文件/etc/passwd末尾100字节的数据内容。 [root@rhel ~]# tail -c 100 /etc/passwd er:/etc/news:/bin/bash distcache:x:94:94:Distcache:/:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin
Q2:常用的文本处理命令有哪些?区别是什么?
- 文本处理的命令有 sort,uniq,cut, comm,diff
- sort:对文本中的内容进行排序,并将结果输出到标准输出中
- sort [选项][文件]
- 【例5.13】 将文件textfile1数据排序,并显示在屏幕上。 [root@rhel ~]# sort textfile1
- 【例5.14】 读取textfile1文件内容,以倒序排序该文件并显 示在屏幕上。 [root@rhel ~]# sort -r textfile1
- uniq:将重复行从文件中删除
- uniq [选项] [文件]
- 【例5.15】 查看文件file3中重复的数据内容。 [root@rhel ~]# cat file3 aaa aaa bbb [root@rhel ~]# uniq -d file3 aaa //file3文件中重复行数据的内容为aaa
- 【例5.16】 查看文件file3中不重复的数据内容。 [root@rhel ~]# uniq -u file3 bbb //file3文件中不重复行数据的内容为bbb
- cut: 从文件每行中显示出选定的字节、字符或字段
- cut [选项] [ 文件 ]
- 【例5.17】 显示文件/etc/passwd中的用户登录名和用户名全 称字段,这是第1个和第5个字段,由冒号隔开。 [root@rhel ~]# cut -f 1,5 -d: /etc/passwd root:root bin:bin daemon:daemon adm:adm lp:lp ……
- comm: 逐行比较两个已排过序的文件
- comm [选项] [文件1] [文件2]
- diff:逐行比较两个文本文件,列出其不同之处。可以事先不排序
- diff [选项] [文件1] [文件2]
- 【例5.20】 比较file1和file2文件,列出其不同之处。 [root@rhel ~]# cat file1 a aa [root@rhel ~]# cat file2 a bb //查看文件file1和file2的文件内容 [root@rhel ~]# diff file1 file2 2c2 < aa --- > bb //可以看到file1和file2文件的不同处是第二行的aa和bb
Q3:使用什么命令能显示当前计算机的内核版本?
- uname -r
Q4:使用什么命令能清除计算机屏幕信息?
- clear
Q5:使用什么命令可以以倒序方式排序文件内容?
- sort -r [文件名]
补充:
文件和命令查找
- 命令有grep、find, locate
- grep: 查找文件中符合条件的字符串
- grep [选项] [查找模式] [文件名]
- 【例5.21】 在文件kkk中搜索匹配字符“test file”。 [root@rhel ~]# grep 'test file' kkk
- 【例5.22】 显示所有以d开头的文件中包含“test”的行数据内容。 [root@rhel ~]# grep 'test' d*
- 【例5.23】 在/root/aa文件中找出以b开头的行内容。 [root@rhel ~]#grep ^b /root/aa
- 【例5.24】在/root/aa文件中找出不是以b开头的行内容。 [root@rhel ~]# grep -v ^b /root/aa
- 【例5.25】在/root/kkk文件中找出以le结尾的行内容。 [root@rhel ~]# grep le$ /root/kkk
- 【例5.26】 查找sshd进程信息。 [root@rhel ~]# ps –ef|grep sshd
- find: 列出文件系统内符合条件的文件
- find [路径] [选项]
- 【例5.27】 查找/boot目录下的启动菜单配置文件grub.cfg。 [root@rhel ~]# find /boot -name grub.cfg
- 【例5.28】 查找/目录下所有以“.conf”为扩展名的文件。 [root@rhel ~]# find / -name '*.conf‘
- 【例5.29】 列出当前目录及其子目录下所有最近20天内更改 过的文件。 [root@rhel ~]# find . -ctime -20
- locate: 在数据库中查找文件
- locate [选项][范本样式]
- 【例5.34】 查找httpd.conf文件。 [root@rhel ~]# locate httpd.conf
- 【例5.35】 显示找到几个httpd.conf文件 。 [root@rhel ~]# locate -c httpd.conf
系统信息显示
- 命令有uname、hostname、free、 du
- uname: 显示计算机及操作系统相关信息
- uname [选项]
- 【例5.36】 显示操作系统的内核发行号。 [root@rhel ~]# uname -r 3.10.0-327.el7.x86_64
- 【例5.37】 显示计算机硬件架构名称。 [root@rhel ~]# uname -m X86_64
- 【例5.38】 显示操作系统的全部信息。 [root@rhel ~]# uname -a Linux rhel 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
- hostname: 显示或修改计算机主机名
- hostname [选项] [主机名|-F <文件>] 设置主机名
- hostname [选项] 显示格式化主机名
- free:查看内存信息
- free [选项]
- 【例5.41】 查看系统的物理内存和交换分区使用情况。 [root@rhel ~]# free
- 【例5.42】 以MB为单位查看系统的物理内存和交换分区使 用情况。 [root@rhel ~]# free -m
- 【例5.43】 显示系统的物理内存加上交换分区总的容量。 [root@rhel ~]# free -t
- du: 显示目录或文件的磁盘占用量
- du [选项] [文件|目录]
- 【例5.44】 显示文件/etc/inittab的磁盘占用量。 [root@rhel ~]# du /etc/inittab
- 【例5.45】 显示/root目录磁盘占用量。 [root@rhel ~]# du –s /root
- 【例5.46】 以MB为单位显示/root目录磁盘占用量。 [root@rhel ~]# du –sh /root
日期与时间
- 命令有cal、date、 hwclock
- cal:显示日历信息
- cal [选项] [[[日] 月] 年]
- 【例5.47】 显示本月的月历。 [root@rhel ~]# cal
- 【例5.48】 显示公元2001年年历。 [root@rhel ~]# cal 2001
- 【例5.49】 显示公元2007年9月的月历。 [root@rhel ~]# cal 9 2007
- 【例5.50】 以星期一为每周的第一天的方式显示本月的日历。 [root@rhel ~]# cal -m
- 【例5.46】 以1月1日起的天数显示今年的年历。 [root@rhel ~]# cal -jy
- date: 显示和设置系统日期和时间
- date [选项] [显示时间格式](以+开头,后面 接格式)
- 【例5.52】 显示当前计算机上的日期和时间。 [root@rhel ~]# date
- 【例5.53】 设置计算机日期和时间为2028年2月2日19点14分。 [root@rhel ~]# date 0202191428
- 【例5.54】 按照指定的格式显示计算机日期和时间。 [root@rhel ~]# date +'%r%a%d%h%y'
- 【例5.55】 设置计算机时间为上午9点16分。 [root@rhel ~]# date -s 09:16:00
- 【例5.56】 设置计算机时间为2024年4月14日。 [root@rhel ~]# date -s 240414
- hwclock:查看和设置硬件时钟
- hwclock [选项]
- 【例5.57】 查看硬件时间。 [root@rhel ~]# hwclock
- 【例5.51】 以系统时间更新硬件时间。 [root@rhel ~]# hwclock -w
- 【例5.52】以硬件时间更新系统时间。 [root@rhel ~]# hwclock -s
信息交流
- 这些命令有echo、mesg、wall、 write
- echo:在显示器上显示文字
- echo [选项] [字符串]
- 【例5.60】 将一段信息写到标准输出。 [root@rhel ~]# echo Hello Linux Hello Linux
- 【例5.61】 将文本“Hello Linux”添加到新文件notes中。 [root@rhel ~]# echo Hello Linux > notes [root@rhel ~]# cat notes Hello Linux //查看文件notes,可以看到文件中的内容为hello Linux
- 【例5.62】 显示$HOME变量的值。 [root@rhel ~]# echo $HOME /root
- mesg:允许或拒绝写消息
- mesg [选项]
- 【例5.63】 显示当前的消息许可设置。 [root@rhel ~]# mesg is y //允许本地网络上的所有主机发送消息到自己的主机
- 【例5.64】 只允许root用户发送消息到自己的主机。 [root@rhel ~]# mesg n [root@rhel ~]# mesg is n
- wall: 对全部已登录用户发送信息
- wall [消息]
- 【例5.66】 向所有用户发出“下班以后请关闭计算机。” 的信息。 [root@rhel ~]# wall '下班以后请关闭计算机' [root@rhel ~]# Broadcast message from root@rhel (pts/1) (Sun Jun 3 05:38:14 2012): 下班以后请关闭计算机
- write:向用户发送消息
- write [用户] [终端名称]
- 【例5.67】 在tty2终端上向tty3终端上的root用户发送信息。 [root@rhel ~]# write root tty3 hello //在tty2终端上输入要发送的信息,输入完毕,希望退出发送状态 时,按组合键[Ctrl+c]即可 [root@rhel ~]# Message from root@rhel on tty2 at 05:39 ... hello EOF //在终端tty3上,用户root会接收到以上信息,要结束时,按 [Ctrl+c]组合键即可
其他命令
- clear:清除计算机屏幕信息
- uptime:显示系统已经运行的时间