封尘网

让学习成为一种习惯!

Linux工作中常用到的一些命令

想要在Linux系统中得心应手,必要的技能还是要有的,很多自带的命令非常好使,功能强大,却不复杂的;掌握了会大大提高工作效率。

Linux工作中常用到的一些命令:

1、查看Web 日志中的出现404的访问IP和资源。(Apache和Nginx差不多)

awk '$9 ~404{print $1,$7}' /app/nginx/logs/access.log |sort|uniq -c

2、查看Web日志中访问最多的前十名IP地址。

awk '{print $1}' /app/nginx/logs/access.log |sort |uniq -c|head -10

3、踢出系统中已经登录的用户

[root@server ~]# who -Hud    查找用户

pkill -kill -t pts/4

4、硬盘相关测试

hdparm -t /dev/sda 读取速度测试
hdparm -I /dev/sda|grep Serial 序列号

5、一般僵尸进程很难直接kill掉,不过您可以kill僵尸爸爸。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。

ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9

或

kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`

6、查看tcp连接数 (ESTABLISHED状态)

netstat -n|grep ^tcp|awk '{print $NF}'|sort|uniq -c

7、利用sed工具直接修改配置文件,常用。

sed -i "s/keepcache=0/keepcache=1/" /etc/yum.conf

8、查看运行级别3开启的服务列表:

ls /etc/rc3.d/S*|cut -c 15-
或者
chkconfig --list|grep 3:on

9、解压Rpm包:

rpm2cpio zlib-devel-1.2.3-29.el6.x86_64.rpm |cpio -div

10、备份文件

cp /etc/hosts /etc/hosts.$(date +%F)

11、查找某类型的文件并计算总大小。

find / -name *.conf -exec wc -c {} \;|awk '{print $1}'|awk '{sum+=$1} END {print "sum=",sum}'

查找空文件:find / type f -size 0 -exec ls -l {} \;

12、配置grep匹配关键字带颜色。

echo "alias grep='grep --color'" >>~/.bashrc

13、使用dd命令快速生成大文件或者小文件的方法:

随机生成1百万个1K的文件

seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1

dd命令可以轻易实现创建指定大小的文件,如

dd if=/dev/zero of=test bs=1M count=1000

在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘

则可以

dd if=/dev/zero of=test bs=1M count=0 seek=100000

此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。

14、删除一个大文件,或清空大日志文件时使用,比如一个Web日志文件有180G之大,如果我们通过rm来删除极有可能造成系统IO资源耗尽。影响业务运行;

最佳方法:>/var/log/nginx/access.log #秒级清空数据
如果还要删除文件,再rm即可。

15、经常会遇到VI一个文件时路径很长,敲起来要麻烦,比如配置IP地址时,

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

此时输入:vi !$ 即可快速编辑复制后的文件:/etc/sysconfig/network-scripts/ifcfg-eth1 !$是运行上一条命令中最后一个文件路径。

16、在多个文件中替换掉相同的文本

例如:把当前目录里所有.txt文件中的Linux替换成Centos,你可以像这样运行它:

perl -i -pe 's/Windows/Linux/;' *.txt

要替换当前目录以及下层目录里所有文件中的Windows为Linux,你可以这样运行:

find . -name '*.txt' -print|xargs perl -pi -e 's/Linux/Centos/ig' *.txt

17、列出非当前用户运行的程序

ps -aux|grep -v `whoami`     或者: ps -ef |grep -v `whoami`

提醒:本文最后更新于 1460 天前,文中所描述的信息可能已发生改变,请谨慎使用。