Fork me on GitHub

sort、dirname、添加环境变量、修改主机名、别名IP、静态路由

1.split-按照指定行数或大小分割文件

-l:指定行数
-a:指定文件后缀长度
-d:使用数字作为后缀
-b:指定大小
# 以10行为单位对文件进行分割
split -l 10 /etc/inittab new_
split -l 10 -a 4 /etc/passwd new_
split -l 10 -d  /etc/passwd new_

2.sort-让重复的行相邻,默认按照ascii码升序排列

-n:按照数值排列
-r:逆序
-t:指定分隔符,默认是空格
-k:指定区域
-u:unique,唯一的,即将全文重复的行压缩为一行

 3.其他处理文本命令

# uniq:压缩相邻行,所以都是先用sort排序,再压缩,-c查看重复次数
dos2unix:将windows上的文件转为linux格式,windows换行符\r\n,
linux换行符\n,一般会把从windows上拿到linux上的脚本进行转换.
diff:查看两个文件的不同;
# tr:translate替换,-d删除内容中的字符;
tee:既显示执行结果也可以把结果保存到文件.
ls|tee -a >/tmp/ls.txt

4.basename、dirname、file、md5sum

basename /home/data/stuhehe_1.jpg  # 获取文件名
dirname /home/data/stuhehe_1.jpg   # 获取目录路径
file filename  # 查看文件类型
md5sum stuhehe_1.jpg  > md5.log  md5sum计算和校验文件的md5值
echo "asdasda" >> stuhehe_1.jpg
# -c校验,防止文件损坏或被篡改
md5sum -c md5.log  
stuhehe_1.jpg: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match

5.添加环境变量

export PATH=$PATH:/root  # 暂时生效
# 修改文件中PATH一行,对当前用户永久生效
vim ~/.bash_profile
# 修改 /etc/profile 文件,在文件末尾加上如下两行代码,对所有系统用户永久生效
PATH=$PATH:/usr/local/bin
export PATH
# 最后执行命令
source /etc/profile 
# 或执行点命令,使修改生效
. /etc/profile

6.date用于打包

date +%y-%m-%d
date +%Y-%m-%d  完整显示年份
date +%F  显示年月日
date +%H:%M:%S
date +%X  显示时分秒

date +%Y-%m-%d\ %H:%M:%S
# 相当于 
date +%Fd\ %X
date +%Fd\ %T

# 当前时间加一天
date +%F -d "+1day" 
date +%F -d "+24hour"
tar zcf a_`date +%F`.tar.gz a
tar zcf a_$(date +%F).tar.gz a

7.paste-左右方向合并两个文件

# -d:指定分隔符
# -s:后面跟一个文件时,将会把竖着的数据横着显示
案例:把一个文件的奇数行跟偶数行分别对应,中间用=连接
cat hehe.txt
111111
aaaaaa
222222
bbbbbb
333333
cccccc

paste -sd '=\n' hehe.txt
111111=aaaaaa
222222=bbbbbb
333333=cccccc
说明:
paste -s hehe.txt
111111	aaaaaa	222222	bbbbbb	333333	cccccc

paste -sd '=' hehe.txt   # 指定一个分隔符时
111111=aaaaaa=222222=bbbbbb=333333=cccccc

paste -sd '=#' hehe.txt  # 指定两个分隔符时
111111=aaaaaa#222222=bbbbbb#333333=cccccc
所以我们可以把第二个分隔符换成\n.
# sed模式空间
sed 'N;s#\n# #g' hehe.txt

8.权限

# 某用户对某文件有读写权限,能不能删除或修改文件,取决于该文件上级目录的权限;
# 默认权限是安全界限的临界点,工作中尽量给这个临界点,或者小于临界点.
groupadd incahome
useradd oldboy -g incahome
usermod -g incahome oldboy

9.定时任务

创建定时任务相当于在编辑这个文件
cat  /var/spool/cron/root
* 23,00-07/1 * * * /bin/bash /usr/loacl/nginx/restart.sh
上面的例子并不表示晚上23点和早上0-7点之间每隔一小时重启nginx,因为第一列你写了*
想要每分钟都执行这个脚本,第一列应该写00

10.inode被填满的企业案例:

centos5  sendmail临时队列目录 /var/spool/clientmqueue
centos6  postfix临时队列目录  /var/spool/postfix/maildrop
执行定时任务时默认会给root发邮件,如果邮件服务不开就会把邮件发到上述目录;
当定时任务结尾不加>/dev/null 2>&1的时候,上述目录就会存在大量小文件;
解决办法:
a.开启邮件服务(一般不会这么做);
b.在定时任务后面加上输出重定向.
删除小文件的办法:
cd /var/spool/postfix/maildrop;ls|xargs rm -f
使用top发现一个进程占用CPU高,使用命令strace -f pid,追踪分析原因.

11.centos下使用dig命令

yum -y install bind-utils
dig @8.8.8.8 www.baidu.com +trace
# 使用命令解析域名
nslookup
host
ping

12.centos6修改主机名的规范步骤

a.hostname
b.vi /etc/sysconfig/network
c.vi /etc/hosts
# 如果用setup--DNS设置修改主机名,则永久生效(命令行不生效)
# 只是修改了两个文件,还得用hostname修改一下

13.linux网卡支持多个ip地址

# 别名IP,也称虚拟IP
ifconfig eth0:0 192.168.165.7/24 up
# 网卡后面冒号跟的数字范围0-254 
ifconfig eth0:0 down
# 用ip这个命令添加:
ip addr add 192.168.165.8/24 dev eth0:1

14.已知一个端口,查看端口对应的服务

lsof -i :22
netstat -tunlp | grep 22
t:TCP,
u:UDP,
n:NUMBER,
l:LIST,
p:程序名

15.添加静态路由

ip10.10.10.10/24,网关10.10.10.1,需要增加路由:到网段192.168.0.0/24,通过ip10.10.10.2出去
route add default gw 10.10.10.1
route add -net 192.168.0.0/24 gw 10.10.10.2

 

posted @ 2018-11-23 20:08  法外狂徒  阅读(292)  评论(0编辑  收藏  举报