1 tar 命令
tar命令用于对文件进行打包压缩或解压
Linux中最常见的文件格式有 tar tar.gz tar.bz2
tar 的参数及意义
—c 创建压缩文件
—x 解开压缩文件
—t 查看压缩包内有哪些文件
—v 显示压缩或解压过程
—j 用bzip 2 压缩或解压
—z 用GZip 压缩或解压
—f 目标文件名
—p 保留原始的文件权限或属性
—P 使用绝对路径来压缩文件
—C 解压到指定的目录
–f参数特别的重要,要放到参数的最后一位,代表要压缩或解压的软件包名称
eg 1 : 先用tar命令把 /etc 目录通过gzip格式打包压缩,并把文件命名为etc.tar.gz
[root@bogon ~]# tar -czvf etc.tar.gz /etc
tar: Removing leading `/' from member names <<=注意这个警告消息
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/resolv.conf
/etc/pki/
/etc/pki/rpm-gpg/
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-7
/etc/pki/ca-trust/
[root@bogon ~]# ^C
[root@bogon ~]# tar -cjvf etc.tar.bz2/etc
显示的消息会跟上面一样
[root@bogon ~]# ll /root/etc*
-rw-r--r--. 1 root root 0 Oct 3 09:22 /root/etc.tar.bz2
-rw-r--r--. 1 root root 9854098 Oct 3 09:09 /root/etc.tar.gz2
有上面的例子可以看出使用bzip 2 即 -j 这个参数来进行压缩能得到很好的压缩比,–p 这个参数为了保存原本文件的权限与属性,我们在 CP 命令时讲过权限与文件类型对复制的不同影响,同样,面对重要的数据,原本的文件权限需要完整的备份比较好
2 grep 命令
grep命令用于用于在文本中执行关键词搜索并显示匹配结果
格式为“grep [选项] [文件]”
参数及其意义:
—b 将可执行文件当作文本文件来处理
—c 仅显示找到的行号
—i 忽略大小写
—n 显示行号
—v 反向选择,仅列出没有关键词那行
在linux系统中,/etc/passwd 保存着所有的用户信息,而一旦用户的登录系统被设置成/sbin/nologin, 则不再允许登录系统,可以用grep命令来查找出当前系统中不允许登录系统的用户信息
[root@bogon ~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
[root@bogon ~]#
—A 后面加数字为after的意思,除了列出该行外,后续的n行页列出来
—B 后面加数字为before的意思,除了列出该行外,前面n行也列出来
–color=auto 可将正确的那个选项列出颜色
列出dmesg中有‘eth’那一行
[root@bogon ~]# dmesg | grep 'eth'
[ 2.478746] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:70:a3:b8
[ 2.478755] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
[root@bogon ~]#
列出last中没有‘root’那一行
wtmp begins Sat Sep 15 09:29:20 2018
[root@bogon ~]# last |grep -v 'root'
tom tty1 Tue Oct 2 13:00 - 13:01 (00:00)
reboot system boot 3.10.0-693.el7.x Tue Oct 2 13:00 - 12:05 (23:05)
tom tty1 Sun Sep 30 22:49 - crash (1+14:10)
reboot system boot 3.10.0-693.el7.x Sun Sep 30 22:49 - 12:05 (2+13:15)
tom tty1 Fri Sep 28 20:24 - 22:49 (2+02:24)
reboot system boot 3.10.0-693.el7.x Fri Sep 28 20:24 - 12:05 (4+15:40)
reboot system boot 3.10.0-693.el7.x Fri Sep 28 20:13 - 12:05 (4+15:51)
tom tty1 Wed Sep 26 18:23 - crash (2+01:50)
tom tty1 Sat Sep 15 09:30 - 09:51 (00:21)
reboot system boot 3.10.0-693.el7.x Sat Sep 15 09:29 - 12:05 (18+02:35)
设置自动显示颜色
要用sourc ~/.bash.rc 来立即生效
find 命令
find命令用于按照指定的条件来查找文件
在此系统中,搜索工作一般使用find来完成的,它可以使用不同的文件特性作为条件,(如文件名,大小,修改时间,权限等)。
参数 作用
-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)
-atime -n +n匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)
-ctime -n +n匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2匹配比文件 f1 新但比 f2 旧的文件
–type b/d/c/p/l/f匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,
而-50KB 为查找小于 50KB 的文件)
-prune 忽略某个目录
-exec ……{};后面可跟用于进一步处理搜索结果的命令(下文会有演示)
eg 1 搜索 /etc 目录下所有以host开头的文件
find /etc -name "host*" -print
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/active/modules/100/hostname
/etc/hostname
如果要在整个系统中搜索权限中包括 SUID 权限的所有文件,只需使用-4000 即可:
[root@localhost ~]# find / -perm -400
在整个文件系统中找出所有归属于 nebulalinux 用户的文件并复制到/root/findresults 目录。
[root@localhost ~]# find / -user nebulalinux -exec cp -a {} /root/findresults/\;
基本题
1.在 CentOS 7 系统及众多的 Linux 系统中,最常使用的 Shell 终
端是什么?
答:Bash(Bourne-Again SHell)解释器。
2.执行 Linux 系统命令时,添加参数的目的是什么?
答:为了让 Linux 系统命令能够更贴合用户的实际需求进行工作。
3.Linux 系统命令、命令参数及命令对象之间,普遍应该使用什么
来间隔?
答:应该使用一个或多个空格进行间隔。
4.请写出用 echo 命令把 SHELL 变量值输出到屏幕终端的命令。
答:echo $SHELL。
5.简述 Linux 系统中 5 种进程的名称及含义。
答:在 Linux 系统中,有下面 5 种进程名称。
? R(运行):进程正在运行或在运行队列中等待。
? S(中断):进程处于休眠中,当某个条件形成后或者接收到信
号时,则脱离该状态。
? D(不可中断):进程不响应系统异步信号,即便用 kill 命令也
不能将其中断。
? Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程
调用 wait4()系统函数后将进程释放。
? T(停止):进程收到停止信号后停止运行。
6.请尝试使用 Linux 系统命令关闭 PID 为 5529 的服务进程。
答:执行 kill 5529 命令即可;若知道服务的名称,则可以使用
killall 命令进行关闭。