首页

文章

30个必知的Linux命令技巧,你都掌握了吗

发布网友 发布时间:2022-03-20 19:13

我来回答

2个回答

懂视网 时间:2022-03-20 23:35

产品型号:Thinkpad E15

系统版本:centos7

软件版本:find 4.6

find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作。

find语法格式:find  路径名称   选项       

find命令选项:

-name 按照文件名查找文件。  “名称”

-perm 按照文件权限来查找文件。666 777 等

-user 按照文件属主来查找文件

-group 按照文件所属的组来查找文件

-mtime  -n  / +n 按照文件的更改时间来查找文件,

- n 表示文件更改时间距现在n天以内

+ n 表示文件更改时间距现在n天以前

-type 查找某一类型的文件

b - 块设备文件

d - 目录

c - 字符设备文件

p - 管道文件

l- 符号链接文件

f - 普通文件

-size n  查找符合指定的文件大小的文件

-exec    对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为' 命令 {} ;,注意{ }和 ;之间的空格,{}代表查到的内容

例1:查找当前目录下所有的TXT格式的文件

[root@xuegod63 ~]# touch a.txt xuegod.txt

[root@xuegod63 ~]#  find . -name "*.txt"

。。。

./a.txt

./xuegod.txt

2、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项

mtime:  文件最后一次修改的时间

atime:  最后一次访问时间

ctime:  文件的最后一次变化时间,也就是修改时间

例1:在root目录下查找更改时间在1天以内,被黑客修改的文件

[root@xuegod63 ~]# find /root/ -mtime -1


对查找内容执行相应命令

-exec    这个选项参数后面可以跟自定义的SHELL命令,格式如下:


例2:把查找到的文件复制到一个指定的目录

[root@xuegod63 ~]# touch {1,2,3}.back

[root@xuegod63 mnt]# find /root -name "*.txt" -exec cp {} /opt  ;

例3:查找多个类型文件

find命令中比较符的使用:

-a  and 并且

-o  or  或者

+  超过

-   低于

[root@xuegod63 ~]# touch a.pdf back.sh

[root@xuegod63 ~]# find ./ -name "*.sh" -o -name "*.pdf"

[root@xuegod63 ~]# find /etc -size +20k -a -size -50k | wc -l

22

[root@xuegod63 ~]# find /etc -size +20k  | wc -l

49

例4:  按权限查找:-perm

[root@xuegod63 ~]# find /bin/ -perm 755   # 等于0755权限的文件或目录

[root@xuegod63 ~]# find /bin/ -perm  -644 #-perm -644  至少有644权限的文件或目录

例5:查找的目录深度:

-maxdepth 1  #只查找目录第一层的文件和目录

如:查找/bin目录下权限等于644的文件

[root@xuegod63 ~]# find /etc/ -maxdepth 1 -perm 644 | more

热心网友 时间:2022-03-20 20:43

在Unix/Linux下,高效工作方式不是操作图形页面,而是命令行操作,命令行意味着更容易自动化。使用过Linux系统的朋友应该都知道它的命令行强大之处。话说回来了,以下这些命令使用技巧你又知道多少呢?
1、Vim自动添加注释及智能换行
# vi ~/.vimrc set autoindentset tabstop=4set shiftwidth=4function AddTitle()call setline(1,"#!/bin/bash")call append(1,"#====================================================")call append(2,"# Author: lizhenliang")call append(3,"# Create Date: " . strftime("%Y-%m-%d"))call append(4,"# Description: ")call append(5,"#====================================================")endfmap <F4> :call AddTitle()<cr>

打开文件后,按F4就会自动添加注释,省了不少时间:

2、查找并删除/data这个目录7天前创建的文件
# find /data -ctime +7 -exec rm -rf {} \;# find /data -ctime +7 | xargs rm -rf

3、tar命令压缩排除某个目录
# tar zcvf data.tar.gz /data --exclude=tmp #--exclude参数为不包含某个目录或文件,后面也可以跟多个

