linux基础命令(续)

1.查看系统配置、命令输出

问题

1)查看CPU信息、内存信息
2)分页浏览CPU信息、内存信息
3)查看网卡配置文件内容
4)分页查看/etc/passwd
5)分页查看/root/install.log

方案

查看文件内容的命令主要是cat、more、less,具体区别是,cat较适合查看小文件,more与less较适合查看大文件。

步骤

实现此案例需要按照如下步骤进行。
步骤一:查看CPU信息、内存信息
命令操作如下所示:

[root@localhost ~]# cat /proc/cpuinfo        		//查看CPU信息
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
stepping	: 9
cpu MHz		: 2594.108
……
[root@localhost ~]# cat /proc/meminfo         		//查看内存信息
MemTotal:        2046588 kB
MemFree:         1829944 kB
Buffers:           18552 kB
Cached:            74876 kB
SwapCached:            0 kB
Active:            45436 kB
Inactive:          65904 kB
Active(anon):      18140 kB
……

步骤二:分页浏览CPU信息、内存信息
命令操作如下所示:

[root@localhost ~]# less /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
stepping	: 9
cpu MHz		: 2594.108
……
:               								//按q退出
[root@localhost ~]# less /proc/meminfo
MemTotal:        2046588 kB
MemFree:         1829944 kB
Buffers:           18552 kB
Cached:            74876 kB
SwapCached:            0 kB
Active:            45436 kB
Inactive:          65904 kB
Active(anon):      18140 kB
……
:               								//按q退出

步骤三:查看网卡配置文件内容
命令操作如下所示:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:17:BF:F7
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.1.1
NETMASK=255.255.255.0
[root@localhost ~]#

步骤四:分页查看/etc/passwd
命令操作如下所示:

[root@localhost ~]# less /etc/passwd
…… 

步骤五:分页查看/root/install.log
命令操作如下所示:

 [root@localhost ~]# less /root/install.log

2.截取文件的首/尾部

问题

1)查看/etc/passwd文件开头2行、末尾2行的内容
2)将当前主机的所有IP地址信息存入文件ipadd.txt,查看其中前2行内容
3)查看CPU记录信息的前10行内容、内存记录信息的前4行内容

方案

head命令查看一个文本文件前几行命令,可以利用“-n”选项指定查看头几行。如果没有指定行数,默认显示的是头10行。
tail命令查看一个文本文件尾几行命令,可以利用“-n”选项指定查看尾几行。如果没有指定行数,默认显示的是尾10行。
在Linux系统种,屏幕的显示输出,可以利用重定向“>”写入到一个文件中,文件不用事先创建。此外还有追加重定向“>>”,而“>”为覆盖重定向。

步骤

实现此案例需要按照如下步骤进行。
步骤一:查看/etc/passwd文件开头2行、末尾2行的内容
命令操作如下所示:

