Linux shell命令

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
2
3
-l     use a long listing format  以长列表方式显示(详细信息方式)
-t sort by modification time 按修改时间排序(最新的在最前面)
-r reverse order while sorting (反序)

查看文件夹下的文件按照修改时间排序:【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

编辑配置文件的方式:

  1. 可以通过crontab -e命令编辑配置文件,此时编辑的文件是/var/spool/cron目录下的root文件;
  2. 直接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】查看所有执行过的命令

【↑】【↓】切换执行过的命令