4、查看tar包存档文件,不解压
# tar tf data.tar.gz #t是列出存档文件目录,f是指定存档文件
5、使用stat命令查看一个文件的属性
访问时间(Access)、修改时间(modify)、状态改变时间(Change)stat index.phpAccess: 2018-05-10 02:37:44.169014602 -0500Modify: 2018-05-09 10:53:14.395999032 -0400Change: 2018-05-09 10:53:38.855999002 -0400

6、批量解压tar.gz
方法1:# find . -name "*.tar.gz" -exec tar zxf {} \;方法2:# for tar in *.tar.gz; do tar zxvf $tar; done方法3:# ls *.tar.gz | xargs -i tar zxvf {}

7、筛除出文件中的注释和空格
方法1:# grep -v "^#" httpd.conf |grep -v "^$"方法2:# sed -e ‘/^$/d’ -e ‘/^#/d’ httpd.conf > http.conf或者# sed -e '/^#/d;/^$/d' #-e 执行多条sed命令方法3:# awk '/^[^#]/|/"^$"' httpd.conf 或者# awk '!/^#|^$/' httpd.conf

8、筛选/etc/passwd文件中所有的用户
方法1:# cat /etc/passwd |cut -d: -f1方法2:# awk -F ":" '{print $1}' /etc/passwd

9、iptables网站跳转
先开启路由转发:echo "1" > /proc/sys/net/ipv4/ip_forward #临时生效内网访问*(SNAT):iptables –t nat -A POSTROUTING -s [内网IP或网段] -j SNAT --to [公网IP]#内网服务器要指向防火墙内网IP为网关公网访问内网(DNAT)(公网端口映射内网端口):iptables –t nat -A PREROUTING -d [对外IP] -p tcp --dport [对外端口] -j DNAT --to [内网IP:内网端口]#内网服务器要配置防火墙内网IP为网关,否则数据包回不来。另外,这里不用配置SNAT,因为系统服务会根据数据包来源再返回去。

10、iptables将本机80端口转发到本地8080端口
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
11、find命令查找文件并复制到/opt目录
方法1:# find /etc -name httpd.conf -exec cp -rf {} /opt/ \;: #-exec执行后面命令,{}代表前面输出的结果,\;结束命令方法2:# find /etc -name httpd.conf |xargs -i cp {} /opt #-i表示输出的结果由{}代替

12、查看根目录下大于1G的文件
# find / -size +1024M 默认单位是b,可以使用其他单位如,C、K、M

13、查看服务器IP连接数
# netstat -tun | awk '{print $5}' | cut -d: -f1 |sort | uniq -c | sort -n -tun:-tu是显示tcp和udp连接,n是以IP地址显示cut -d:-f1:cut是一个选择性显示一行的内容命令,-d指定:为分隔符,-f1显示分隔符后的第一个字段。uniq -c:报告或删除文中的重复行,-c在输出行前面加上出现的次数sort -n:根据不同类型进行排序,默认排序是升序,-r参数改为降序,-n是根据数值的大小进行排序

14、插入一行到391行,包括特殊符号"/"
# sed -i "391 s/^/AddType application\/x-httpd-php .php .html/" httpd.conf
15、列出nginx日志访问最多的10个IP
方法1:# awk '{print $1}' access.log |sort |uniq -c|sort -nr |head -n 10sort :排序uniq -c:合并重复行,并记录重复次数sort -nr :按照数字进行降序排序方法2:# awk '{a[$1]++}END{for(v in a)print v,a[v] |"sort -k2 -nr |head -10"}' access.log

16、显示nginx日志一天访问量最多的前10位IP
# awk '$4>="[16/May/2017:00:00:01" && $4<="[16/May/2017:23:59:59"' access_test.log |sort |uniq -c |sort-nr |head -n 10# awk '$4>="[16/Oct/2017:00:00:01" && $4<="[16/Oct/2017:23:59:59"{a[$1]++}END{for(i in a){print a[i],i|"sort -k1 -nr |head -n 10"}}' access.log

