1、mkdir

1.1 创建目录

mkdir /oldboy
mkdir -p 创建多级目录

2、ls

ls /oldboy/ 查看目录下面的数据信息
ls -d 只看目录
ls -l 显示详细信息
ls -lrt 显示最新数据信息
-r 进行反向排序
-t 按照时间信息进行排序
-a 查看所有文件

3、Cd

  1. cd .. 快速切换到上一级目录
  2. cd . 当前目录
  3. cd - 返回上一次所在的目录
  4. cdcd ~) 返回root家目录

4、Pwd 显示当前路径信息

5、Touch

5.1 创建文件

touch /oldboy/oldgirl.txt
——批量创建文件
touch oldgirl{01..10}
touch {www,bbs,blog}

6、帮助命令

1)man 一些命令的使用方法(命令简单说明 命令参数)
[ ]中括号里内容表示可有可无
2)mkdir —h(help) 只显示命令参数说明

7、linux监控命令

  1. lscpu #查看cpu信息
  2. w #查看系统的负载信息
  3. htop ---top命令升级版(交互式,鼠标可点)
  4. iftop ---监控每个IP地址的网速
  5. df -h ---磁盘空间大小
  6. iostat ---磁盘I/O相关的统计信息(yum install sysstat)
  7. nethogs ---按进程名显示网速
  8. uptime ---系统运行时间
  9. iotop ---按进程显示磁盘io信息
  10. vmstat ---显示内存-swap-io-system-cpu状态信息
  1. top - 17:45:14 up 37 min, 1 user, load average: 0.00, 0.00, 0.00
  2. 当前时间:1745分,运行37分钟,1个登录用户,1,5,15分钟的系统平均负载
  1. Tasks: 79 total, 1 running, 41 sleeping, 0 stopped, 0 zombie
  2. 进程:总进程数,1个运行,41个睡眠中,0中止,0僵尸进程
  1. %Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.8 st
  2. CPU资源:
  3. us: is meaning of "user CPU time" 用户空间占用CPU百分比
  4. sy: is meaning of "system CPU time" 内核空间占用CPU百分比
  5. ni: is meaning of" nice CPU time" 用户进程空间内改变过优先级的进程占用CPU百分比
  6. id: is meaning of "idle" 空闲CPU百分比
  7. wa: is meaning of "iowait" 等待输入输出的CPU时间百分比
  8. hiis meaning of "hardware irq" 硬件中断
  9. si : is meaning of "software irq" 软件中断
  10. st : is meaning of "steal time" ST0表示流畅,CPU资源足够完全不需要等待,当数值增加时,表示服务器资源不够。你的虚拟VPS需要等待分配物理 CPU的等待时间的百分比,你排队等候分配资源的百分比。
  1. KiB Mem : 2679236 total, 2465080 free, 99964 used, 114192 buff/cache
  2. 物理内存:总内存,空闲内存,使用中的内存,用作内核缓存的内存。
  3. KiB Swap: 262140 total, 262140 free, 0 used. 2439240 avail Mem
  4. 虚拟内存交换区:总交换区,空闲交换区,使用中的,缓冲的交换区总量。
  1. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  2. PID 进程id
  3. USER 进程所有者
  4. PR 进程优先级
  5. NI nice值。负值表示高优先级,正值表示低优先级
  6. VIRT 进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES
  7. RES 进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA
  8. SHR 共享内存大小,单位kb
  9. S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  10. %CPU 上次更新到现在的CPU时间占用百分比
  11. %MEM 进程使用的物理内存百分比
  12. TIME+ 进程占用的CPU时间总计,单位1/100
  13. COMMAND 进程名称(命令名/命令行)

8、cp

8.1 对文件进行备份

cp /etc/hosts /etc/hostname /oldboy/

8.2 对目录进行备份

cp -r /etc/ /oldboy/ -r 递归

8.3 保留原文件属性的前提下复制文件

