Linux 相关小知识tips

来源:互联网 发布:trunk端口配置代码 编辑:程序博客网 时间:2024/06/01 10:03
(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 (都可以)。

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值。

原创粉丝点击