[root@localhost ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# tail -n 2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
[root@localhost ~]#

步骤二:将当前主机的所有IP地址信息存入文件ipadd.txt,查看其中前第2行内容
命令操作如下所示:

[root@localhost ~]# ifconfig > ipadd.txt
[root@localhost ~]# head -n 2 ipadd.txt 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:17:BF:F7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
[root@localhost ~]#

步骤三:查看CPU记录信息的前10行内容、内存记录信息的前4行内容
命令操作如下所示:

[root@localhost ~]# head -n 10 /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
stepping	: 9
cpu MHz		: 2594.108
cache size	: 3072 KB
fpu		: yes
fpu_exception	: yes
[root@localhost ~]# head -n 4 /proc/meminfo 
MemTotal:        2046588 kB
MemFree:         1829696 kB
Buffers:           18704 kB
Cached:            75000 kB
[root@localhost ~]#

3.按条件提取系统配置

问题

1)将当前主机的所有IP地址信息存入文件ipadd.txt
2)去掉ipadd.txt文件里的空行,显示出来
3)复制/etc/inittab文件到当前目录下,改名为init.txt
4)统计init.txt文件中的有效配置(排除#开头的行、空行)行数

方案

筛选文本文件内容利用的命令为grep,此命令是以行为单位。
常用的选项为:
-i:忽略大小写
-v:反转查找,输出不符合查找条件的行
-c:输出匹配结果的数量
常用的查找条件:
^…:表示以 … 开头
KaTeX parse error: Expected group after '^' at position 13: :表示以 ... 结尾 ^̲:表示空行
在大多数Linux配置文件中,以 # 开头的部分表示注释文字。
此外本题还会用到“|”操作,它的意义是将前一个命令的结果,交给后面命令去处理,当做后面命令的参数。

步骤

实现此案例需要按照如下步骤进行。
步骤一:将当前主机的所有IP地址信息存入文件ipadd.txt
命令操作如下所示:

[root@localhost ~]# ifconfig > ipadd.txt

步骤二:去掉ipadd.txt文件里的空行,显示出来
命令操作如下所示:

[root@localhost ~]# grep -v ^$ ipadd.txt 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:17:BF:F7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe17:bff7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1684 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:268452 (262.1 KiB)  TX bytes:187809 (183.4 KiB)
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:17:BF:F7  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:676 (676.0 b)  TX bytes:676 (676.0 b)
[root@localhost ~]#

步骤三:复制/etc/inittab文件到当前目录下,改名为init.txt
命令操作如下所示:

[root@localhost ~]# cp /etc/inittab init.txt
[root@localhost ~]# ls init.txt 
init.txt
[root@localhost ~]#

步骤四:统计init.txt文件中的有效配置(排除#开头的行、空行)行数
命令操作如下所示:

[root@localhost ~]# grep -v ^# init.txt | grep -v ^$ | wc -l
1
[root@localhost ~]#

4.制作/释放.zip包文件

问题

1)制作.zip包
创建一个压缩包lnxtest.zip,/root目录下以install开头的文件
压缩/boot与/etc目录,压缩名:bebak.zip
2)解压.zip包
将lnxtest.zip其解压到/tmp下
将bebak.zip其解压到/tmp下

方案

zip压缩工具优点是可跨平台。
在使用时,它的命令格式需注意:
zip 压缩后文件名 源文件绝对路径
压缩式常用选项为“-r”,压缩目录时需加上,代表递归压缩。
解压时命令为unzip,常用选项为“-d”可以指定解压位置。

步骤

实现此案例需要按照如下步骤进行。
步骤一:制作.zip包
创建一个压缩包lnxtest.zip,/root目录下以install开头的文件,命令操作如下所示:

[root@localhost ~]# cd /opt/
[root@localhost opt]# rm -rf *
[root@localhost opt]# zip lnxtest.zip /root/install*
  adding: root/install.log (deflated 75%)
  adding: root/install.log.syslog (deflated 86%)
[root@localhost opt]# ls
lnxtest.zip
[root@localhost opt]#

压缩/boot与/etc目录,压缩名:bebak.zip,命令操作如下所示:

[root@localhost opt]# zip -r bebak.zip /boot/ /etc/
[root@localhost opt]# ls
bebak.zip  lnxtest.zip
[root@localhost opt]#

步骤二:解压.zip包
将lnxtest.zip其解压到/tmp下,命令操作如下所示:

[root@localhost opt]# unzip /opt/lnxtest.zip -d /tmp/
Archive:  /opt/lnxtest.zip
  inflating: /tmp/root/install.log   
  inflating: /tmp/root/install.log.syslog  
[root@localhost opt]#

将bebak.zip其解压到/tmp下,命令操作如下所示:

[root@localhost opt]# unzip /opt/bebak.zip -d /tmp/

5.制作/释放.tar.gz和.tar.bz2包文件

问题

1)备份/boot、/etc这两个文件夹,保存为bootetc.tar.gz文件
2)查看bootetc.tar.gz文件内包含哪些内容
3)将bootetc.tar.gz释放到文件夹/root/bootetc/下
4)备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
5)查看usrsbin.tar.bz2文件内包含哪些内容
6)将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下

方案

tar命令式Linux中经常用的归档工具,可以利用选项“-z”或“-j”,可以对归档后文件进行压缩。
tar命令的常用选项
-c:创建 .tar 格式的归档文件
-x:解开.tar格式的归档文件
-C:解包时指定释放的目标文件夹
-f:表示使用归档文件
-z:调用 gzip 执行压缩或解压缩
-j:调用 bzip2 执行压缩或解压缩
-v:输出详细信息
-t:列表查看包内的文件
tar命令的格式与zip命令格式有点相似:
tar -zcf 压缩后文件的名字 源文件绝对路径

