首页 Linux 正文
354

linux实用命令

  • yiqingpeng
  • 2018-09-05
  • 0
  •  
ctrl + a : 光标移动到行首; ctrl + e: 光标移动到行尾;  Alt+b: 向左移动一个word; Alt+f: 向右移动一个word

ps -ef 以全格式(-f) 显示所有(-e)进程信息。类似的是ps -aux(a显示所有用户的进程,u显示用户信息,x显示无控制终端的进程), 它仅是在结果布局风格上有别于ps -ef. 当仅显示当前用户进程时,只需要ps -f 或 ps -x即可。当仅想显示某些列时,可以指定列名:ps -o pid,user,cmd显示PID, USER, CMD三列。(查看列名ps -ef|head -1)

netstat -antulp  查看端口占用情况,a-all, t-tcp, u-udp, l-listening, p-进程名, n-不进行DNS轮询,可以加快查找速度

df -h   查看硬盘空间使用情况
 
du -hs  /mnt  查看目录mnt占用空间大小,-d参数可以指定目录深度(使用du --help查看参数含义)

du -hs  /mnt/* 列出mnt目录下所有文件占用大小。(安装了docker之后,注意定时检查目录/var/lib/docker/overlay2, 此目录增长太大的话,运行docker system prune -a 进行清理)

lsof +L1 查看哪些已删除的文件空间没被释放。

chage [options] username  修改用户名或密码的有效期限

mkdir /usr/yqp/`date +%F`  创建当前日期命名的文件夹,反引号里面的是可执行的命令

stat demo.txt 查看文件demo.txt的属性信息(创建时间,访问时间,修改时间...)

watch  监测另一个命令运行的结果。

pidof   查找指定名称的进程的id号。

skill  向选定的进程发送信号,冻结进程,而不是杀死进程。
       如: skill -STOP httpd 冻结进程 , skill -CONT httpd 解冻进程

snice 用于降低进程的优先级。

pgrep  用于进程ID的查找,如果不加选项,直接输出匹配到的进程ID(意味着结果仅有一列), 如:pgrep -l httpd, 有点类似于ps -ef|grep xxxx的作用,但是后者会把本身的命令也列出来,必须得用-v参数过滤掉,比如:ps -ef|grep httpd|grep -v grep 

sed 命令用于构建文件的管道,并修改缓冲区的文本内容
比如 sed '1p' demo.txt  //将会显示文件demo.txt的第一行文本。
sed '$d' demo.txt //将会删除文件demo.txt的最后一行。这里的删除不会影响到文件demo.txt本身,只是显示上会删除最后一行。
sed '1a hello world' demo.txt //将会在文件demo.txt的第一行后面追加一行“hello world",同样也不会影响到文件本身。

last 显示最近登录的用户信息。

awk 文本分析工具。

比如: last -n 5 | awk  '{print $1}'
从HTTP Response中获取状态码:curl -I -s localhost | awk 'NR==1{print "HTTP CODE:", $2}' #curl -s 不输出统计信息

xargs  给其它命令传递参数: 比如要用脚本杀死vim进程:ps -ef | grep vim | grep -v grep | awk '{print $2}' | xargs kill -9
     结束多个进程:pgrep php-fpm|xargs kill (相当于pkill php-fpm), pgrep将列出所有匹配到的进程名的id

cd yqp; ls -a  用分号分隔同一行的不同命令。依次执行cd yqp, ls -a两条命令,注意分隔符是分号。

cal  查看日历。

date 查看当前日期和时间

nice (-n选项,n是整数,表示优先级) (参数)  : 调整进程的优先级,比如: nice -19 tar czvf deom.tar.gz mydoc;调整打包指令的优先级到19.


||,&&,;(分号)  多条命令联合符。||表示前一命令执行失败才会执行后一命令。&&表示前一命令执行成功才会执行后一命令。 ;表示两条命令互不影响,不管彼此是否失败。


killall 进程名   杀死指定进程名称 ,相当是 "ps -ef|grep 进程名 && kill 进程ID" 的合成,但是kill仅会杀死一个进程,而killall会杀死进程名对应的所有进程。killall和kill一样,可以指定信号类型,默认的是SIGTERM(15), 如果要强制杀就用SIGKILL(9)(更多的信号请用kill -l查看)。 还有一个类似的杀进程命令是 pkill.


batch命令,功能类似at命令,指定任务执行的日期和时间。


groupdel 组名, 删除组名(如果组里有用户则不能删除)


useradd  添加系统用户(此命令添加好用户之后,还需要用passwd设定密码,添加的用户保存在/etc/passwd中)。在有些系统中,adduser指令是个脚本程序,用来交互性地创建账号,其实质还是利用了useradd指令。而在Red Hat中,adduser命令则是useradd的符号连接,两者实际上是同一个指令。例如:useradd -g salesgroup jack -G salesgrp1,salesgroup2  #添加用户jack,并将其指定到组群salesgroup, 附加组群salesgrp1,salesgrp2.


userdel  删除用户。


find /data/log/ -name "*.log" -type f -size +10M -size -30M -mtime +10 ! -name "access.log" ! -name "error.log" -exec cp {} /data/log/2018-04-01/   在目录/data/log/中查找以.log结尾的文件,并且文件大小要大于10M小于30M,并且修改时间在30天以前,并要排除“access.log"和”error.log"两个文件,并将结果复制到/data/log/2018-04-01/

find /var/tmp -type d -delete     #删除/var/tmp目录下所有空目录

find /data/www -name .svn -type d | xargs rm -rf      #删除/data/www目录下所有.svn目录


nc(netcat)  在linux服务器之间实现简易的客户端-服务端连接,然后进行数据传输。此命令需要root权限。(centos需要手动安装:yum install nc.x86_64)
用法举例见专题


scp 在服务器之间进行安全拷贝,建议拷贝的时候带上 -C(大写)参数实现压缩传输,这样效率会很高。示例:scp -C -i ~/wallet.pem ~/reset_doge.sh ubuntu@172.31.43.142:/var/www/script (第一次运行此命令会出现交互式询问yes/no, 这在做自动化脚本时会导致脚本中断,所以需要更改服务器ssh配置,以消除此特性,方法如下:
[root@master ~]# vi /etc/ssh/ssh_config 
StrictHostKeyChecking no
或者使用
[root@master ~]#  ssh IP -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no)


mkdir -p /var/www/{web1,web2}  同时创建web1,web2目录, -p表示父目录不存在自动创建。


id  james查看用户的uid, gid


ln -s <filepath> <linkName> 建立软链接


groups james 查看james用户所属的所有组


usermod -a -G group1 user1 将user1追加到组group1中(-a表示不会从原组中剔除)

netstat -ano  查看端口占用情况

flock 文件咨询锁命令,可以用来防止crontab并发地执行脚本。例如:* * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php'

wc 统计工具,可以统计行数,字符数,字节数,单词数等, 例如:wc -l /log/access_log 统计log的行数。

uniq 对相邻行进行过滤,使用此工具可以计算行的重复数(-c),或者保留只出现一次的行(-u),或者保留出现多次的行(-d); 比较行的时候可以通过参数设置比较的开始位置,所以它并一定比较的是整行。注意,对于无序的输入数据必须先排序。
#例子:查看当前连接到服务器最多的IP地址: netstat -ntu|awk '{print $5}'|sort|uniq -c|sort -nr

sort 排序工具

join [options] FILE1 FILE2  文件连接工具,类似于sql的join。

grep, egrep, fgrep的区别:egrep相当于grep -E, 用于支持扩展的正则表达式,而单独的grep只支持基本的正则,比如:grep 不支持关系或“|(或)”, 加上 -E选项之后就可以支持了,而egrep则可直接支持。其它选项-i(忽略大小写),-o(仅显示匹配到的字符), -v(忽略匹配到的行),-A#(仅显示匹配到的后#行),-B#(仅显示匹配的前#行),-C#(前后各#行)都适用于两者。
比如要匹配文件test.txt中的以hello 开头的行,则如下:
grep "^hello.\+"  test.txt   次数限定符+需要转义。
grep -E "^hello.+" test.txt  次数限定符+不需要转义。
egrep "^hello.+"  test.txt
至于fgrep, 它不支持正则表达式,所以它可以用来直接匹配那些正则中的元字符。

tail -f -n9 test.txt    动态显示最后9行。-f参数表式动态追踪文件的变化实时显示出来。

less  test.txt   以翻页的形式显示文件的内容,即翻页版的cat命令。

head   -n9 test.txt 显示文件的前9行,-c显示前多少字节。

nl [options] file   读取输入的内容附加上行号之后输出

yum list <程序名> 可以同时查看已安装的程序(如果已安装的话)和可用的安装包)

yum list installed | grep <程序名> 查看已安装的程序及版本,相当于rpm -qa|grep <程序名>

free -m  查看内存使用情况,-m表示以MB为单位,-g以GB为单位。

vmstat 内存与CPU使用统计

alias 列出命令的别名,比如在某些版本系统中,执行cp命令会提示“是否覆盖已有文件”,但原生的cp命令是需要加上选项-i才会提示的,出现这种情况是由于系统设置了别名,即: alias cp='cp -i'. 在这种情况下,要使用原生命令必须得在命令前加上斜杠\, 即:\cp .

source  xxxx.sh  用来将另一个脚本引入到当前shell执行环境。

.  xxx.sh   Dot command 用于在当前环境下执行一个脚本









正在加载评论...