运维常用命令(不断更新中)T_T

1,查看占用内存最多的前15个程序

ps -aux|awk '{print $4"\t"$11}'|grep -v MEM|sort -r|uniq -c |head -15.

 

2、lsmod  查看linux系统中已经加载的模块数
比如说我们可以查看系统中是否已经加载ip_vs的模块 ipvsadm  :lsmod | grep ip_vs

3、lsof(list open files)是一个列出当前系统打开文件的工具
lsof 常见的用法是查找应用程序打开的文件的名称和数目。可用于查找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
例如:查看22端口现在运行的情况
# lsof -i :22
查看所属root用户进程所打开的文件类型为txt的文件:
# lsof -a -u root -d txt
在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统,如下:
# lsof /GTES11/
当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:
首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:
# lsof |grep /var/log/messages
syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)
从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:
# head -n 10 /proc/1283/fd/2
从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:
cat /proc/1283/fd/2 > /var/log/messages
4、dmidecode  帮助收集电脑系统信息的管理系统
    dmidecode -s system-serial-number   //显示系统序列号   -s, --string KEYWORD Only display the value of the given DMI string   只显示指定DMI字符串的信息
    dmidecode -t memory      //显示内存信息  -t, --type TYPE       Only display the entries of given type  #只显示指定条目的信息
    dmidecode -t 11       #显示OEM信息
5、mii-tool 这是Linux下专门设置网卡工作模式的命令
    (1) 查看网卡的工作模式,输入命令:#mii-tool -v        “100BaseTx-FD”意为100M Full Duplex。
    (2) 更改网卡的工作模式,输入命令:#mii-tool -F media [interface]   
例如,设置网卡工作在10M半双工模式下,输入命令:#mii-tool -F 10baseT-HD eth0
    (3)恢复网卡的自适应工作模式,输入命令:#mii-tool -r eth0
6、sort ~/.bash_history | uniq -c | sort -nr | head      //可以查看系统用户最常使用的几个命令,其中uniq -c 即打印每一重复行出现的次数。sort -n是按数值排序 -r是指逆序显示。
7、uptime 查看系统负载值  1,5,15分钟
     /proc/loadavg  也显示了系统的负载值
8、显示消耗内存/CPU最多的10个进程
ps aux | sort -nk +4 | tail
ps aux | sort -nk +3 | tail
9、查看apache的并发请求数及其TCP连接状态
netstat -n|awk '/^tcp/{++S[$NF]} END {for (a in S) print a,S[a]}'
10、把当前目录下*.sh文件改名为*.SH
find . -name "*.sh" | sed 's/(.*).sh/mv ? 1 .SH/ ' |sh
find . -name "*.sh" | sed 's/(.*).sh/mv & 1 .SH/ ' |sh
11、ssh执行远程的程序,并在本地显示
ssh -n -l root 10.48.30.197 "ls -l /root"
12、以http方式共享当前文件夹的文件
python -m SimpleHTTPServer
在浏览器中输入:http://IP:8000/ 即可下载当前目录下的文件。
13、locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。
locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个
locate chdrv : 寻找所有叫 chdrv 的档案
find / -name "*chdrv*" -print   同上,区别:find只查找具体的文件和目录,显示数目要比上述命令小。
14、which  取得程序名列表。命令位置的具体路径。
root@svn-30-194:~# which top
/usr/bin/top
15、Linux 禁ping和开启ping操作
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
如果要恢复,只要:
# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 

、linux启动过程

开启电源 --> BIOS开机自检 --> 引导程序lilo或grub --> 内核的引导(kernel boot)--> 执行init(rc.sysinit、rc)--> mingetty(建立终端) --> shell

2、网卡绑定多IP
ifconfig eth0:1 192.168.1.99 netmask 255.255.255.0

3、设置DNS、网关
echo "nameserver 202.16.53.68" >> /etc/resolv.conf
route add default gw 192.168.1.1

4、弹出、收回光驱
eject
eject -t

5、用date查询昨天的日期
date --date=yesterday

6、查询file1里面空行的所在行号
grep ^$ file

7、查询file1以abc结尾的行
grep abc$ file1

8、打印出file1文件第1到第三行
sed -n '1,3p' file1
head -3 file1

9、清空文件
true > 1.txt
echo "" > 1.txt
> 1.txt
cat /dev/null > 1.txt

10、删除所有空目录
find /data -type d -empty -exec rm -rf {} \;

11、linux下批量删除空文件(大小等于0的文件)的方法
find /data -type f -size 0c -exec rm -rf {} \;
find /data -type f -size 0c|xargs rm –f

12、删除五天前的文件
find /data -mtime +5 -type f -exec rm -rf {} \;

13、删除两个文件重复的部份,打印其它
cat 1.txt 3.txt |sort |uniq

14、攻取远程服务器主机名
echo `ssh $IP cat /etc/sysconfig/network|awk -F = '/HOSTNAME/ {print $2}'`

15、实时监控网卡流量(安装iftop)
/usr/local/iftop/sbin/iftop -i eth1 -n

16、查看系统版本
lsb_release -a

17、强制踢出登陆用户
pkill -KILL -t pts/1

18、tar增理备份、还原
tar -g king -zcvf kerry_full.tar.gz kerry
tar -g king -zcvf kerry_diff_1.tar.gz kerry
tar -g king -zcvf kerry_diff_2.tar.gz kerry

tar -zxvf kerry_full.tar.gz
tar -zxvf kerry_diff_1.tar.gz
tar -zxvf kerry_diff_2.tar.gz

19、将本地80端口的请求转发到8080端口,当前主机外网IP为202.96.85.46
-A PREROUTING -d 202.96.85.46 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.9.10:8080

20、在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh
crontab -e
0 6-12/2 * 11 * /usr/bin/httpd.sh
 

本文出自 “生锈的老枪_技术博客” 博客,转载请与作者联系!

你可能感兴趣的:(head,操作技巧)