工作中Linux高频命令总结汇总

watch

watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了!

1.命令格式:

watch[参数][命令]

2.命令功能:

可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令

3.命令参数:

-n或–interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。

-d或–differences 用-d或–differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。

-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。

-h, --help 查看帮助文档

4.使用实例:

实例1:

命令:每隔一秒高亮显示网络链接数的变化情况

watch -n 1 -d netstat -ant
说明:

其它操作:
切换终端: Ctrl+x
退出watch:Ctrl+g

实例2:每隔一秒高亮显示http链接数的变化情况

命令:

watch -n 1 -d ‘pstree|grep http’

说明:

每隔一秒高亮显示http链接数的变化情况。 后面接的命令若带有管道符,需要加’'将命令区域归整。

实例3:实时查看模拟攻击客户机建立起来的连接数

命令:

watch ‘netstat -an | grep:21 | \ grep<模拟攻击客户机的IP>| wc -l’

说明:

实例4:监测当前目录中 scf’ 的文件的变化

命令:

watch -d ‘ls -l|grep scf’

实例5:10秒一次输出系统的平均负载

命令:

watch -n 10 ‘cat /proc/loadavg’

strace

1.比如我们要跟踪一条mount命令执行过程中有哪些堆栈的调用:

mount -t nfs4 -o rw,hard,intr,timeo=600,actimeo=0,proto=tcp,rsize=262144,wsize=262144 192.168.8.164:/app-temp/recovery/151 /tmp/flashbackup_tmp/210 2>&1

可以这样做:

strace  -o result.txt mount -t nfs4 -o rw,hard,intr,timeo=600,actimeo=0,proto=tcp,rsize=262144,wsize=262144 192.168.8.164:/app-temp/recovery/151 /tmp/flashbackup_tmp/210 2>&1

2.指定进程号pid进行追踪:

strace -o output.txt -T -tt -e strace=all -p pid(待追踪进程的进程号)
-f 可以跟踪所有由 fork 产生的子进程(vfork不被跟踪)
-F 会尝试跟踪 vfork 的调用
-ff 如果有 -o $file,则所有进程的跟踪结果会输出到 $file.$pid 中,其中 $pid 为各进程的进程号
-t 输出时加上时间信息
-tt 输出时加上时间信息(微秒级)
-T 输出加上每次系统调用消耗的时间
-v 输出完整的系统调用信息(默认部分频繁使用的调用不输出)

ln

ln -s /home/kingbase/archive_log/ wal#wal为软连接连接名

mount

#例如挂载.iso文件
mount /root/xxx.iso -o loop /mnt/
umount /root/xxx.iso

ps -aux 和ps -ef

ps -ef#表示查看全格式的全部进程。

-e 显示所有进程
-f 全格式
在这里插入图片描述
字段含义如下:
UID PID PPID C STIME TTY TIME CMD
root 24410 1 0 11:36 ? 00:00:03 python /flashclient/dbfensvr.py start

UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令

ps -aux
ps -aux 是最常用的 BSD 风格选项组合,其中的 a 简单的说,表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户。
在这里插入图片描述

创建一个100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1
  • /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
  • /dev/zero,是一个输入设备,你可你用它来初始化文件。
  • /dev/null——它是空设备,也称为位桶(bit
    bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
  • /dev/zero——该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
dd if=“inputFileName” of=”outFileName” bs=”块大小” count=“块个数”

块大小可以使用各种计量单位
字节(1B) – c 字(2B) – w
块(512B) – b 千字节(1024B) – k
兆字节(1024K) – M 吉字节(1024M) – G

Linux清除cache

echo 3 > /proc/sys/vm/drop_caches

在这里插入图片描述
补充:


# 释放缓存区内存的方法

1)清理pagecache(页面缓存)

# echo 1 > /proc/sys/vm/drop_caches     或者 # sysctl -w vm.drop_caches=1

2)清理dentries(目录缓存)和inodes

# echo 2 > /proc/sys/vm/drop_caches     或者 # sysctl -w vm.drop_caches=2

3)清理pagecache、dentries和inodes

# echo 3 > /proc/sys/vm/drop_caches     或者 # sysctl -w vm.drop_caches=3

注:上面三种方式都是临时释放缓存的方法,要想永久释放缓存,需要在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效即可!

Linux截取某个文件指定行输出到指定新文件

