原文地址:http://blog.csdn.net/zhao1999qian/article/details/78289204
(1)shell重定向&>file、2>&1、1>&2的区别
shell上:
0表示标准输入
1表示标准输出
2表示标准错误输出
>默认为标准输出重定向,与1>相同
2>&1 意思是 把标准错误输出 重定向到 标准输出
&>file 意思是 把标准输出 和标准错误输出 都重定向到文件file中。
举例:nohup python aaa.py >push.log 2>&1 &
最后一个&表示作为后台进程开启
2>&1 将标准错误输出到标准输出中,也就是push.log中
>push.log 将标准输出到文件push.log中
nohup 与&联合使用,忽略终端信号,后台运行程序
(2)wc -l push.log 显示文件push.log的行号
(3)ps -ux 显示各个进程的cpu占用率
(4)top 动态显示各个进程的cpu占用率
(5)shift+g(即G) 跳到vim文本的最后一行 gg(两次g)跳到vim文本的第一行
(6)kill -9 pid 杀死进程号为pid的进程
kill -stop pid 暂停 kill -CONT pid 继续
(7)结束父进程p_pid开启的子进程 pkill -9 -P $p_pid
(8)显示文件的最后n行 tail -n push.log
显示文件的前 n行 head -n push.log
(9)批量删除进程
ps -ef|grep client|grep -v grep|cut -c 9-15|xargs kill -9
|:管道,左边的是输出作右边的输入
ps -ef:输出所有进程的详细信息
grep client: 挑出ps -ef的输出中含有client进程
grep -v grep: 在上条挑出的结果中再去掉grep本身,“grep client”这命令也有client不是?
cut -c 9-15: 在挑出的行裁剪第9到第15个字符,结果就是PID(进程号)
xargs kill -9: 因为kill命令不支持管道,所以用xargs命令传参,个人觉得xargs命令是一个神奇的命令,对编写单行命令很有帮助
(10)cut -d: -f2 表示取出以":"为分隔符的第二个元素。 详情#cut --help
cut -d' ' -f2 表示取出以空格为分隔符的第二个元素
(11)awk -f ':' '{print $2}' 和上面(10)的作用能够一样。
awk ‘NR==1 {print $1}’filename 打印第一行的第一个字段,默认分隔符为 空格或制表符TAB (都可以)。
#vim ~/.vimrc 在根目录新建文件.vimrc
在新文件.vimrc里写入:set number
再用vim打开文件就会显示行号
(13)vim 同一个文件内复制 normal模式下: yy 是复制 p 是粘贴 dd 是删除整行
不同文件之间的复制 normal模式下: yy+ 是复制 p 是粘贴 nyy+ 是复制n行 +号应该是=号,因为没有按Shift按键
系统粘贴板与vim之间的复制: "+y 复制到系统剪贴板 "+p 粘贴
(1. `$ vim --version | grep clipboard`查看vim是否支持clipboard功能2. 如果`+clipboard`则跳过这一步; 如果显示的是`-clipboard`说明不支持, 需要`$ sudo apt install vim-gtk`, 因为默认安装的vim有些功能不支持, 安装`vim-gtk`包可以`get the extra features`3. 使用`+`寄存器与系统粘贴板互通数据, `"+yy`等操作)
(14) read 命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY。
read命令常用选项:-a,-p,-s,-t,-n
不带参数:
#read name
lisi
#echo $name
lisi
带参数-p: 输入提示字符串
#read -p "enter your name:" name
enter your name: zhangsan
#echo $name
zhangsan
(15) touch 创建新文件 touch test.txt
mkdir 创建新文件夹 mkdir test.txt
(16)pscp同时对多台linux主机执行相同命令
#pscp -h ip-list -p "python test.py"
#pscp -h ip_list /root/test.txt
(17)split 切割文件
split -l 1000 text.txt new_test_
会将test.txt切割成若干个文本,每个文本为1000行,文本的名字后缀为aa ab ac ...
(18)wc -l filename 显示文filename的行数
(19)php换行的问题
如果需要将结果输出到浏览器或打印到显示器,代码中使用</br>;如果只是在源代码中换行,则使用\n或\r\n。浏览器识别不了php中的\n或\r\n
(20)linux下面利用nohup ./test.sh >nohup.out &开启后台进程时
如果test.sh下面同事执行多个命令,如果没有用"&&"连接同事开启,则会顺序执行这些命令。
(21)vim下normal模式下进行查找为"/",查找下一个为“n”。
(22)格式化为进入/目录下 #rm -rf *
#cd /
shell上:
0表示标准输入
1表示标准输出
2表示标准错误输出
>默认为标准输出重定向,与1>相同
2>&1 意思是 把标准错误输出 重定向到 标准输出
&>file 意思是 把标准输出 和标准错误输出 都重定向到文件file中。
举例:nohup python aaa.py >push.log 2>&1 &
最后一个&表示作为后台进程开启
2>&1 将标准错误输出到标准输出中,也就是push.log中
>push.log 将标准输出到文件push.log中
nohup 与&联合使用,忽略终端信号,后台运行程序
(2)wc -l push.log 显示文件push.log的行号
(3)ps -ux 显示各个进程的cpu占用率
(4)top 动态显示各个进程的cpu占用率
(5)shift+g(即G) 跳到vim文本的最后一行 gg(两次g)跳到vim文本的第一行
(6)kill -9 pid 杀死进程号为pid的进程
kill -stop pid 暂停 kill -CONT pid 继续
(7)结束父进程p_pid开启的子进程 pkill -9 -P $p_pid
(8)显示文件的最后n行 tail -n push.log
显示文件的前 n行 head -n push.log
(9)批量删除进程
ps -ef|grep client|grep -v grep|cut -c 9-15|xargs kill -9
|:管道,左边的是输出作右边的输入
ps -ef:输出所有进程的详细信息
grep client: 挑出ps -ef的输出中含有client进程
grep -v grep: 在上条挑出的结果中再去掉grep本身,“grep client”这命令也有client不是?
cut -c 9-15: 在挑出的行裁剪第9到第15个字符,结果就是PID(进程号)
xargs kill -9: 因为kill命令不支持管道,所以用xargs命令传参,个人觉得xargs命令是一个神奇的命令,对编写单行命令很有帮助
(10)cut -d: -f2 表示取出以":"为分隔符的第二个元素。 详情#cut --help
cut -d' ' -f2 表示取出以空格为分隔符的第二个元素
(11)awk -f ':' '{print $2}' 和上面(10)的作用能够一样。
awk ‘NR==1 {print $1}’filename 打印第一行的第一个字段,默认分隔符为 空格或制表符TAB (都可以)。
NR==1 定位在file的第一行,print $1 显示第一列内容
(12)vim打开文件显示行号#vim ~/.vimrc 在根目录新建文件.vimrc
在新文件.vimrc里写入:set number
再用vim打开文件就会显示行号
(13)vim 同一个文件内复制 normal模式下: yy 是复制 p 是粘贴 dd 是删除整行
不同文件之间的复制 normal模式下: yy+ 是复制 p 是粘贴 nyy+ 是复制n行 +号应该是=号,因为没有按Shift按键
系统粘贴板与vim之间的复制: "+y 复制到系统剪贴板 "+p 粘贴
(1. `$ vim --version | grep clipboard`查看vim是否支持clipboard功能2. 如果`+clipboard`则跳过这一步; 如果显示的是`-clipboard`说明不支持, 需要`$ sudo apt install vim-gtk`, 因为默认安装的vim有些功能不支持, 安装`vim-gtk`包可以`get the extra features`3. 使用`+`寄存器与系统粘贴板互通数据, `"+yy`等操作)
(14) read 命令用于从终端或文件中读取用户输入,它读取整行输入,如果没有指定名称,读取的行被赋值给内部变量REPLY。
read命令常用选项:-a,-p,-s,-t,-n
不带参数:
#read name
lisi
#echo $name
lisi
带参数-p: 输入提示字符串
#read -p "enter your name:" name
enter your name: zhangsan
#echo $name
zhangsan
(15) touch 创建新文件 touch test.txt
mkdir 创建新文件夹 mkdir test.txt
(16)pscp同时对多台linux主机执行相同命令
#pscp -h ip-list -p "python test.py"
#pscp -h ip_list /root/test.txt
(17)split 切割文件
split -l 1000 text.txt new_test_
会将test.txt切割成若干个文本,每个文本为1000行,文本的名字后缀为aa ab ac ...
(18)wc -l filename 显示文filename的行数
(19)php换行的问题
如果需要将结果输出到浏览器或打印到显示器,代码中使用</br>;如果只是在源代码中换行,则使用\n或\r\n。浏览器识别不了php中的\n或\r\n
(20)linux下面利用nohup ./test.sh >nohup.out &开启后台进程时
如果test.sh下面同事执行多个命令,如果没有用"&&"连接同事开启,则会顺序执行这些命令。
(21)vim下normal模式下进行查找为"/",查找下一个为“n”。
(22)格式化为进入/目录下 #rm -rf *
#cd /
#rm -rf *
(23)wireshark或者tcpdump抓的包,如何将包的内容中的中文字符显示出来.
选中某条->右键“追踪流”->"TCP流"->下面的“显示和保存数据为” 选中“原始数据”或“RAW”->"Save as"为文本文件.txt->用notepad++或者EditPlus之类的文本编辑器打开即可。
如果“Accept”设置为gzip需要进行gzip解密,其他的加密方式也要解密。
(24)、linux下md5值的计算
#echo filename | md5sum 然后即输出filename文件的md5值。