步骤

实现此案例需要按照如下步骤进行。
步骤一:备份/boot、/etc这两个文件夹,保存为bootetc.tar.gz文件
命令操作如下所示:

[root@localhost /]# cd /opt/
[root@localhost opt]# rm -rf *
[root@localhost opt]# tar -zcf /opt/bootetc.tar.gz /boot/ /etc/
tar: 从成员名中删除开头的“/”
[root@localhost opt]# ls
bootetc.tar.gz
[root@localhost opt]#

步骤二:查看bootetc.tar.gz文件内包含哪些内容
命令操作如下所示:

[root@localhost opt]# tar -ztf /opt/bootetc.tar.gz 
boot/
boot/initramfs-2.6.32-431.el6.x86_64.img
boot/symvers-2.6.32-431.el6.x86_64.gz
boot/initrd-2.6.32-431.el6.x86_64kdump.img
boot/.vmlinuz-2.6.32-431.el6.x86_64.hmac
boot/grub/

……

步骤三:将bootetc.tar.gz释放到文件夹/root/bootetc/下
命令操作如下所示:

[root@localhost opt]# mkdir /root/bootetc
[root@localhost opt]# tar -zxf /opt/bootetc.tar.gz -C /root/bootetc/
[root@localhost opt]#

步骤四:备份/usr/sbin目录,保存为usrsbin.tar.bz2文件
命令操作如下所示:

[root@localhost opt]# tar -jcf /opt/usrsbin.tar.bz2 /usr/sbin/
tar: 从成员名中删除开头的“/”
tar: 从硬连接目标中删除开头的“/”
[root@localhost opt]# ls /opt/
bootetc.tar.gz  usrsbin.tar.bz2
[root@localhost opt]#

步骤五:查看usrsbin.tar.bz2文件内包含哪些内容
命令操作如下所示:

[root@localhost opt]# tar -jtf /opt/usrsbin.tar.bz2  
usr/sbin/
usr/sbin/ping6
usr/sbin/sasldblistusers2
usr/sbin/lgroupmod
usr/sbin/cache_check
usr/sbin/addgnupghome
……

步骤六:将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下
命令操作如下所示:

[root@localhost opt]# mkdir /root/usrsbin
[root@localhost opt]# tar -jxf /opt/usrsbin.tar.bz2 -C /root/usrsbin/
[root@localhost opt]#

6.查找程序文件

问题

1)检查命令mkdir的程序文件在哪里
2)检查命令ls的程序文件在哪里
3)检查命令ifconfig的程序文件在哪里
4)检查命令hostname的程序文件在哪里
5)尝试查找cd的程序文件在哪里

方案

利用which命令可以查找命令的程序文件在哪里,一般适用于外部命令。
利用echo命令可以输出PATH变量的值,但需注意要在变量前加上“$”符号。

步骤

实现此案例需要按照如下步骤进行。
步骤一:检查命令mkdir的程序文件在哪里
命令操作如下所示:

[root@localhost /]# which mkdir 
/bin/mkdir
[root@localhost /]#

步骤二:检查命令ls的程序文件在哪里
命令操作如下所示:

[root@localhost /]# which ls
alias ls='ls --color=auto'
	/bin/ls
[root@localhost /]#

步骤三:检查命令ifconfig的程序文件在哪里
命令操作如下所示:

[root@localhost /]# which ifconfig
/sbin/ifconfig
[root@localhost /]#

步骤四:检查命令hostname的程序文件在哪里
命令操作如下所示:

[root@localhost /]# which hostname 
/bin/hostname
[root@localhost /]#

步骤五:尝试查找cd的程序文件在哪里
命令操作如下所示:

[root@localhost /]# which cd               //因为cd为内部命令没有具体的路径
/usr/bin/which: no cd in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost /]#

7.find精确查找

问题

