常用技巧积累


-----vim技巧-----

grep -v "^$""    #过滤空白符

grep -v "^#"      #不显示以#号开头的行

#在全部内容的行首添加 # 号注释

:% s/^/#/g

#在1~10 行首添加 # 号注释

:1,10 s/^/#/g

#删除所有内容

:.,$d


x 删除后面的字符

X 删除前一个字符

3x 删除3个字符

dd 就是删除一行

D 删除到行尾






echo -n 不换行输出

echo -e 处理特殊字符

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

例:

#echo -e "a\bdddd"

dddd

$echo -e "a\ndddd" //自动换行

a

dddd




#arping 192.168.1.1 //测试IP是否有冲突






-----find实用命令-----

#删除一个月之前的所有文件

# find . -mtime +29 -exec rm -rf {} \;

#统计排序大小一周之前大于100M的文件

# find . -size +100M -a -mtime 7  -exec ls -lhS {} \;

#查询当前目录下前一天所有文件总大小:

# find . -mtime -1 -type f -ls |awk '{sum+=$1}END{print sum}'

1457223926

#目录下30分钟内的文件,并逐行为这个文件添加行头 1234

# find . -type f -amin -30 -exec sed -i 's/^/1234/' {} \;






查看当前TCP连接的状态和对应的连接数量,一般只关心TIME_WAIT的个数。端口的数量只有65535个,占用一个少一个,会严重的影响到后继的新连接。这种情况下,我们就有必要调整下Linux的TCP内核参数,让系统更快的释放TIME_WAIT连接。

[root@system1 ~]# sysctl -p

[root@system1 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

ESTABLISHED 43

#vim /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1

#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1

#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;

net.ipv4.tcp_fin_timeout

#修改系統默认的 TIMEOUT 时间。






lsof -a -u root -d txt                         #查看所属root用户进程所打开的文件类型为txt的文件

# lsof |grep /var/log/messages

syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages (deleted)

如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用







# 总核数 = 物理CPU个数 X 每颗物理CPU的核数

# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)

cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l






#----lscpu命令,查看的是cpu的统计信息----

# lscpu

Architecture:          i686            #cpu架构

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian  #小尾序

CPU(s):                4              #总共有4核

On-line CPU(s) list:  0-3

Thread(s) per core:    1              #每个cpu核,只能支持一个线程,即不支持超线程

Core(s) per socket:    4              #每个cpu,有4个核

Socket(s):            1              #总共有1一个cpu

Vendor ID:            GenuineIntel    #cpu产商 intel

CPU family:            6

Model:                42

Stepping:              7

CPU MHz:              1600.000

BogoMIPS:              5986.12

Virtualization:        VT-x            #支持cpu虚拟化技术

L1d cache:            32K

L1i cache:            32K

L2 cache:              256K

L3 cache:              6144K

#查看/proc/cpuinfo,可以知道每个cpu信息,如每个CPU的型号,主频等。

#cat /proc/cpuinfo

processor    : 0

vendor_id    : GenuineIntel

cpu family    : 6

model        : 42

model name    : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz








#修改hostname有几种方式?

1: hostname DB-Server                            --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改

2: echo DB-Server  > /proc/sys/kernel/hostname    --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改

3: sysctl kernel.hostname=DB-Server              --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改

4: 修改/etc/sysconfig/network下的HOSTNAME变量      --需要重启生效,永久性修改。







-----selinux常用查看命令-----

#semanage login -l                            //查看当前SELinux用户的状态

#semanage login -a -s unconfined_u username  //限制了添加-a普通用户userame,并为这种约束定义-s user_u上下文

id -Z                                        //unconfined 不受任何selinux设置限制

#vim /sys/fs/selinux/booleans/selinuxuser_ping //里面的参数通常是1,它允许用户执行ping和traceroute

#getsebool user_exec_content                  //on它说明允许用户执行自己主目录中或/tmp目录中的脚本

#setsebool user_exec_content off

#getsebool -a                                  //显示全部可用的布尔型参数列表

#semanage boolean -l                          //显示每个布尔型参数的更多信息,配合grep使用

#vim /etc/selinux/targeted/comtexts/files/file_contexts  //配置默认的上下文

#ps -eZ                                      //列出每个-e进程的selinux上下文

#ausearch -m avc -c sudo                      //审计搜索命令,过滤某些特定类型的问题 访问向量缓存(access vecrot cache)消息,-c允许我们定义通常在日志中使用的名字,如httpd,su

#sealert -a /var/log/audit/audit.log          //提供列表分析

selinux上下文定义了使用正则表达式  (/.*)?  这个正则被广泛用于匹配一个目录及其包含的所有文件  例: /var/ftp(/.*)?

















你可能感兴趣的:(常用技巧积累)