17、获取当前时间前一分钟日志访问量
# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"` ; awk -vd=$date '$0~d{c++}END{print c}' access.log# date=`date +%d/%b/%Y:%H:%M --date="-1 minute"`; awk -vd=$date '$4>="["d":00" && $4<="["d":59"{c++}END{print c}' access.log # grep `date +%d/%b/%Y:%H:%M --date="-1 minute"` access.log |awk 'END{print NR}'# start_time=`date +%d/%b/%Y:%H:%M:%S --date="-5 minute"`;end_time=`date +%d/%b/%Y:%H:%M:%S`;awk -vstart_time="[$start_time" -vend_time="[$end_time" '$4>=start_time && $4<=end_time{count++}END{print count}' access.log

18、找出1-255之间的整数
方法1:# ifconfig |grep -o '[0-9]\+' #+号匹配前一个字符一次或多次方法2:# ifconfig |egrep -o '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'

19、找出IP地址
# ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只显示匹配字符
20、给文档增加开头和结尾说明信息
# awk ‘BEGIN{print "开头显示信息"}{print $1,$NF} END{print "结尾显示信息"}’/etc/passwd# awk 'BEGIN{printf " date ip\n------------------\n"} {print $3,$4} END{printf "------------------\nend...\n"}' /var/log/messages date ip------------------03:13:01 localhost10:51:45 localhost------------------end...

21、查看网络状态命令
# netstat -antp #查看所有网络连接# netstat -lntp #只查看监听的端口信息# lsof -p pid #查看进程打开的文件句柄# lsof -i:80 #查看端口被哪个进程占用

22、生成8位随机字符串
方法1:# echo $RANDOM |md5sum |cut -c 1-8方法2:# openssl rand -base64 4方法3:# cat /proc/sys/kernel/random/uuid | cut -c 1-8

23、while死循环
while true; do #条件精确等于真,也可以直接用条件[ "1" == "1" ],条件一直为真ping -c 2 www.baidu.comdone

24.awk格式化输出
将文本列进行左对齐或右对齐。
左对齐:# awk '{printf "%-15s %-10s %-20s\n",$1,$2,$3}' test.txt右对齐:# awk '{printf "%15s %10s %20s\n",$1,$2,$3}' test.txt

25.整数运算保留小数点
方法1:# echo 'scale=2; 10/3;'|bc #scale参数代表取小数点位数方法2:# awk BEGIN'{printf "%.2f\n",10/3}'

26.数字求和
# cat a.txt10235356方法1:#!/bin/bashwhile read num;dosum=`expr $sum + $num`done < a.txtecho $sum方法2:# cat a.txt |awk '{sum+=$1}END{print sum}'

27、判断是否为数字(字符串判断也如此)
# [[ $num =~ ^[0-9]+$ ]] && echo yes || echo no #[[]]比[]更加通用,支持模式匹配=~和字符串比较使用通配符`^ $:从开始到结束是数字才满足条件=~:一个操作符,表示左边是否满足右边(作为一个模式)正则表达式

28、删除换行符并将空格替换别的字符
# cat a.txt |xargs echo -n |sed 's/[ ]/|/g' #-n 不换行# cat a.txt |tr -d '\n' #删除换行符

29、查看文本中20至30行内容(总共100行)
方法1:# awk '{if(NR > 20 && NR < 31) print $0}' test.txt方法2:# sed -n '20,30p' test.txt 方法3:# head -30 test.txt |tail

