一.管道 |
实战案例一
[root@localhost ~]# rpm -qa | grep 'httpd' #查询已安装的软件包,过滤包含httpd的包
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-90.el7.centos.x86_64
rpm -qa:这是使用rpm工具查询已安装的软件包列表的命令
"-q"选项表示查询
"-a"表示所有 (包括已安装和未安装的软件包)
|:这是一个管道符号,它将前一个命令的输出作为后一个命令的输入
grep 'httpd':这是使用grep工具过滤处包含特定的字符串("httpd")的输出,'httpd'是要搜索的字符串
yum安装的软件包都叫rpm包
[root@localhost ~]# ps aux | grep 'sshd' #查询ssh的进程
实战案例二
[root@localhost ~]# sort -t":" -k3 -n /etc/passwd #以:分隔,将第三列数字升序
[root@localhost ~]# sort -t":" -k3 -n /etc/passwd -r #以:分隔,将第三列按数字降序
[root@localhost ~]# sort -t":" -k3 -n /etc/passwd | head #以:分隔,将第三列数字升序查看前十行
[root@localhost ~]# sort -t":" -k3 -n /etc/passwd | tail #以:分隔,将第三列数字升序查看后十
行
参数详情:
sort #排序,默认升序
-t #指定分隔符
-k #指定列
-n #按数值
-r #降序
head #默认查看前十行
tail #默认查看后十行
实战案例三
[root@localhost ~]# netstat -lntp | awk 'NR==3 {print $4}' | awk -F':' '{print $2}'
22
netstat -lntp #这是使用netstat命令来列出当前打开的TCP连接
-l #表示只显示监听状态的连接
-n #表示以数字形式显示地址和端口号
-t #表示只显示Tcp连接
-p #表示显示进程信息
awk 'NR==3 {print $4}' #表示使用awk命令来筛选和处理
netstat的输出。在这个例子中,NR==3是一个条件,表示只处理第三行。{print $4}是一个动作,表示打印第四个字段。在这个上下文中,第四个字段是端口号。
awk -F':' '{print $2}':这是另一个awk命令,它进一步处理刚才输出的端口号。-F':'指定冒号为分隔符,然后打印第二个字段,即端口号本身。
如果服务器没有netstat命令,请先执行以下命令安装
[root@localhost ~]# yum -y install net-tools
-y #表示同意安装
常用的小命令
[root@localhost ~]# du -h /etc/ #查看目录及目录中文件大小
[root@localhost ~]# du -sh /etc/ #查看目录的大小
[root@localhost ~]# ls /etc/ | wc -l #查看目录中有多少个文件(ls查看etc下的文件,然后交给|wc -l 统计出来)
wc -l #统计
二.文件查找
语法:
# find 路径 条件 跟条件相关的操作符 [-exec 动作]
路径:
1.默认不写路径时查找的是当前路径.
2.加路径。
条件:
1.指定的名称 -name
2.文件类型 -type
3.权限 -perm
4.时间 -atime -ctime -mtime
1.1按文件名
[root@localhost ~]# find / -name "file2" #从根开始找名字为file2的文件
/root/file2
/var/tmp/file2
#find:查找和定位文件
#/ : 根目录
#”-name" : 是 find 命令的一个选项,用于指定要搜索的文件或目录的名称
#file2 : 文件名称
[root@localhost ~]# find /etc -name "ifcfg-ens33" #以名字的方式查找
[root@localhost ~]# find /etc -iname "IFCFG-ens33" #-i忽略大小写
熟悉通配符 *
查找/etc/目录下的.txt 结尾的文件
[root@localhost ~]# find /etc -iname "*.txt"
参数解释:
*:表示所有字符
1.2按文件大小
[root@localhost ~]# find /etc -size +5M #查找大于5M的文件
[root@localhost ~]# find /etc -size 5M #查找等于5M的文件
[root@localhost ~]# find /etc -size -5M #查找小于5M的文件
[root@localhost ~]# find / -size +3M -a -size -5M #查找 / 下面大于3M而且小于5M的文件
[root@localhost ~]# find / -size -1M -o -size +80M #查找 / 下面小于1M或者大于80M的文件
[root@localhost ~]# find / -size -3M -a -name "*.txt" #查找 / 下面小于3M而且名字是.txt结尾的文件
1.3 按时间查找
按时间找(atime,mtime,ctime)
-atime = access访问时间
-mtime = modify改变时间 内容修改时间会改变
-ctime = change修改时间 属性修改时间会改变
-amin #分钟
-mmin
-cmin
[root@localhost ~]# find /opt -mtime +5 #修改时间5天之前
[root@localhost ~]# find /opt -atime +1 #访问时间1天之前
[root@localhost ~]# find . -mtime -2 #修改时间2天之内
[root@localhost ~]# find . -amin +1 #修改时间1分钟之前
[root@localhost ~]# find /opt -amin -4 #访问时间在4分钟之内
[root@localhost ~]# find /opt -mmin -2 #修改时间在2分分钟之内
三、打包压缩
window打包压缩工具:
结尾:.rar .zip
打包工具:winrar zip 7zip 好压
linux打包压缩工具:
结尾:.tar.gz .tar.bz2 .zip
工具:gzip和tar(打包)
bzip2(只压缩)
打包
语法:#tar cvf xxxx.tar filename
被打包的文件 ...c :
create 创建
v :verbose 详细信息
f :file 文件
解包
#tar xvf filename.tar [-C /root/Desktop]
x: extract 解压缩 解包
-C: 指定解包路径
案例
[root@localhost ~]# tar cvf dir1.tar /home/dir10/ #打包目录dir10,将包命名为dir1.tar
[root@localhost ~]# tar xf dir1.tar -C /usr/local/ #将dir1包解压到指定目录
打包压缩一起
语法:
#tar cvzf file.tar.gz 源文件
z:表示gz压缩
解压解包一起:
语法:
#tar xvzf 压缩文件 [-C 解压路径]
案例
[root@localhost ~]# tar czf dir1.tar.gz dir1 #打包并压缩
[root@localhost ~]# tar xzf dir1.tar.gz -C /usr/local/ #解压到指定位置
打包到指定路径
[root@localhost ~]# tar czf /tmp/`date +%F-%T`-etc.tar.gz /etc/ #将打包的文件放到/tmp目录下,并以当前时间开头命名
扩展--按时间创建目录或者文件
# mkdir `date +%F`-upload
# touch file-`date +%F`.txt