cp -a /etc/ /oldgir/
-a 归档参数 汇总参数(-drp)-p 保持文件属性 -d 保持链接相关

9、mv

9.1进行数据重命名

mv ./hosts01 ./hosts10

10、head —-显示文件的前10行信息

11、tail —-显示文件的最后10行信息

tail -1000f /var/log/message —-实时查看1000行

tail -f /var/log/secure —- 实时追踪一个文件数据信息的变化
当监控文件被删除之后,会停止监控,需要重新执行命令进行监控信息

tail -F /var/log/secure —- 实时追踪一个文件数据信息的变化(推荐)
当监控文件被删除之后,会有报错提示信息,并且当文件恢复后,继续监控

12、cat(查看小文件 100M )

cat -n 显示行号信息
cat -A 显示文件的里的空格信息

13、less

less /etc/services
按空格 向下快速翻页
按b 向上快速翻页
/ 检索文件内容信息
less -N 显示行号
q 退出

14、more

more /etc/profile
按空格 向下快速翻页
按b 向上快速翻页

15、tr

数据一对一替换

15.1 将文件中的小写字母全部转化为大写

[root@oldboy~]# cat /oldboy/tr.txt
oldboy
[root@oldboy~]# tr ‘a-z’ ‘A-Z’ OLDBOY

16、netstat

-a 显示所有连接中的Socket。
-l 显示监听中的服务器的Socket。
-n 直接使用IP地址,而不解析主机名称或域名。
-p 显示程序名称
-r 显示Routing Table。
-t 显示TCP传输协议的连线状况。
-u 显示UDP传输协议的连线状况。

16.1 netstat -lntup|grep sshd—-查看服务对应的端口

  1. tcp 0 0 0.0.0.0:52113 0.0.0.0:* LISTEN 1480/sshd <br /> tcp6 0 0 :::52113 :::* LISTEN 1480/sshd

16.2 netstat -nt—-列出 TCP 协议的连接

tcp 0 0 172.16.1.3:33840 172.16.1.4:2380 ESTABLISHED
tcp 0 0 10.0.0.3:22 10.0.0.1:62045 ESTABLISHED
tcp 0 0 10.0.0.3:22 10.0.0.1:58861 ESTABLISHED
tcp 0 0 172.16.1.3:2380 172.16.1.4:42382 ESTABLISHED
tcp 0 0 172.16.1.3:2380 172.16.1.2:48180 ESTABLISHED
tcp 0 0 10.0.0.3:22 10.0.0.1:58862 ESTABLISHED
tcp 0 0 10.0.0.3:22 10.0.0.1:58941 ESTABLISHED
tcp 0 0 172.16.1.3:2380 172.16.1.4:42394 ESTABLISHED
tcp 0 0 172.16.1.3:2380 172.16.1.2:48130 ESTABLISHED
tcp 0 0 172.16.1.3:2379 172.16.1.3:40708 ESTABLISHED

16.3 netstat -lnt—-只列出TCP监听中的连接

tcp 0 0 127.0.0.1:40472 0.0.0.0: LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:
LISTEN
tcp6 0 0 :::10250 ::: LISTEN
tcp6 0 0 :::10255 :::
LISTEN
tcp6 0 0 :::10256 ::: LISTEN
tcp6 0 0 :::22 :::
LISTEN
tcp6 0 0 ::1:25 :::* LISTEN

16.4 netstat -lntup—-列出TCP、UDP连接的端口号、进程名、进程号