head -100  oldfile > newfile #截取oldfile前100行到newfile
tail -100  oldfile > newfile
sed -n '100,200p' oldfile > newfile #截取oldfile中的100到200行到newfile中

Linux删除N天前的文件

find /u01/app/oracle/diag/rdbms/orcl/orcl/alert/ -type f -name '*.xml' -mtime +1 -exec rm {} \;

基本思路是,find找到相应的文件,然后执行某个命令。这里是找到N天前的文件,然后执行删除指令。

  • -mtime: 指定文件的修改时间,以天为单位。+N是N天以前,-N是N天以内,N是第N天。另外有,-mmin按分钟为单位指定文件的修改时间。还另外可以另外的参数指定文件上次使用的时间等。
  • -name ‘*.txt’: 指定查找的文件名的模式
  • -type f: 指定查找的为文件,而非文件夹或文件链接等

查看当前目录占用空间大小

du -sh /u01/app/oracle/diag/rdbms/orcl/orcl/

添加用户、设置密码

1.useradd test
2.passwd test
3. 删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。 

grep查询文件类容

grep -r 关键字 文件所在的目录

Linux下有三个命令:ls、grep、wc。通过这三个命令的组合可以统计目录下文件及文件夹的个数。

  • 统计当前目录下文件的个数(不包括目录)
ls -l | grep "^-" | wc -l
  • 统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
  • 查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR | grep "^d" | wc -l
  • 查看某目录下文件夹(目录)的个数(不包括子目录)
ls -l | grep "^d"|wc -l

说明:

grep "^-" 过滤ls的输出信息,只保留一般文件,只保留目录是grep "^d"。
wc -l 统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。

这样就可以把图中的结果写入到x.txt,是覆盖写

临时和永久关闭Selinux

临时关闭:

[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive



永久关闭:

[root@localhost ~]# vim /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled

重启服务reboot

centos 查看防火墙状态

关闭防火墙 
1) 永久性生效,重启后不会复原

开启: chkconfig iptables on

关闭: chkconfig iptables off

2) 即时生效,重启后复原

开启: service iptables start

关闭: service iptables stop

查看防火墙状态: service iptables status

CentOS 7默认使用的是firewall作为防火墙,使用iptables必须重新设置一下

1、直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

2、设置 iptables service

yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口3306

vi /etc/sysconfig/iptables 

增加规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

最后重启系统使设置生效即可。

systemctl start iptables.service #打开防火墙

systemctl stop iptables.service #关闭防火墙

zip 、tar

  • zip
zip test.zip test.txt  #添加压缩文件
zip test.zip test1.txt  #移动文件到压缩包
zip -d test.zip test.txt    #删除test.txt

zip -r test.zip ./*          #压缩当前全部文件到test.zip
zip test2.zip test2/*   #打包目录
zip test3.zip tests/* -x tests/ln.log  #压缩目录,除了tests/ln.log

zip -r test.zip ./* -P 123  #设置密码(明文设置密码不太安全)
zip -r test.zip ./* -e   #交互设置密码(安全)

#设置压缩比
#-0不压缩,-9最高压缩,默认为-6
zip test.zip test.txt -6
#常用命令选项
-d   从压缩文件内删除指定的文件。
-m   把文件移到压缩文件中。
-0-9 压缩比
-r   递归处理,所有文件和子目录一并处理。
-x<范本样式>   压缩时排除符合条件的文件。
-c   交互为每一个文件设置注释
-z   交互多行注释,英文句话.来表示结束
-e   交互设置密码
-P   直接设置密码
  • tar
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 
tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
 tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar -xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

测试端口可否连接telnet(window、Linux都有)

telnet 192.168.127.130 6379

telnet IP 端口 
或者
telnet 域名 端口

netstat(window、Linux都有)

netstat -a              #列出所有连接
netstat -at  		    #列出所有tcp连接
netstat -au             #列出所有udp连接(window无u)
netstat -nl|grep port   #查询端口号是否占用
netstat -apn|grep server#查询程序占用端口

lsof

lsof  -iTCP           #仅显示TCP连接(同理可获得UDP连接)
lsof  -i :22          #使用-i:port来显示与指定端口相关的网络信息

du查看目录大小

du -sh ./*

更多
官方(需要科学上网)

Linux下查看换行符是否有^M

cat -A xxxx

将文件a的所有者以及权限复制给文件b、file2、file3

chmod --reference=a b file2 file3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值