Linux操作系统的介绍及命令使用技巧
本篇内容主要讲解“Linux操作系统的介绍及命令使用技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux操作系统的介绍及命令使用技巧”吧!
创新互联建站专注于开州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供开州营销型网站建设,开州网站制作、开州网页设计、开州网站官网定制、重庆小程序开发服务,打造开州网络公司原创品牌,更为您提供开州网站排名全网营销落地服务。
Linux文件基本属性
Linux文件与目录管理
Linux用户和用户组管理
Linux磁盘管理
vi/vim
vim Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器 ZQ 无条件退出 :q! 无条件退出 ZZ 存盘并退出 :wq 存盘并退出 j 下移一行 k 上移一行 / 在文件中向前搜索(特殊字符如/需要用转移字符\,如匹配baidu/agile/agile需要输入:/baidu\/agile\/agile) ? 在文件中向后搜索 n 搜索下一个 N 反向搜索下一个 #将整个文件的所有a替换为b :%s/a/b/g #将1至3行的第一个a替换为b :1,3s/a/b/ #将1至3行的所有a替换为b :1,3s/a/b/g
使用sed -i对文本字符串进行增删改查
常用命令及使用技巧
日志
#####################tail##################### #倒数300行并进入实时监听文件写入模式 tail -300f shopbase.log #显示文件 example.txt 的后二十行内容 tail -n 20 example.txt #显示文件 example.txt 的后十行内容并在文件内容增加后,自动显示新增的文件内容。 tail -f example.txt #显示文件 example.txt 的后50行内容并在文件内容增加后,自动显示新增的文件内容。 tail -n 50 -f example.txt #动态显示末尾的100行包含java的内容 tail -100f file1 | grep java #####################cat##################### #显示file文件里匹配foo字串那行以及上下5行 cat error.log | grep -C 5 'foo' #显示foo及前5行 cat error.log | grep -B 5 'foo' #显示foo及后5行 cat error.log | grep -A 5 'foo' #同时包含多个关键词 cat example.txt | grep dongshihao | grep ciOnline #忽略大小写检索关键词 cat f.txt | grep -i shopbase #关键词出现次数 cat f.txt | grep -c shopbase #####################grep##################### #文件查找 grep forest f.txt #多文件查找 grep forest f.txt cpf.txt #目录下查找所有符合关键字的文件 grep 'log' /home/admin -r -n #指定单个文件后缀 grep 'import' ~/code -r -n --include '*.java' #指定多个文件后缀 grep 'shopbase' /home/admin -r -n --include *.{vm,java} #反匹配 grep 'shopbase' /home/admin -r -n --exclude *.{vm,java} #####################find##################### #根据名称查找/目录下的filename.txt文件。 find / -name filename.txt #递归查找所有的xml文件 find . -name "*.xml" #递归查找所有文件内容中包含hello world的xml文件 find . -name "*.xml" | xargs grep "hello world" #多个目录去找 find /home/admin /tmp /usr -name \*.log #按名字(不区分大小写)查找 find . -iname \*.log #当前目录下的所有子目录 find . -type d #当前目录下所有的符号链接 find /usr -type l #符号链接的详细信息 eg:inode目录 find /usr -type l -name "z*" -ls #超过250000k的文件,当然+改成-就是小于了 find /home/admin -size +250000k #按照权限查询文件 find /home/admin f -perm 777 -exec ls -l {} \; #1天内访问过的文件 find /home/admin -atime -1 #1天内状态改变过的文件 find /home/admin -ctime -1 #1天内修改过的文件 find /home/admin -mtime -1 #1分钟内访问过的文件 find /home/admin -amin -1 #1分钟内状态改变过的文件 find /home/admin -cmin -1 #1分钟内修改过的文件 find /home/admin -mmin -1 #删除文件大小为零的文件 find ./ -size 0 | xargs rm -f & #查找并删除/data这个目录7天前创建的文件 find /data -ctime +7 -exec rm -rf {} \; find /data -ctime +7 | xargs rm -rf #查找文件并复制到/opt目录 方法1: find /etc -name httpd.conf -exec cp -rf {} /opt/ \; #-exec执行后面命令,{}代表前面输出的结果,\;结束命令 方法2: find /etc -name httpd.conf |xargs -i cp {} /opt #-i表示输出的结果由{}代替 #查看根目录下大于1G的文件,默认单位是b,可以使用其他单位如,C、K、M find / -size +1024M #找出IP地址 ifconfig |grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' #-o只显示匹配字符 #查看文本中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 #查看压缩日志文件 zcat test.gz zless test.gz #搜索当前目录包含某个字符串的文件(找到该字符串在哪个文件的第几行) grep -rn "test" *
文本分析
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
#####################awk##################### 文件a a11 a12 a13 b21 b22 b23 c31 c32 c33 文件b 11 12 13 21 22 23 31 32 33 文件c a:b:c d:e:f g:h:i #基础命令 awk '{print $2,$3}' a a12 a13 b22 b23 c32 c33 awk '{print NR,$0}' a b 1 a11 a12 a13 2 b21 b22 b23 3 c31 c32 c33 4 11 12 13 5 21 22 23 6 31 32 33 awk '{print FNR,$0}' a b 1 a11 a12 a13 2 b21 b22 b23 3 c31 c32 c33 1 11 12 13 2 21 22 23 3 31 32 33 awk '{print FNR,FILENAME,$0}' a b 1 a a11 a12 a13 2 a b21 b22 b23 3 a c31 c32 c33 1 b 11 12 13 2 b 21 22 23 3 b 31 32 33 awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' a b a NR=1 FNR=1 $3=a13 a NR=2 FNR=2 $3=b23 a NR=3 FNR=3 $3=c33 b NR=4 FNR=1 $3=13 b NR=5 FNR=2 $3=23 b NR=6 FNR=3 $3=33 echo 1 2 3 | awk -F: '{print $1,$2,$3}' c a b c d e f g h i #匹配ldb awk '/ldb/ {print}' f.txt #不匹配ldb awk '!/ldb/ {print}' f.txt #匹配ldb和LISTEN awk '/ldb/ && /LISTEN/ {print}' f.txt #第五列匹配ldb awk '$5 ~ /ldb/ {print}' f.txt #文本左对齐: awk '{printf "%-15s %-10s %-20s\n",$1,$2,$3}' test.txt #文本右对齐: awk '{printf "%15s %10s %20s\n",$1,$2,$3}' test.txt #从如下日志中求出feature、model两个过程耗时平均值 2019-11-13 15:23:08 INFO [DubboServerHandler-127.0.0.1:20880-thread-199] (AInterfaceImpl.java:128) - A_task: where:B, strategy:READ_SPEED_REGRESSION_V9_OPT, uid:123@wx.163.com, traceId:123, feature(FeatureExtractor,400,112ms), model(400, success, 31ms), allCost: 143ms cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $10}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}' cat engine_ctr.log | grep FeatureExtractor | grep B | awk -F "[,()]" '{print $15}' | awk -F "ms" '{print $1}' | awk '{sum+=$1} END {print "Average = ", sum/NR}'
文件
#使用stat命令查看一个文件的属性,访问时间(Access)、修改时间(modify)、状态改变时间(Change) stat index.php #文件夹读写权限 chmod -R 777 文件夹 #重命名 mv oldNameFile newNameFile #递归复制整个文件夹 cp -r sourceFolder targetFolder #批量解压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 {} #筛除出文件中的注释和空格 方法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 #筛选/etc/passwd文件中所有的用户 方法1: cat /etc/passwd |cut -d: -f1 方法2: awk -F ":" '{print $1}' /etc/passwd
其它常用(持续更新)
#内存使用情况 free -h #查看java进程 ps aux|grep java #查找elastic进程 kill -9强制杀掉进程 ps -ef | grep --color elastic #终止线程号位19979的进程 kill -9 19979 #查找是否存在名为tomcat的进程: ps -aux | grep tomcat #查看内存占用前10的进程 ps -aux|sort -k4nr |head -n 10 #查看所有进程和端口的使用情况: netstat -apn #如果发现8080端口被PID为的8979的java进程占用,则可以进一步查看明细: ps -aux | grep 8979 ps -aux | grep java #查看进程运行时间 ps -p 24525 -o lstart,etime #直接使用端口号查看进程: netstat -apn | grep 8080 #查看端口属于哪个进程 lsof -i :8080 #查看进程打开的文件句柄 lsof -p pid #iptables将本机80端口转发到本地8080端口 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 #查看所有网络连接 netstat -antp #只查看监听的端口信息 netstat -lntp #表示人以root身份登录 su - root #表示与root建立一个链接,通过root执行命令 su root #使用超级管理员身份执行命令 #sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码 sudo rm a.txt #生成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 #删除从开头到光标处的命令文本 ctrl + u #删除从光标到结尾处的命令文本 ctrl+k #光标移动到命令开头 ctrl + a #光标移动到命令结尾 ctrl + e #多条命令执行,使用分号隔开 cd /temp/log/;rm -rf * 多条命令执行,使用分号隔开(确保前一条成功,否则会删除当前目录) cd /temp/log/&&rm -rf * #终止并恢复进程执行 ctrl+z、fg #快速查找你需要的命令 man -k "copy files"
redis
设置redis访问密码
到此,相信大家对“Linux操作系统的介绍及命令使用技巧”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
文章题目:Linux操作系统的介绍及命令使用技巧
本文链接:http://scjbc.cn/article/pssjei.html