Linux常用命令&使用技巧

#查看操作系统信息#
命令:cat /etc/issue
点评:查看linux发行版本,suse、rethat、centos通用

命令:cat /proc/version
点评:信息量更大,主要是内核版本、没有具体的发行版本信息

命令:uanme -a
点评:主要是系统信息,内核版本等,uname -i查看系统位数比较简便

命令:file /bin/bash 或者 file /bin/cat
点评:查看系统位数最简便直观

#查看CPU信息#
命令:cat /proc/cpuinfo
点评:可以查看CPU型号,核心参数等,或者查看CPU个数(这个也可以通过top然后输入1查看也比较方便)

#内存相关#
命令:free -m
点评:查看内存使用量和交换区使用量,最常的命令之一

命令:sync
点评:刷新缓存到磁盘
命令:echo 1 > /proc/sys/vm/drop_caches
点评:清空pagecache
命令:echo 2 > /proc/sys/vm/drop_caches
点评:清空dentries & inodes
命令:echo 3 > /proc/sys/vm/drop_caches
点评:清空pagecache、dentries、inodes
一般上述命令结合sync(清空前先同步数据)使用

命令:top
点评:查看系统负载,这里重点说明,输入M,可以按内存占用排序,快速找出消耗内存最高的进程。

#磁盘信息相关#
命令:df
点评:查看磁盘存储信息,df -h最常用

命令:du
点评:查看某目录的磁盘占用,可以具体到文件,找出耗空间的目录必杀技,du -sh (查看当前目录下所有子目录及文件的存储占用大小,常用),du -hs /home/xx/(查看某目录占用空间,可以遍历子目录),du -s /usr/local/ | sort -nr | less(根据存储大小降序排序,不用用h参数,因为排序不管单位),还有各种用户可以去发掘

#文件相关#
命令:ls
点评:最常用之一,主要说说一些常用技巧。排序(默认跟进文件名排序):ls -lt(时间降序)、ls -lt | tac(时间升序)、ls -lS(大小降序);

命令:ll
点评:最常用之一,ll会显示隐藏文件,ls -l功能类似(ll是ls -l的别名),区别是不显示隐藏文件,其他参数跟ls基本一致。

命令:tail、head、sed、cat、more、less、grep、vi
点评:各种查看文本内容命令,任君选择,个人使用tail、head更多

