Linux运维命令总结(-)
1、创建目录/data
Make directory 创建目录的命令mkdir filename,例子如下:
创建单个目录
[root@oldboy ~]# mkdir /data
递归创建多个目录
[root@oldboy ~]# mkdir /data/oldboy/a/b
2、显示/data目录的信息,例子如下:
ls 显示文件和目录内容
-l long type 长格式显示 –d显示目录的属性信息 –h 以{K,G,M}格式显示
-t 以文件的时间排序 –r倒序排列 –a显示当前目录的所有文件包括隐藏文件,全部显示
[root@oldboy /]# ls -ldh data/
drwxr-xr-x. 2 root root 4.0K Mar 25 11:50 data/
3、创建文件oldboy.txt,例子如下:
Touch创建空白文件,touch命令的主要作用是用来修改文件的时间戳
时间戳:(stat filename 查看文件的时间戳)
access查看文件内容的时间
modify 往文件中添加或者删除文件的时间
change 改变文件权限书的修改时间
[root@oldboy data]# touch oldboy.txt
图一
[root@oldboy data]# echo "I am studying linux." >> oldboy.txt
批量创建文件
[root@oldboy data]# touch test/stu{1..1000}
4、清屏,清除当前窗口的所有正在显示的内容
[root@oldboy data]# clear
5、显示oldboy.txt文件的内容
Cat 显示文件的内容
[root@oldboy data]# cat oldboy.txt
I am studying linux.
>> 代表输出重定向(追加到现有文件内容的后面不会清除已有的文件内容)
<< 代表输入重定向(追加输入重定向,后面跟上字符串)
[root@oldboy data]# cat >> a.txt << EOF #一般会在写脚本中常用
> My name is guohua!
> My ages is 20!
> My sex man!
> EOF
[root@oldboy data]# cat a.txt
My name is guohua!
My ages is 20!
My sex man!
6、绝对路径与相对路径区别
图二
(1)绝对路径:一切都从/根目录开始进行查找,称之为绝对路径;例子如下:
[root@oldboy ~]# cd /etc/sysconfig/network-scripts/
(2)相对路径:一切不从/根目录开始的路径称之为相对路径;例子如下:
[root@oldboy network-scripts]# cat ../network
[root@oldboy data]# cd test/
7、xargs 从标准输入中进行分组
从b.txt文件中输入每行按两个字段排序
[root@oldboy data]# xargs -n 2 < b.txt
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
8、cut按一定的规则提取文件中的内容
提取b.txt文件中的第一个字段,以空格为分割
-d 分割符 –f 字段提取第一列 –c 按字符提取 –b按字节提取
[root@oldboy data]# cut -d ' ' -f1 b.txt
1
5
9
13
17
9、重定向特殊符号
图三
>或>> filename 2>&1 等于 &>
2>&1代表输出正确重定向做什么操作输出错误重定向就做什么操作,例子如下:
[root@oldboy data]# echo "welcome to beijng." >> oldboy.txt 2>&1
[root@oldboy data]# cho "welcome to beijng." >> oldboy.txt 2>&1
相当于
[root@oldboy data]# echo "Welcome to guangzhou."&>> b.txt
输出正确重定向与输出错误重定向共同指向同一个文件a.txt
[root@oldboy data]# echo "welcome to shanghai." > a.txt 2> a.txt
10、cp拷贝文件与目录
-r 递归复制(目录)-p复制文件保持原有所有的属性信息,非系统默认的信息
-a 相当于-pdr -d复制软链接文件,而非源文件
[root@oldboy data]# cp oldboy.txt /tmp/
[root@oldboy data]# ls -l /tmp/
total 4
-rw-r--r--. 1 root root 70 Mar 25 16:59 oldboy.txt
-rw-------. 1 root root 0 Mar 24 21:34 yum.log
递归复制例子:
[root@oldboy data]# cp -r ../data/ /tmp/
保持源文件的所有属性
[root@oldboy data]# cp -pr ../data/ /tmp/
链接文件拷贝
[root@oldboy data]# cp -d b.txt.bak /tmp/
[root@oldboy data]# ls -l /tmp/
total 8
lrwxrwxrwx. 1 root root 5 Mar 25 17:05 b.txt.bak -> b.txt
drwxr-xr-x. 3 root root 4096 Mar 25 14:52 data
-rw-r--r--. 1 root root 70 Mar 25 16:59 oldboy.txt
-rw-------. 1 root root 0 Mar 24 21:34 yum.log
拷贝-a 相当于-pdr例子
[root@oldboy /]# cp -a /data/ /tmp/
11、mv(move)移动文件或者目录到别的目录
移动/data目录到/root目录下
[root@oldboy ~]# mv /data /root/
如果文件在同一目录下,则进行文件的重命名操作
[root@oldboy data]# mv a.txt.bak a.txt1
12、rm(remove)删除文件或者目录
删除文件,例子如下:
[root@oldboy data]# rm oldboy.txt
rm: remove regular file `oldboy.txt'? y
递归删除目录下的文件,-r 递归删除 –f 强制删除
[root@oldboy /]# rm -rf /tmp/data/
13、find查找文件、目录等内容
查找类型为文件f(file),-name文件名字 –print打印输出
[root@oldboy data]# find . -type f -name "a.txt"
./a.txt
[root@oldboy data]# find . -type f -name "a.txt" -print
./a.txt
查找文件为oldboy.txt
[root@oldboy data]# find /data/ -type f -name "oldboy.txt"
/data/oldboy.txt
删除oldboy.txt
[root@oldboy data]# find /data/ -type f -name "oldboy.txt" -exec rm {} \;
重命名oldboy.txt.bak为oldboy.txt
[root@oldboy data]# find /data/ -type f -name "oldboy.txt.bak" -exec mv {} oldboy.txt \;
查找所有以.Txt结尾的文件,按一行排列
[root@oldboy data]# find /data/ -type f -name "*.txt" | xargs
/data/b.txt /data/oldboy.txt /data/a.txt
查找所有以.Txt结尾的文件,按两行排列
[root@oldboy data]# find /data/ -type f -name "*.txt" | xargs -n 2
/data/b.txt /data/oldboy.txt
/data/a.txt
查找所有以.Txt结尾的文件,按两行排列并删除
[root@oldboy data]# find /data/ -type f -name "*.txt" | xargs rm –f
[root@oldboy data]# rm –f /data/b.txt /data/oldboy.txt /data/a.txt
Moditify time时间段分析:
-mtime + num代表num天以前的数据
-mtime num 代表 第num天的数据
-mtime – num代表最近num天的数据
查找/var/log目录,类型为文件f(file) ,名称为*.log结尾,修改时间为1天以前的文件
[root@oldboy log]# find /var/log/ -type f -name "*.log" -mtime +1 | xargs
查找/var/log目录,类型为文件f(file) ,名称为*.log结尾,修改时间为第1天的文件
[root@oldboy log]# find /var/log/ -type f -name "*.log" -mtime 1 | xargs
查找/var/log目录,类型为文件f(file) ,名称为*.log结尾,修改时间为最近1天的文件
[root@oldboy log]# find /var/log/ -type f -name "*.log" -mtime -1 | xargs
/var/log/audit/audit.log /var/log/anaconda.ifcfg.log /var/log/anaconda.program.log /var/log/prelink/prelink.log /var/log/dracut.log /var/log/anaconda.log /var/log/anaconda.yum.log /var/log/anaconda.storage.log /var/log/yum.log /var/log/boot.log
删除/var/log目录,类型为文件f(file) ,名称为*.log结尾,修改时间为最近1天的文件
[root@oldboy log]# find /var/log/ -type f -name "*.log" -mtime -1 | xargs rm –f
查看最近1天以.log结尾的文件是否还存在
[root@oldboy log]# ls -l
total 660
-rw-------. 1 root root 145729 Mar 24 21:42 anaconda.syslog
-rw-------. 1 root root 35064 Mar 24 21:42 anaconda.xlog
drwxr-x---. 2 root root 4096 Mar 25 18:18 audit
-rw-------. 1 root utmp 384 Mar 24 22:22 btmp
drwxr-xr-x. 2 root root 4096 Mar 24 22:23 ConsoleKit
-rw-------. 1 root root 9172 Mar 25 18:10 cron
-rw-r--r--. 1 root root 89640 Mar 25 09:30 dmesg
-rw-r--r--. 1 root root 89640 Mar 24 22:22 dmesg.old
-rw-r--r--. 1 root root 146000 Mar 25 17:55 lastlog
-rw-------. 1 root root 640 Mar 25 09:31 maillog
-rw-------. 1 root root 206021 Mar 25 10:32 messages
drwxr-xr-x. 2 ntp ntp 4096 Nov 24 2013 ntpstats
drwxr-xr-x. 2 root root 4096 Mar 25 18:18 prelink
drwxr-xr-x. 2 root root 4096 Mar 25 09:30 sa
-rw-------. 1 root root 4376 Mar 25 17:55 secure
-rw-------. 1 root root 0 Mar 24 21:39 spooler
-rw-------. 1 root root 0 Mar 24 21:37 tallylog
-rw-rw-r--. 1 root utmp 18048 Mar 25 17:55 wtmp