| Linux(bash)中容易被忽略但又超好用的命令【持续更新】1 文件更新自动显示最常用的应该是cat,more,less,但是如果文件超过40行就可以用tail来截取尾部的内容。当我们部署的服务器在运行的时候(特别是在处理请求的时候)会不断产生日志,当日志有更新时想让系统自动显示该怎么办呢?使用下面的命令可以显示:
 tail -n 50 -f [server.log]
 这里-n 50表示只截取最后50行,-f表示有新内容的时候自动显示。该命令会让你进入日志显示页面,按下
 ctrl+c可退出。 2 纯文本文件的多窗口功能借助vim来同时打开多个文件,多个文件窗口同时显示在屏幕上,在一般命令模式中: : sp /etc/xx.log #每执行一次就可以打开一个窗口,存在多个窗口时每个窗口大小相同
 可以使用【ctrl】+w放开之后↑或者↓来切换窗口。 3 按文件大小排序列出按照文件大小从小到大排序: ls -ldSr /etc/*
 -l: 使用长列表格式-d: 仅列出目录,不列出内容
 -S: 按照文件大小排序
 -r: 逆序
 去掉r就是从大到小排序
 4 打包时排除掉某些文件tar -zcvf /opt/app.tar.gz --exclude=/opt/app/media/* /app
 上面这条命令就排除掉了media文件夹及里面的文件。 5 借助alias,bash变量完成快捷操作5.1 使用alias设置命令别名比如每次启动uwsgi,daphne的时候会觉得命令很繁琐,可以使用alias设置命令别名: $ alias inituwsgi='uwsgi --ini uwsgi.ini'
$ alias stopuwsgi='uwsgi --stop uwsgi.pid'
$ alias restartuwsgi='uwsgi --restart uwsgi.pid'
$ alias initdaphne='daphne appserver.asgi:application -b 127.0.0.1 -p 9000'
$ alias  
 之后在相应的目录下直接使用inituwsgi,initdaphne就可以快速启动了。(取消是unalias)当然,按照上面这样写好的alias都是临时的,断开连接或者reboot之后就消失了。
 可以将这些变量写到
 ~/.bashrc文件中,这样重新启动也依然存在,可以一直使用。 vim ~/.bashrc
alias inituwsgi='uwsgi --ini uwsgi.ini'
alias stopuwsgi='uwsgi --stop uwsgi.pid'
alias restartuwsgi='uwsgi --restart uwsgi.pid'
alias initdaphne='daphne appserver.asgi:application -b 127.0.0.1 -p 9000'
 写入之后重启或者source ~/.bashrc才会生效。 5.2 使用bash变量自定义变量假设我的python虚拟环境在py37中,可以这样快速激活虚拟环境: $ venv="/opt/py37/bin/activate"
$ source ${venv}
 假设我的工作目录在多层目录下,也可以快速进入: $ workplace="/opt/work/app/001/"
$ cd ${workplace}
 和上面一样将这些变量写到~/.bashrc文件中: vim ~/.bashrc
venv="/opt/py37/bin/activate"
workplace="/opt/work/app/001/"
...
...
 写入之后重启或者source ~/.bashrc才会生效。 5.3 使用shell script完成复杂操作其他更多比较复杂的快捷操作可以使用shell脚本去完成,借助alias和变量的话就是完成一些比较简单常用的操作。此处略。 注:以上修改
 ~/.bashrc来自定义alias和变量都是在单个用户下定义的,如果想要设置所有用户共享的alias和变量,可以在/etc/profile.d/这个目录下自己写一个.sh文件。实际上在login shell中我们登陆后,系统先读/etc/profile/,然后是/etc/profile.d/里的文件,其中读到一个~/.bashrc_profile或者~/.bash_login或者/.profile(三者之一)里面会再去读我们的~/.bashrc。
  6 |