Linux shell命令
vim程序编译器
vi分为3种模式,分别是一般命令模式,编辑模式与命令行模式。
一般命令模式:以vi/vim打开一个文件就直接进入一般命令模式,在该模式下可以进行光标移动、复制、粘贴、删除操作。
编辑模式:在一般命令模式下,输入【i、o、a、r】(大写也可),进入编辑模式。按【ESC】键回到一般命令模式。
命令行模式:在一般命令模式下,输入【: / ?】中的任何一个,进入到命令行模式,光标会移动到最下面一行,可以进行读取、保存、批量替换字符、退出vi、显示行号等操作。
编辑模式与命令行模式之间不可互相切换。
一般命令模式下的快捷键
考虑到记忆和使用,仅记录常用的和便于记忆的
移动光标
上下左右方向键可以每次往相应方向移动一个字符,数字+方向键可以移动数次
如【30↓】可以向下移动30行
【Ctrl+f】向下移动1页(相当于Page Down按键)
【Ctrl+b】向上移动1页(相当于Page Up按键)
【G】移动到最后一行,【nG】移动到第n行。
【0】(数字0)移动到行首
【$】移动到行尾
查找与替换
【/word】向光标之下查找word字符串
【?word】向光标之上查找word字符串
删除、复制与粘贴
【dd】删除(剪切)光标所在的一整行
【ndd】n为数字,删除(剪切)光标所在的向下n行
【yy】复制光标所在的一整行
【nyy】复制光标所在的向下n行
【p】将已复制的数据在光标下一行粘贴
【P】将已复制的数据在光标上一行粘贴
【u】恢复前一个操作
【Ctrl+r】重做上一个操作
命令行模式下的快捷键
【:w】将编辑的文件内容写入硬盘
【:q】退出vi
【:wq】保存并退出
bash shell命令
切换管理员
如果出现如图所示的$符号就代表你是普通权限。如果是#符号就代表你已经是管理员权限。
【su】:从普通用户切换为管理员用户
【exit】:退出管理员模式
【su】命令需要输入密码,密码是root用户密码(普通用户往往是不知道的),所以当我们想申请root权限时,可以使用【sudo su】命令。
【sudo su】是当前用户暂时申请root权限,所以输入的不是root用户密码,而是当前用户的密码。
查看文件内容
【tail】查看文件尾部内容(默认最后10行)
【tail -f】将文件最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
【tail -n】显示文件的尾部 n 行内容
【head】查看文件头部内容(默认前10行),与【tail】相对应
【more】查看文件全部内容,空格向下翻页(或【ctrl+f】,相应的【ctrl+b】向上翻页)
【cat】查看文件全部内容,如果文件内容很多,就会从头刷到尾,往往配合【grep】使用
【cat file | grep key】:查看文件,过滤条件为key
【cat file | grep key -A n】:查看过滤条件的后n行
【cat file | grep key -B n】:查看过滤条件的前n行
【grep】也可以与上面的【head】和【tail】搭配使用
另外【grep】可以多次重复使用,在原来的过滤结果上,继续过滤
文件操作
【mkdir 文件夹名】:新建文件夹
【cat >> 文件名】:创建文件(cat也可以查看文件)
【rm 文件名】:删除文件
【sz filename】:下载文件(可以同时下载多个文件)
【sz dir/*】:下载dir目录下所有文件
【rz】:从本地上传文件到linux
【sz】和【rz】命令如果没有,就需要安装
【ls】 :查看文件夹下的所有文件(包括文件夹)
【ls】支持三个参数
1 | -l use a long listing format 以长列表方式显示(详细信息方式) |
查看文件夹下的文件按照修改时间排序:【ls -lt】
进程相关
【ps -aux】: 查看进程状态(默认显示所有的)
【ps -aux | grep xxx】 :查询过滤条件为xxx的进程
【lsof -i:端口号】:查看某端口的进程信息
【lsof -p 进程号】:显示哪些文件被该pid
的进程打开
批量杀进程:
【ps aux | grep XYZG_LTF | grep -v grep|awk ‘{print$2}’|xargs kill】
python相关
启动脚本,后台打日志
nohup python3 launch.py --schema XYZG_LTF > /dev/null 2>&1 &
nohup 用于后台启动程序
激活虚拟环境
source /opt/coderoot/__virtualenv__/env_iSpider/bin/activate
退出虚拟环境:deactivate
借助python服务实现在服务器间互传文件
首先:将文件压缩/打包tar -jcv -f all.tar.bz2 *.jpg
其次:在文件所在目录使用命令python3 -m http.server
最后:在另一台服务器要保存文件的目录下执行:wget http://IP:端口/文件名
【wget】请求链接 or 下载文件
内存&磁盘
【df -h】: 查看磁盘使用情况
【top】:查看服务器进程资源占用情况%CPU
:CPU占用率;%MEM
:进程使用的物理内存百分比
crontab
编辑配置文件的方式:
- 可以通过
crontab -e
命令编辑配置文件,此时编辑的文件是/var/spool/cron
目录下的root文件; - 直接
vim /etc/crontab
,编辑该文件;
在以上两个文件中添加配置都会生效,并且保存之后无需重启服务即可生效。
重启:systemctl restart crond
查看crontab
运行状况的日志:tail -n 100 /var/log/cron
示例:
0 10-18/4 * * * root nohup /opt/coderoot/__virtualenv__/env_iSpider/bin/python /opt/coderoot/shdiSpider/shdiSpider/launch.py --schema PunishmentList_Cron >/dev/null 2>&1 &
其他
【ctrl+u】从光标处向前删除命令串
【ctrl+k】从光标处向后删除命令串
【ctrl+a】让光标移动到整个命令串最前面
【ctrl+e】让光标移动到整个命令串最后面
【cd】 切换路径
【tab】自动补全
【shfit+insert】粘贴,【ctrl+insert】复制(XShell中)
【wc】计数, 【wc -l】计算行数,例如【ls | wc -l / ls | wc -w】
【history】查看所有执行过的命令
【↑】【↓】切换执行过的命令