tcp 0 0 127.0.0.1:10248 0.0.0.0: LISTEN 1657/kubelet
tcp 0 0 172.16.1.3:10249 0.0.0.0:
LISTEN 1289/kube-proxy
tcp 0 0 172.16.1.3:2379 0.0.0.0: LISTEN 1287/etcd
tcp 0 0 172.16.1.3:2380 0.0.0.0:
LISTEN 1287/etcd
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 34380/nginx: worker
tcp 0 0 0.0.0.0:22 0.0.0.0:
LISTEN 1290/sshd
tcp 0 0 127.0.0.1:40472 0.0.0.0: LISTEN 1657/kubelet
tcp 0 0 127.0.0.1:25 0.0.0.0:
LISTEN 1463/master
tcp6 0 0 :::10250 ::: LISTEN 1657/kubelet
tcp6 0 0 :::10255 :::
LISTEN 1657/kubelet
tcp6 0 0 :::10256 ::: LISTEN 1289/kube-proxy
tcp6 0 0 :::22 :::
LISTEN 1290/sshd
tcp6 0 0 ::1:25 ::: LISTEN 1463/master
udp 0 0 127.0.0.1:323 0.0.0.0:
668/chronyd
udp6 0 0 ::1:323 :::* 668/chronyd

16.5 netstat -rn—-显示路由

10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1

17、date

17.1 指定显示的日期格式信息

[root@oldboy-xiaodao.com.cn oldboy]# date “+%Y-%m-%d %H:%M:%S”
2019-01-15 09:54:37
[root@oldboy-xiaodao.com.cn oldboy]# date “+%F”
2019-01-15
[root@oldboy-xiaodao.com.cn oldboy]# date “+%T”
09:58:11
[root@oldboy ~]# date “+%w” 星期几
3

17.2 修改系统时间信息

[root@oldboy-xiaodao.com.cn oldboy]# date -s “19950114”
Sat Jan 14 00:00:00 CST 1995
[root@oldboy-xiaodao.com.cn oldboy]# date -s “19950114 10:00”
Sat Jan 14 10:00:00 CST 1995

18. find

18.1 查找普通文件

[root@ ~]# find /oldboy -type f -name “oldboy.txt”
/oldboy/oldboy.txt

格式:find 路径信息(从哪个位置进行查找) -type 查找的文件类型 文件名称

18.2 可以查找的文件类型

-type f 普通文件
-type d 目录文件
-type l 链接文件

18.3 配合*(通配符号)模糊查找数据信息

  1. [root@oldboy-xiaodao.com.cn ~]# find /oldboy -type f -name "oldboy*"<br /> /oldboy/oldboy.mp3<br />

18.4忽略大小写查找文件 -iname

[root@oldboy-xiaodao.com.cn oldboy]# find /oldboy -type f -iname “oldboy*”
/oldboy/oldboy.mp3
/oldboy/oldboy.txt
/oldboy/Oldboy.txt

