linux常用命令
-
列出所有目录使用量,并按大小排序
ls|xargs du -h|sort -rn #不递归下级目录使用du -sh
-
查看文件排除以#开关和空白行,适合查看配置文件
egrep -v "^#|^$" filename sed '/#.*$/d; /^ *$/d'
-
删除空格和空行。
sed '/^$/d' filename #删除空行 sed -i '/^\s*$/d' filename #多个空格组成的空行 sed 's/ //g' filename sed 's/[[:space:]]//g' filename
-
linux换行\n转为windows换行\r\n:
perl -pi -e 's/\n/\r\n/' filename #问题:/bin/bash^M: 坏的解释器: 没有那个文件或目录 #翻了翻网络发现是在Windows下每一行结尾是`\n\` #linux是`/n` #因此linux读不了 #解决办法: sed -i 's/\r$//' filename.sh #意思是吧行尾的\r替换为空
-
删除#后的注释。
sed -i 's/#.*$//g' filename
-
踢出登录的用户,用who查看终端。
pkill -KILL -t pts/0
-
删除空文件。
find / -type f -size 0 -exec rm -rf {} \;
-
查找进程pid并kill。
pgrep nginx|xargs kill pidof nginx|xargs kill
-
获取当前IP地址,强大的awk,一个命令搞定。
ifconfig |awk -F"[ ]+|[:]" 'NR==2 {print $4}'
-
文本方式查看wtmp日志
utmpdump /var/log/wtmp
-
以内存大小排序列出进程
ps aux --sort=rss |sort -k 6 -rn
-
简单web server列出当前目录文件,端口8000:
python -m SimpleHTTPServer
-
以管道输入方式修改用户密码:
echo "password" |passwd –stdin root
-
生成SSH证书并复制到远端服务器:
ssh-keygen -y -f ~/.ssh/id_rsa && cat ~/.ssh/id_rsa.pub | ssh root@host "cat - >> ~/.ssh/authorized_keys"
-
shell下新建文件夹并进入,以下加入bashrc:
mkcd ( ){ mkdir $1 cd $1 }
-
通过SSH快速备份文件到另一服务器:
tar zcvf - back/ | ssh root@www.haiyun.me tar xzf - -C /root/back/
-
用wget下载整站:
wget -r -p -np -k http://www.haiyun.me #r递归 p下载所有文件 np不下载上级 k转换相对链接
-
Kill整个进程树:
pstree -ap 10277|grep -oP '[0-9]{4,6}'|xargs kill -9
-
生成随机字符:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
-
使用awk导出最后一列非空的数据:
awk -F "|" '{if($NF!="") print $NF}'
-
查找每行大于几位数的数据:
awk -F '' '{if(NF>6) print $0}'
-
awk计算列之和:
awk -F'----' 'BEGIN{total=0}{total+=$2}END{print total}'
-
获取HTML页面文本内容:
lynx -dump www.haiyun.me #包含页面的URL w3m -no-cookie -dump www.haiyun.me links -dump www.haiyun.me #对中文内容支持不好
-
端口重定向:
socat TCP4-LISTEN:1234,reuseaddr,fork, TCP4:www.baidu.com:80
-
行前或行后插入:
sed 'p;s/^.*$/--------/' file awk '{print $0;print "-------"}' file
-
行首或行尾插入:
sed 's/^/new/g' file sed 's/$/new/g' file
-
逐字换行:
awk -F "" '{for(i=1;i<=NF;i++) print $i}'
-
目录中大量文件删除:
ls | xargs rm
-
文本去重复:
sort -u file.txt #或使用uniq,只能去除连续重复的行,先用sort排序再用uniq去重 sort file.txt|uniq
-
lsof(list open files)
是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。如TC和UDP等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的lsof -a -i -n|grep 18795 ,定位到该进程连接到了外网IP
chown -R www:www www
chmod -R 777 file
fdisk -l
df -h
ls -lm
scp [参数] [从原路径] [存储到目标路径]
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
cp [options] source... directory
mv [options] source1 source2 source3 .... directory
rm -rf file
tar -cvzf test.tar.gz ac //压缩 ac文件为test.tar.gz
tar -tzvf test.tar.gz //列出压缩文件内容
tar -xzvf test.tar.gz //解压文件
touch 创建文件或修改文件/目录的时间戳
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。