1)新建一个目录study,在study目录下建子目录subdir
2)在study目录下创建测试文件ipadd.txt,存入eth0网卡的IP地址信息
3)为ipadd.txt创建快捷方式ip.txt,放在study/subdir/下
4)分别找出study目录下的快捷方式、普通文件、文件夹
5)找出/etc/目录下名称以res开头的conf结尾的配置文件
6)复制/boot/目录下的内核程序(vmlinuz开头的文件)到study目录下
7)找出study目录下大小超过1KB的文件
8)找出/sbin目录下大小超过300KB的文件

方案

格式:find [路径] [条件]
默认不指定路径,就是当前路径
常用选项:
1) -type 类型
f 文件
d 目录
l 链接
b 块设备文件
c 字符设备文件
2) -name 名字
3) -size 大小(单位c表示byte,k表示1024bytes)

  • 大于
  • 小于
    4) -mtime 文件内容修改
    n n为数字,意义在n天之前的“一天之内”被更改过的文件
    +n 列出在n天之前(不含n天本身)被更改过的文件名
    -n 列出在n天之内(含n天本身)被更改过的文件名
    5) -a 多个条件同时满足
    6) -o 多个条件满足一条即可

步骤

实现此案例需要按照如下步骤进行。
步骤一:新建一个目录study,在study目录下建子目录subdir
命令操作如下所示:

[root@localhost /]# mkdir -p /study/subdir
[root@localhost ~]# ls -R /study/
/study/:
subdir

/study/subdir:
[root@localhost ~]#

步骤二:在study目录下创建测试文件ipadd.txt,存入eth0网卡的IP地址信息
命令操作如下所示:

[root@localhost /]# ifconfig > /study/ipadd.txt
[root@localhost /]# ls /study/
ipadd.txt  subdir
[root@localhost /]#

步骤三:为ipadd.txt创建快捷方式ip.txt,放在study/subdir/下
命令操作如下所示:

[root@localhost /]# ln -s /study/ipadd.txt /study/subdir/ip.txt
[root@localhost /]# ls /study/subdir/`在这里插入代码片`
ip.txt
[root@localhost /]# ls -l /study/subdir/
总用量 0
lrwxrwxrwx. 1 root root 16 1月   8 21:07 ip.txt -> /study/ipadd.txt
[root@localhost /]#

步骤四:分别找出study目录下的快捷方式、普通文件、文件夹
在study目录下查找快捷方式,命令操作如下所示:

[root@localhost /]# find /study/ -type l
/study/subdir/ip.txt
[root@localhost /]#

在study目录下查找普通文件,命令操作如下所示:

[root@localhost /]# find /study/ -type f
/study/ipadd.txt
[root@localhost /]#

在study目录下查找文件夹,命令操作如下所示:

[root@localhost /]# find /study/ -type d
/study/
/study/subdir
[root@localhost /]#

步骤五:找出/etc/目录下名称以res开头的conf结尾的配置文件
命令操作如下所示:

[root@localhost /]# find /etc/ -name "res*conf"
/etc/selinux/restorecond.conf
/etc/selinux/restorecond_user.conf
/etc/resolv.conf
[root@localhost /]#

步骤六:复制/boot/目录下的内核程序(vmlinuz开头的文件)到study目录下
命令操作如下所示:

[root@localhost /]# ls /study/
ipadd.txt  subdir
[root@localhost /]# cp /boot/vmlinuz* /study/
[root@localhost /]# ls /study/
ipadd.txt  subdir  vmlinuz-2.6.32-431.el6.x86_64
[root@localhost /]#

步骤七:找出study目录下大小超过1KB的文件
命令操作如下所示:

[root@localhost /]# find /study/ -size +1k
/study/
/study/vmlinuz-2.6.32-431.el6.x86_64
/study/subdir
/study/ipadd.txt
[root@localhost /]#

步骤七:找出/sbin目录下大小超过300KB的文件
命令操作如下所示:

[root@localhost /]# find /sbin/ -size +300k
/sbin/insmod.static
/sbin/ldconfig
/sbin/mdadm
/sbin/lvm
/sbin/dhclient
/sbin/busybox
/sbin/grub
/sbin/mdmon
/sbin/rsyslogd
/sbin/sln
[root@localhost /]#

猜你喜欢

转载自blog.csdn.net/qq_43237999/article/details/89755310
今日推荐