命令:zip
点评:打zip包,通常用法(指定文件名、打包目录):zip -r xx.zip test/*(-r是递归子目录)

命令:unzip
点评:解zip包,通常用法:unzip xxx.zip(解压到当前目录),unzip xxx.zip -d dirxx(解压到dirxx)

命令:tar
点评:解包|打包, tar -cvf /tmp/etc.tar /etc(c-打包,将整个/etc目录下的文件全部打包成为 /tmp/etc.tar,只打包,不压缩),tar -zcvf /tmp/etc.tar.gz /etc(将整个/etc目录下的文件全部打包成为 /tmp/etc.tar,打包并用gzip压缩),tar -ztvf /tmp/etc.tar.gz(t-查看压缩包文件,是否加z根据是否采用gzip压缩来定),tar -zxvf /tmp/etc.tar.gz(x-解包,是否加z跟进是否采用gzip压缩来定);

命令:grep
点评:查找命令,最常用之一,说说一些技巧,比如查找包含多个关键字:grep -E “key1|key2” xxx.txt或者 grep “key1|key2” xxx.txt,排除关键字:grep -v key xxx.txt;查找以abc开始的行:grep “^abc” xxx.txt;

命令:awk
点评:非常强大的命令(貌似grep能干的事情awk都能干),数据处理必杀技,常规用法:awk [-F filed-separator] “commands” file。
eg:awk -F “,” ‘{print $1}’ xx.txt(不指定-F默认用空格分割,打印列从1开始,0代表整行,打印多行用逗号分隔,比如print $1,$2,print-换行,printf-不换行);
一般几大块:BEGIN、主体、END,eg:awk ‘BEGIN {ab=1;} {ab +=1 ; print $1} END {print “total=”ab}’
awk结合逻辑运算处理,eg:cat Zhenai_Sms_Status.log.2015-04-08 | awk -F ‘#’ ‘BEGIN {a=0;b=0} {if($5==”M2:0045”) { a+=1;print $5} else if ($5==”UNDELIV”) {b+=1;print \$5}} END {print “totala=”a” totalb=”b}’,大部分应用都是这个模式。

命令:find
点评:查找文件,常用模式:find /dir/xxx -name “xxx”。
几个比较有用的过滤参数:
跟据文件时间过滤:-atime +|-天数,-mtime +|- 天数, -ctime +|- 天数,-amin +|- 分钟,-mmin +|- 分钟,-cmin +|- 分钟,eg:find /tmp -mtime 2;
根据文件大小过滤:-size +|- 2M -size 2M(等于2M),-size +2M(大于2M),-size -2M(小于2M),eg:find /tmp -size +2M;

命令:join
点评:核心是找文件交集(以列为标识,默认第一列,默认空格分隔,指定分隔字符用-t),两个文件必须按相同的规则先排序。
最简单的用法:join file1.txt file2.txt(以第一列为连接字段,合并两个文件所有列)。
指定关联列:join -j 1 file1.txt file2.txt(以每个文件第一列作为关联)。
指定关联列:join -1 2 -2 3 file1.txt file2.txt(以第一个文件第2列和第二个文件第3列作为关联)。
指定输出列:join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e ‘null’ -a 1 f1.txt f2.txt(-o表示输出,-a表示不匹配也输出,用-e ‘null’指定字符null替换).
输出不关联的:join -v 1 file1.txt file2.txt。

命令:sort
点评:按某列排序文本,几个比较常用的参数:-t:指定分隔字符,-u:排重,-k指定排序列,-r降序(默认是升序),-n指定根据数字排序(默认是按字符)。
常规用法:sort xxx.txt; sort -t ‘,’ xxx.txt; sort -u xxx.txt sort -k2 xxx.txt …

命令:tr
点评:貌似更多用来做替换处理(一般是单个字符形式的场景)。
使用场景:
cat file.txt | tr [a-z] [A-Z] > new_file(统一转换大写,小写就反过来
cat file | tr [0-9] [a-j] > new_file(把文件中的数字0-9替换为a-j)
cat file | tr -d “Snail” > new_file(删除Snail字符串)

命令:sed
点评:字符替换、删除等(比tr更强大些)。
使用场景:
sed ‘s/test/mytest/g’ file.txt(在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest)。
sed ‘2d’ fiel.txt(删除第二行)。
sed ‘2,$d’ example(删除example文件的第二行到末尾所有行)。
sed ‘/test/’d example(删除example文件所有包含test的行)。
还有好多不常用的…

#账号相关#
命令:usradd
点评:添加账号,一般使用useradd -m username -d /home/username(附带创建home目录),passwd修改密码。

命令:userdel
点评:删除用户,一般直接userdel xxx

#权限相关#
命令:chmod
点评:比较常用的命令,使用格式chmod [who] [opt] [mode] 文件/目录名,加-R表示递归子目录。
who:u(文件所有者);g(同组用户);o(其他用户);a(所有用户)
opt操作:+(加权限);-(删权限);=(赋权限)
mode:r(可读);w(可写);x(可执行)
-rw——- (600) – 只有属主有读写权限。
-rw-r–r– (644) – 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx—— (700) – 只有属主有读、写、执行权限。
-rwxr-xr-x (755) – 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x–x (711) – 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) – 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) – 所有用户都有读、写、执行权限。更不可取的做法

命令:chown
点评:一般用来修改文件/文件夹属主(只有root账号可以操作),-R表示递归子目录。
常规用法:chown -R username dir(修改dir的属主为username)

命令:visudo
点评:root账号可用,开放权限比较好用,指定用户免密码通过sudo执行root权限需要的命令,一般情况就不需要告知root密码了。
常规用法:编辑新加行,username ALL=(ALL) NOPASSWD:ALL(这样子username就可以不用密码使用sudo执行命令)

#定时任务相关#
命令:ll /var/spool/cron/tabs
点评:查看所有用户的定时任务,这样就不需要一个个账号看,到底有哪些定时任务了。

#删除、移动文件#
命令:rm
点评:主要是rm时候排除某些文件,比如:rm `ls | grep -v “xxx”`

命令:mv
点评:主要是mv时候排除某些文件,比如:mv `ls | grep -v “xxx”` newpath

你可能感兴趣的:(linux,linux,shell)