30、文本中两列位置替换
# cat a.txt60.35.1.15 www.baidu.com45.46.26.85 www.sina.com.cn# awk '{print $2"\t"$1}' a.txt
...火柴小女孩》《词语手册》里有很多词语的意思的,求告知 暖融融解释 领淘通淘客助手这个软件怎么样? 淘宝客必备的九大工具有哪些? 电脑里硬盘如何共享怎么实现多台电脑共用一块硬盘 两台电脑一个硬盘两台电脑是否可以同时用一个硬盘 共享电脑硬盘怎样设置局域网电脑硬盘共享 现在下载歌曲好还是不下好 故障码P033D的含义解析 切菜机多功能型切菜机 scanbox三维扫描仪 苹果13没有删除的备忘录怎么恢复? iphone备忘录永久删除怎么恢复?iphone备忘录恢复最近删除文件方法介绍... 备忘录最近删除怎么找 初一班主任工作计划 新初一班主任工作计划 359度是什么角 报个 定向乡镇卫生院 的医学好不好 酒驾缓刑节保证书怎么写 合同法律咨询免费 这款充电宝可以带上飞机吗? 倪俊卿成就及荣誉 江苏种牛站有几家? 山东宏正牧业有限公司服务承诺 吃早餐后抽血会影响体检结果吗 电脑如何设置护眼模式(台式电脑如何设置护眼模式) 电脑显示器设置护眼电脑屏幕怎么设置比较护眼 广告机是否支持分屏显示功能? 上海东丰船务有限公司怎么样? 马弗炉管厂家 CF手游体验服怎样获取资格 穿越火线体验服在哪申请资格_cf手游体验服资格申请入口链接 穿越火线体验服资格申请链接在哪-穿越火线体验服资格申请链接介绍 快手浏览量多少才能赚钱?快手靠浏览量能挣多少钱? 小麦胚芽如何吃最好 个头怎么造句 高跟鞋走路磨脚该如何处理? 除螨虫的特效药 螨虫什么药物可以除掉 网上在哪买奢侈品 二手包包闲置了怎么办 夫妻想要怀孕要提前做哪些准备 手机图片如何投屏到电视上去 手机图片投屏到电视上去的方法 分区助手无法压缩卷怎么处理? 广州北斗公司有哪些 在文件夹里.把cfg文件删掉.电影还可以看么? 办理骑士卡要钱吗? 一千个伤心的理由吉他谱前奏怎么弹出 一千个伤心的理由吉他谱 去中国逛夜市,必买的小吃有哪些? 上海香肠的配料秘方有哪些? 华为认证考试费用是多少 在微信上可以发视频吗?怎么发 重庆思庄红帽认证工程师 (RHCE)可以直接参加考试吗? 红帽认证工程师及红帽认证技师认证考试是开卷考试吗? 怎样在微信上发视频 五分钟的视频在微信上怎么传 怎么在微信上发视频 linux运维需要考什么证书? 求大大告知,Linux都有什么证书,考什么证书 哪位知道学过linux啊?现在这个证书含金量怎么样? 怎么设置电脑到点自动关机?? linux证书 现在linux考什么证书比较吃香呢? 急!!!!!!谁知道怎样设置电脑自动关机呀 linux怎么考证 谁能教教我怎么设置电脑自动关机啊? 学Linux要考什么证?好考吗?报名费多少? 如何在excel中已设置的方框里打勾 红帽linux认证有哪些? 怎么样才能取得Linux红帽认证 批处理的FIND命令(很急) mysql安装配置教程 mysql安装教程详细教程是怎么样的? 如何安装MySQL5.0图解教程 如何安装mysql 如何安装启动MySQL 如何安装MySQL,MySQL两种安装方式 安装mysql数据库步骤 linux怎么安装mysql mysql企业版怎么安装图解 mysql安装完成后怎么使用? Navicat for mysql怎么安装 如何将mysql安装到系统服务 mysql安装教程多大 MYSQL SERVER 的安装步骤 win10安装mysql教程 百度地图可以有离线地图吗? 为什么安装mysql 安装不了 mysql安装视频教程? PHP开发环境配置(MySQL数据库安装图文教程)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com