18.5 根据文件大小查找数据 -size

  1. `c' for bytes<br />`k' for Kilobytes (units of 1024 bytes) 小写<br />`M' for Megabytes (units of 1048576 bytes)<br />`G' for Gigabytes (units of 1073741824 bytes)<br />

18.5.1 找寻指定大小的文件

[root@o]# find /oldboy -type f -iname “oldboy*” -size 10c

18.5.2 找寻比指定数值大的文件 +10字节

[root@oldbo]# find /oldboy -type f -iname “oldboy*” -size +10c
/oldboy/oldboy02.txt
/oldboy/oldboy03.txt

18.5.3 找寻比指定数值小的文件 -10字节

[root@old ]# find /oldboy -type f -iname “oldboy*” -size -10c
/oldboy/oldboy.mp3
/oldboy/oldboy.txt
/oldboy/Oldboy.txt
/oldboy/oldboy01.txt

18.5.4 找寻比指定数值之间的文件

  1. find /etc/ -type f -size +10k(小写) -size -10M

18.6 利用find命令,指定查找数据目录层级(默认采用递归查找) -maxdepth

[root@ol.y]# find /oldboy -maxdepth 1 -type f -name “oldboy*”
/oldboy/oldboy.txt

18.7 批量删除文件

-delete 选项可以用来删除搜索到的文件和目录。
如删除 home 目录下所有的空目录:

  1. find ~ -type d -empty -delete
  2. find /oldboy -type f -name "oldboy*.txt"|xargs rm
  3. find /oldboy -type f -mtime -1|xargs rm -f
  4. find /oldboy_dir/ -type f -delete
  5. find /oldboy_dir/ -type f -exec rm -f {} \;

18.8 执行自定义命令

-exec 选项可以对搜索到的结果执行特定的命令。

18.8.1 查找后复制文件

  1. 如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive),可使用下面的命令:<br />find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'<br /> 其中的大括号({})作为检索到的文件的 占位符 ,而分号( ;)作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。<br />每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {},然后执行 -exec 后面的命令一次。

18.8.2 在多个文件中查找包含某个字符的文件

  1. find ./ -type f |xargs grep -R "wp-config"

18.8.3 -exec 选项中的 + 符号

  1. 现在假设需要将用户主目录下所有的 MP3 文件添加到压缩包 music.tar.gz 中,直观的感觉是,其命令应为如下形式:<br />find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ';'<br />实际情况是,这样得到的 music.tar.gz 其实只包含一个 MP3 文件。<br />原因是 find 命令每次发现一个音频文件,都会再执行一次 -exec 选项后面的压缩命令。导致先前生成的压缩包被覆盖。<br />可以先让 find 命令检索出所有符合条件的音频文件,再将得到的文件列表传递给后面的压缩命令。完整的命令如下:<br />find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

18.8.4 显示文件信息

如果想浏览搜索到的文件(目录)的详细信息(如权限和大小等),可以直接使用 -ls 选项。
find / -type file -size +1G -ls 浏览所有 1G 以上大小的文件的详细信息

18.9 根据时间日期进行检索

修改时间(Modification time):最后一次文件内容有过更改的时间点
访问时间(Access time):最后一次文件有被读取过的时间点
变更时间(Change time):最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改)
与此对应的是 find 命令中的 -mtime,-atime 和 -ctime 三个选项。
这三个选项的使用遵循以下示例中的规则:
-mtime 2:该文件 2 天前被修改过
-mtime -2:该文件 2 天以内被修改过
-mtime +2:该文件距离上次修改已经超过 2 天时间

检索 /usr 下两天前被修改过的文件
find /usr -type f -mtime 2
如果觉得 -mtime 等选项以天为单位时间有点长,还可以使用 -mmin,-amin,-cmin 三个选项(以分钟为单位):

检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime +50 -mtime -100

检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件
find /usr -type f -mtime 2 -amin 5

18.10 批量移动、复制

18.10.1 查找指定数据信息进行复制

find /oldboy -type f -name “oldboy.txt” |xargs -i cp {} /oldgirl/
find /oldboy -type f -name “oldboy
.txt” |xargs cp -t /oldgirl/
find /oldboy -type f -name “oldboy*.txt” -exec cp -a {} /oldgirl \;

18.10.2 查找指定数据信息进行移动

find /oldboy -type f -name “oldboy.txt” |xargs -i mv {} /oldgirl/
find /oldboy -type f -name “oldboy
.txt” |xargs mv -t /oldgirl/
find /oldboy -type f -name “oldboy*.txt” -exec mv {} /oldgirl \;

19、xargs

1.可以将多行信息整合为一行,利用空格进行分隔
2.可以将一行拆分为多行,利用空格进行拆分

xargs -n2 以2个为一组显示在一行
xargs -i 指定将xargs命令处理的信息放入到 {} 中。
xargs 后面跟的命令,不识别别名信息。
xargs -t 指定保存数据信息目标目录信息。

20、tree

20.1 tree -L 1 显示目录结构层级信息

[root@oy]# tree -L 1 ./
./
├── oldboy01
└── oldboy.txt

  1. 1 directory, 1 file

20.2 tree -d 只查看目录结构中目录信息

[root@y]# tree -d -L 1 ./
./
└── oldboy01

  1. 1 directory

21. curl

21.1 参数

  1. # 调试类
  2. -v, --verbose 输出信息
  3. -q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
  4. -K, --config FILE 指定配置文件
  5. -L, --location 跟踪重定向 (H)
  6. # CLI显示设置
  7. -s, --silent Silent模式。不输出任务内容
  8. -S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示
  9. -f, --fail 不显示 连接失败时HTTP错误信息
  10. -i, --include 显示 responseheader (H/F)
  11. -I, --head 仅显示 响应文档头
  12. -l, --list-only 只列出FTP目录的名称 (F)
  13. -#, --progress-bar 以进度条 显示传输进度
  14. # 数据传输类
  15. -X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST
  16. -H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json"
  17. -e, --referer 设定 referer (H)
  18. -d, --data <data> 设定post要提交的数据
  19. --data-raw <data> ASCII 编码 HTTP POST 数据 (H)
  20. --data-binary <data> binary 编码 HTTP POST 数据 (H)
  21. --data-urlencode <data> url 编码 HTTP POST 数据 (H)
  22. -G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
  23. -F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H)
  24. --form-string <name=string> 模拟 HTTP 表单数据提交 (H)
  25. -u, --user <user:password> 使用帐户,密码 例如 admin:password
  26. -b, --cookie <data> cookie 文件 (H)
  27. -j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
  28. -A, --user-agent user-agent设置 (H)
  29. # 传输设置
  30. -C, --continue-at OFFSET 断点续转
  31. -x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
  32. -U, --proxy-user USER[:PASSWORD] 代理用户名及密码
  33. # 文件操作
  34. -T, --upload-file <file> 上传文件
  35. -a, --append 添加要上传的文件 (F/SFTP)
  36. # 输出设置
  37. -o, --output <file> 将输出写入文件,而非 stdout
  38. -O, --remote-name 将输出写入远程文件
  39. -D, --dump-header <file> 将头信息写入指定的文件
  40. -c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置

21.2 示例

  1. 1、下载页面:
  2. curl -o index.html http://aiezu.com
  3. 2、下载文件并显示简单进度条:
  4. curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
  5. 3、断点续传:
  6. #继续完成上次终止的未完成的下载
  7. curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
  8. 4、伪造来源页面:
  9. #告诉爱E族,我是从百度来的
  10. curl -e http://baidu.com http://aiezu.com
  11. 5、伪造代理设备:
  12. #告诉爱E族,我用的是微信内置浏览器
  13. curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http://aiezu.com
  14. 6、只打印响应头部信息
  15. curl -I http://aiezu.com
  16. 输出:
  17. HTTP/1.1 200 OK
  18. Date: Fri, 25 Nov 2016 16:45:49 GMT
  19. Server: Apache
  20. Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
  21. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  22. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  23. Pragma: no-cache
  24. Vary: Accept-Encoding
  25. Content-Type: text/html; charset=utf-8
  26. 7、设置http请求头:
  27. #禁止缓存
  28. curl -H "Cache-Control:no-cache" http://aiezu.com
  29. #指定请求域名host
  30. curl -Hhost:www.test.com http://10.0.0.3:8080
  31. 8、发送表单数据:
  32. curl -F "pic=@logo.png" -F "site=aiezu" http://aiezu.com/
  33. 9、发送cookie
  34. curl -b "domain=aiezu.com" http://aiezu.com
  35. 10、模拟用户登录
  36. curl -u user:password http://blog.mydomain.com/login.php
  37. 11、保存cookie
  38. $curl -o page1.html -D cookie0001.txt http://mydomain.net
  39. 12、打印出服务器回应的 HTTP 标头。
  40. $ curl -i https://www.example.com
  41. 13、让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
  42. $ curl -L -d 'tweet=hi' https://api.twitter.com/tweet

22、常见压缩与解压命令

22.1 *.zip

默认解压压缩保留源文件

zip参数

  1. -v 显示操作详细信息
  2. -d 从压缩包里删除文件
  3. -m 将文件剪切到压缩包里,源文件将被删除
  4. -r 递归压缩
  5. -x 排除文件
  6. -c 加一行备注
  7. -z 加备注
  8. -T 测试压缩包完整性
  9. -e 加密
  10. -q 安静模式
  11. -1, --fast 更快的压缩速度
  12. -9, --best 更好的压缩率
  13. --help 查看帮助
  14. -h2 查看更多帮助

unzip参数

  1. -v 显示操作详细信息
  2. -l 查看压缩包内容
  3. -d 解压到指定文件夹
  4. -x 排除压缩包内文件
  5. -t 测试压缩包文件内容
  6. -z 查看备注
  7. -o 覆盖文件无需提示
  8. -q 安静模式
  9. --help 查看帮助

示例

  1. # 压缩文件
  2. $ zip -v myfile.zip myfile
  3. adding: t.md (in=8121) (out=1051) (deflated 87%)
  4. adding: t.php (in=740) (out=319) (deflated 57%)
  5. adding: t.php.zip (in=1666) (out=1666) (stored 0%)
  6. total bytes=10527, compressed=3036 -> 71% savings
  7. # 压缩文件夹(包含子目录)
  8. zip -r mydir.zip mydir
  9. # 压缩当前目录所有文件
  10. zip mydir.zip *
  11. # 解压文件
  12. unzip mydir.zip
  13. # 测试压缩包完整性
  14. $ zip -T myfile.zip
  15. test of myfile.zip OK
  16. # 测试压缩包文件内容
  17. $ unzip -t myfile.zip
  18. Archive: myfile.zip
  19. testing: t.md OK
  20. testing: t.php OK
  21. testing: t.php.zip OK
  22. No errors detected in compressed data of myfile.zip.
  23. # 查看压缩包里内容
  24. $ unzip -l myfile.zip
  25. Archive: myfile.zip
  26. Length Date Time Name
  27. --------- ---------- ----- ----
  28. 8121 06-08-2016 17:03 t.md
  29. 740 06-08-2016 17:02 t.php
  30. 1666 07-30-2016 17:38 t.php.zip
  31. --------- -------
  32. 10527 3 files
  33. # 从压缩包里删除文件t.php.zip
  34. $ zip -d myfile.zip t.php.zip
  35. deleting: t.php.zip
  36. # 添加文件到压缩包里
  37. $ zip -u myfile.zip t.php
  38. adding: t.php (deflated 57%)
  39. # 给压缩包添加注释
  40. $ zip -z myfile.zip
  41. enter new zip file comment (end with .):
  42. test
  43. # 查看压缩包注释
  44. $ unzip -z myfile.zip
  45. Archive: myfile.zip
  46. test
  47. # 解压到指定文件夹
  48. $ unzip myfile.zip -d my
  49. Archive: myfile.zip
  50. test .
  51. inflating: my/t.md
  52. inflating: my/t.php
  53. # 排除文件不解压
  54. $ unzip myfile.zip -x t.php -d my
  55. Archive: myfile.zip
  56. test .
  57. inflating: my/t.md

22.2 *.gz

不用写最终的压缩文件名,会自动在后面加.gz后缀,同时删除源文件。 不能压缩目录。 默认压缩和解压不保留源文件。
注意:gunzip与gzip -d等效,都可以解压gz文件。

参数

  1. -c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件
  2. -1, --fast 更快的压缩速度
  3. -9, --best 更好的压缩率

示例

  1. # 压缩1.log,同时会自动删除源文件
  2. gzip 1.log
  3. # 解压1.log.gz,同时会自动删除压缩包
  4. gzip -d 1.log.gz
  5. # 压缩1.log,保留源文件
  6. gzip -k 1.log
  7. # 解压1.log.gz,保留压缩包
  8. gzip -dk 1.log.gz
  9. # 查看压缩包信息
  10. gzip -l 1.log.gz
  11. # 递归的对目录里的每个文件单独压缩
  12. gzip -r mydir

22.3 *.bz2(不能压缩目录)

参数

  1. -c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件
  2. -1, --fast 更快的压缩速度
  3. -9, --best 更好的压缩率
  4. -k --压缩后保留源文件(默认压缩和解压不保留源文件)


示例

  1. # 压缩1.log
  2. bzip2 1.log
  3. # 解压1.log.bz2
  4. bzip2 -d 1.log.bz2

22.4 tar

  1. 默认解压后的文件保存在当前目录路径中
  2. 在压缩数据信息时, 不要携带过多的目录结构信息 尽量先进入到要压缩文件的上一级目录,采用相对路径方式进行压缩数据 默认压缩和解压保留源文件。 不能向tar.gz和tar.bz2里追加或者更新文件。

参数

  1. -z 利用gzip方式进行压缩
  2. -v 显示过程
  3. -f 指定压缩文件的路径信息(一定放在所有参数的最后面)
  4. -h 保存软链接文件对应的源文件
  5. -x Extract 对数据包进行解压
  6. -C 指定解压后文件的保存路径
  7. -a, --auto-compress 使用归档后缀名来决定压缩程序
  8. -c, --create: 建立压缩档案
  9. -x, --extract, --get:解压
  10. -t, --list:查看内容
  11. -r, --append:向压缩归档文件末尾追加文件
  12. -u, --update:更新原压缩包中的文件
  13. -d, --diff, --compare 将压缩包里的文件与文件系统进行对比
  14. --delete 从压缩包里删除

示例

  1. # 打包后,以gzip 压缩
  2. tar zcvf test.tar.gz /test #压缩/test为test.tar.gz
  3. tar zcvf test.tar.gz /test/1.txt /test/2.txt #压缩/test/1.txt、2.txt为test.tar.gz
  4. # 解压test.tar.gz、test.tar.bz2、test.tar
  5. tar xvf test.tar.gz
  6. tar xvf test.tar.bz2
  7. tar xvf test.tar
  8. # 打包后,以bzip2 压缩
  9. tar jcvf test.tar.bz2 /test #压缩/test为test.tar.bz2
  10. # 仅打包,不压缩
  11. tar cvf test.tar /test
  12. # 查看压缩包内容列表
  13. tar tvf test.tar.gz
  14. # 解压到指定文件夹(目标文件夹必须存在)
  15. $ tar -zxvf all.tar.gz -C my/
  16. #解压指定文件
  17. [root@hepingfly]# tar -zxvf test.tar.gz -C aaaa/ abd.txt #只把abd.txt文件解压到aaaa目录
  18. abd.txt
  19. # 压缩时排除某些目录
  20. $ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat
  21. $ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat
  22. # 比较压缩包里文件与源文件变动
  23. $ tar --diff -vf 1.log.tar 1.log
  24. 1.log
  25. 1.log: Mod time differs
  26. 1.log: Size differs
  27. # 删除压缩包里的1.log
  28. $ tar --delete -vf 1.log.tar 1.log
  29. # 向压缩归档文件里追加文件
  30. $ tar rvf 1.log.tar 1.log 2.log
  31. 1.log
  32. 2.log
  33. # 向压缩归档文件里更新文件
  34. $ tar uvf 1.log.tar 1.log 2.log

23、rename 重命名文件

  1. 23.1 替换文件名中特定字段
  2. rename "s/AA/aa/" * # 把文件名中的AA替换成aa
  3. 23.2 修改文件后缀
  4. rename "s/.html/.php/" * # 把.html 后缀的改成 .php后缀
  5. rename "s/.png/.jpg/" * # 将 png 改为 jpg
  6. 23.3 批量修改文件后缀
  7. rename "s/$/.txt/" * # 把所有的文件名都以txt结尾
  8. 23.4 批量删除文件名
  9. rename "s/.txt//" * # 把所有以.txt结尾的文件名的.txt删掉
  10. rename "s/oldname/newname/" file

24. Scp

-p:保留原文件的修改时间,访问时间和访问权限。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-P port:注意是大写的P, port是指定数据传输用到的端口号

24.1 从本地复制到远程

1.复制文件:
scp /home/space/music/1.mp3 root@10.0.0.2:/root/others/music
scp /home/space/music/1.mp3 root@10.0.0.2:/root/others/music/001.mp3

2.复制目录:
scp -rp /home/space/music/ root@10.0.0.2:/root/others/

24.2 从远程复制到本地

scp root@10.0.0.2:/root/others/music /home/space/music/1.mp3
scp -r root@10.0.0.2:/root/others/ /home/space/music/

25. mount

  1. mount -t nfs -o 挂载参数 172.16.1.31:/data /mnt
  2. rw,ro
  3. suid/nosuid 确认在共享目录中设置的文件setuid权限是否生效
  4. exec/noexec 确认存储目录中的可执行文件(命令/脚本)是否可以执行
  5. auto/noauto 方便进行多个共享目录挂载的参数(写在/etc/fstab中),确认挂载配置信息是否可以通过mount -a命令自动加载
  6. remount 实现重新挂载
  7. umount -lf 强制卸载
  8. -f, --force 强制卸载
  9. -l, --lazy 懒惰卸载
  10. showmount -e 172.16.1.31 查看共享目录信息

26. getenforce 查看selinux状态信息

  1. setenforce --- 设置selinux状态<br />

27. env 显示所有环境变量信息

28. alias 设置或查看别名信息

  1. alias 查看所有系统默认别名信息
  2. alias rm 查看指定别名信息
  3. alias rm='命令信息'
  4. unalias 取消别名信息

29. which 显示命令文件的绝对路径信息

30. file 查看文件类型信息

31. whereis 查看命令的绝对路径信息,以及和这个命令相关所有文件信息

32. stat 显示文件的详细属性信

33. du 查看数据真正占用了磁盘多少空间

  1. -s 列出总量,而不列出每个个别的目录占用了容量<br /> -h 以人类可读方式进行查看

34. history 查看历史命令信息

  1. -w 将内存中记录的历史命令 保存到~/.bash_history文件中

35. id 确认用户的属主uid,主要属组gid,附属组

36. md5sum 计算和校验文件的MD5值

37. wc 统计文件的行数,单词数或字节数

38. sort 对文件的文本内容排序

  1. -r 反向排序
  2. -n 以数字排序
  3. -k 指定列
  4. -t 指定分隔符
  5. -h 以人类可读方式排序
  6. -f 忽略大小写

39. uniq 去除重复行

  1. -c 打印出现的次数

40. cut 将文件的每一行按指定分隔符分割并输出

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。

41. split 分割文件为不同的小片段

42. blkid—-查看 uuid

43. locale 查询当前字符集

44. vimdiff 比对文件内容

  1. vimdiff /etc/test1 /etc/test2

45. screen

运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉.

  1. 1.安装screen
  2. yum install screen
  3. 2.创建 screen 终端
  4. screenscreen -S +名称
  5. 3.离开 screen 终端
  6. screen 终端下按下 Ctrl+a+d
  7. 4. 重新连接离开的 screen 终端
  8. # screen -ls //显示已创建的screen终端
  9. There are screens on:
  10. 2433.pts-3.linux (20131020 164859秒) (Detached)
  11. 2428.pts-3.linux (20131020 164805秒) (Detached)
  12. 2284.pts-3.linux (20131020 161455秒) (Detached)
  13. 2276.pts-3.linux (20131020 161318秒) (Detached)
  14. 4 Sockets in /var/run/screen/S-root.
  15. # screen -r 2276 //连接 screen_id 为 2276 的 screen终端
  16. 5. 关闭终端
  17. screen 终端下按下 Ctrl+d