Linux常用Shell命令(不断更新。。。)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/login_sonata/article/details/77620761
  1. cat -n abc,输出文件abc并显示行号(-n)。cat 00* > abc,把当前目录下所有00开头的文件内容合并到一个新文件abc。>表示重写文件,>>表示文件追加操作,这俩只写能正确输出的内容,2>>表示将错误信息写入,&>>表示不管对错都写入。cat abc | tr 'a-z' 'A-Z' > newfile,把abc文件的小写替换(tr)成大写并写到新文件,cat abc | tr -d '0-9' > newfile,删除(-d)数字。|叫做管道符,表示把前一个命令的结果输出给后一个命令。
  2. wc -l abc,输出文件abc的行数。参数-w表示统计字数。
  3. ls -la,显示全部(a)文件的详细(l)信息,参数-d表示只显示目录,参数-h把大小用兆显示,其中ls -l等价于llls /etc | wc -l,查看目录etc下的文件数目。ls *5?,显示文件名的倒数第二位为5的文件。通配符[0-9]所有数字,[12]为1或者2,[!12]为不含1和2。
  4. ps -ef或者ps -aux,查看所有进程。ps -ef | grep test.py,当ctr+c停不掉任务时,查看运行的py文件的进程的pid(第二列),用kill -9 [pid]杀掉。grep正则匹配。killall httpd(服务名),杀掉httpd服务的所有进程。pidof [进程名],显示进程pid号,每个进程唯一。
  5. df –h,所有当前被挂载的文件系统的磁盘空间占用情况。默认单位是字节,-h换算为M或G。
  6. head -n 100 abc,打印文件abc的前100行,不带-n默认10行。类似还有tail -n 100 abc显示后100行,tail -f abc不断刷新显示后10行。
  7. less -f abc,一页一页地打印文件abc。空格翻下一页,b(back)上一页,/向下搜索字符串,?向上搜索,n下一个搜索内容,N上一个搜索内容,v 进入到vi模式,q退出。类似的还有more指令。
  8. du -sh 目录/文件,目录/文件所占空间大小。-h是以M或G显示,-s是该目录下所有文件总和大小,不加的话会列出每个文件的大小。
  9. env(环境英文缩写)显示所有环境变量,使用echo可以打印出来,如echo $SHELL
  10. 十分钟后关机:shutdown –h 10。立马关机:shutdown –h now。8点21关机:shutdown –h 20:21-h是关机,-r是重启,重启也可以reboot
  11. top动态监视进程和系统负载。uptime也能查看负载,显示1/5/15分钟内的负载压力。
  12. uname -a或者cat /etc/redhat-release查看linux版本信息。
  13. free -h显示易读的内存情况。
  14. who当前登录用户信息,last所有登录过的用户信息。
  15. history显示历史命令,输入![编号]可以执行编号对应的命令。
  16. pwd显示当前目录。cd -进入上一次所处的目录。
  17. touch abc创建文件。mkdir创建目录文件,mkdir -p a/b/c创建递归目录文件。cp a b复制文件a,cp -r a b复制目录a。mv a b剪切文件a。rm -f abc删除文件abc不需确认,rm -r abc删除目录文件abc。file abc查看文件abc类型,stat abc查看文件abc信息。diff a b显示a文件和b文件的区别。
  18. tar -czvf abc.tar.gz abc压缩abc文件,-c表示压缩,-z表示压缩格式,-v表示显示过程,-f后跟着压缩或解压的文件名。tar -xzvf abc.tar.gz -C /etc解压文件,-x表示解压,-C表示输出目录,注意是大写,没写的话解压到当前目录。
  19. dd if=/dev/zero of=abc count=1 bs=50M创建指定大小的文件abc,/dev/zero是一个自带文件有无穷的0,bs表示块大小,count表示一次读写的块数。还能测试磁盘读写速度。
  20. cut -d: -f1 /etc/abc按列打印,-d接分隔符,-f接打印第几列,后边是文件。
  21. 文本搜索grep -n 123 abc在文件abc中查找包含123的行,-n显示行号,-v表示反向查找,显示不包含123的行。文件搜索find [文件名],可以用通配符。

  22. 一次运行多个命令的shell脚本怎么写?创建一个文件如run.sh,内容如下:

     #!/bin/sh
    python test1.py && python test2.py

    说明:写完后使用chmod +x run.sh命令修改权限,然后就可以在当前目录输入sh -x run.sh运行这个脚本了,-x表示调试运行(每执行一条命令会打印出来)。这个脚本会先执行当前目录下的test1.py&&表示如果前一个命令执行成功,则执行后一个命令。
    实际中,我们通常会定时执行脚本,输入crontab -e进入编辑页面,输入以下内容:

    0 3 * * * (cd /tmp; sh -x run.sh >>log 2>&1)

    说明:这个意思是每天凌晨3点cd到对应目录下(分/时/日/月/星期),执行run.sh这个脚本,并把命令运行产生的输出追加写入到log文件中。2>&1是把错误信息输出,跟&>>差不多。

猜你喜欢

转载自blog.csdn.net/login_sonata/article/details/77620761