tar 用于对文件打包压缩或解压。
示例:
打包并压缩文件:tar -czvf 压缩包名.tar.gz 文件名
解压并展开压缩包:tar -zxvf 压缩包名.tar.gz
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用gzip压缩压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
grep 用于对文本进行搜索。
-b 将可执行文件(binary)当做文本文件(text)来搜索
-c 仅显示找到的次数
-i 忽略大小写
-n 显示行号
-v 反向选择,仅列出没有关键词的行
示例:
找出系统中不允许登录的用户:grep /sbin/nologin /etc/passwd。
找出文件/user/123.xml中所包含的entry的行,并输出到/root/lines中:grep entry /usr/123.xml >> /root/lines。
find 用于查找文件
-name 匹配名称
-perm 匹配权限
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-newer f1 !f2 匹配比文件f1新却比f2旧的文件
--type b/d/c/p/l/f 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件)
--size 匹配文件的大小(+50k查找超过50k的文件,而-50k则表示查找小于50k的文件)
-prune 忽略某个目录
--exec {}; 后面可接对搜索到的结果进一步处理的命令。
示例:
①搜索/etc/中所有的host开头的文件:find /etc -name "host*" -print。
②找出用户test的所有文件并复制到/root/findresults目录:find / -user test -exec cp -arf {} /root/findresults/ ;。
管道命令符
"|",作用是将前一个命令的标准输出当作后一个命令的标准输入,格式:命令A|命令B。
示例:
统计所有不允许登录的用户个数:grep /sbin/nologin /etc/passwd | wc -l。
以翻页形式查看/etc目录中的文件:ls -l /etc/ | more。
向test用户发送一封邮件:echo "Content" | mail -s "Subject" test。
使用非交互式设置用户密码,将test用户密码设置为123321:echo "123321" | passwd -stdin test。
输入输出重定向
标准输入(STDIN,文件描述符为0),默认从键盘输入,为0时表示是从其他文件或命令的输出。
标准输出(STDOUT,文件描述符为1),默认输出到屏幕,为1时表示是文件。
错误输出(STDERR,文件描述符为2):默认输出到屏幕,为2时表示是文件。
输出重定向:
命令 > 文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2>文件 将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原有文件的数据后面)
命令 2>> 文件 将错误标准输出重定向到一个文件中(追加到原有文件的数据后面)
命令 >> 文件 2>$1 将标准输出与错误输出共同写入到一个文件中(追加到原有文件的数据后面)
输入重定向:
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇到分界符才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2。
示例:
①将man命令的帮助文档写入到/root/man.txt中:man bash > /root/man.txt
②在123.txt文件中追加一行字:echo 'hello world' >> 123.txt
③把readme.txt文件作为输入重定向给wc -l 命令来计算行数:wc -l < readme.txt。
相当于 cat readme.txt | wc -l。
命令行通配符
* 匹配零个或多个字符
? 匹配任意单个字符
[0-9] 匹配范围内的数字
[abc] 匹配任意一个字符
示例:
查看以sda开头的所有设备文件:ls /dev/sda*
查看sda后面有一个字符的设备文件:ls /dev/sda?
查看sda后面包含0-9数字的设备文件:ls /dev/sda[0-9]
查看sda后面是1或者3或者5的设备文件:ls /dev/sda[135]
特殊字符扩展:
(反斜杠) 转义后面单个字符
''(单引号) 转义所有的字符
""(双引号) 变量依然生效
``(反引号) 执行命令语句
示例:
输出"价格是$5",因为美元符号与代表变量取值的$符号冲突了,需要转义。
[root@linux ~]# PRICE=5
[root@linux ~]# echo "Price is $$PRICE"
Price is $5
使用单引号,变量将不再取值。
echo 'Price is $$PRICE'
结果:Price is $$PRICE。
反引号的使用:echo `uname -a`。查看本机内核版本。
alias 用于设置命令的别名,格式:alias 别名=命令
unalias 用于取消命令的别名,格式:unalias 别名
echo $PATH 查看$PATH变量的方法。
type 命令名字 查看命令时内部命令还是外部命令
PATH=$PATH:/root/bin 为变量$PATH增加新的值
环境变量:可以使用env命令查看环境变量。
局部变量:某个用户设置的变量正常为局部变量,只有自己可以使用。
全局变量:export命令用于将局部变量提升为全局变量。格式:export 变量名[=变量值]。
vim编辑器三种模式:命令模式、末行模式、编辑模式。
命令模式:控制光标移动,可对文本进行删除、复制、粘贴等工作。
编辑模式:正常的文本录入。
末行模式:保存、退出、设置编辑环境。
dd 删除(剪切)光标所在的整行
5dd 删除(剪切)光标出开始的5行
yy 复制光标所在的整行
5yy 复制从光标出开始的5行
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后
/字符串 在文本中从上至下搜索该字符串
?字符串 在文本中从下至上搜索该字符串
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步操作
末行模式的常用命令:
:set nu 显示行号
:setnonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
o、i、a都可以进入输入模式。
配置主机名称
红帽RHEL7系统的主机名称保存在/etc/hostname文件中,修改主机名为"studyRHEL7"。
(1)vim /etc/hostname
(2)进入编辑模式,将旧的名字修改为新名字。
(3)保存退出,使用命令hostname查看是否修改成功。
注意普通用户需要用sudo执行。
配置网卡信息
RHEL6系统的网卡配置文件的前缀为"eth",第一块为"eth0",第二块为"eth1",以此类推。
RHEL7系统的网卡配置文件的前缀为"ifcfg-eno",例如"ifcfg-eno123"。
网卡配置文件存放在/etc/sysconfig/network-scripts目录中。
关键词术语:
网卡类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static 或者dhcp
网卡名字:NAME=eno123
是否启动:ONBOOT=yes
IP地址:IPADDR=192.168.1.10
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.1.1
DNS地址:DNS1=192.168.1.1
DNS2=192.168.1.2
重新启动网卡命令:systemctl restart network。
使用ping命令证明网卡配置正确,并是否生效了。