- 1、mkdir
- 2、ls
- 3、Cd
- 4、Pwd 显示当前路径信息
- 5、Touch
- 6、帮助命令
- 7、linux监控命令
- 8、cp
- 9、mv
- 10、head —-显示文件的前10行信息
- 11、tail —-显示文件的最后10行信息
- 12、cat(查看小文件 100M )
- 13、less
- 14、more
- 15、tr
- 16、netstat
- 17、date
- 18. find
- 19、xargs
- 20、tree
- 21. curl
- 22、常见压缩与解压命令
- 23、rename 重命名文件
- 24. Scp
- 25. mount
- 26. getenforce 查看selinux状态信息
- 27. env 显示所有环境变量信息
- 28. alias 设置或查看别名信息
- 29. which 显示命令文件的绝对路径信息
- 30. file 查看文件类型信息
- 31. whereis 查看命令的绝对路径信息,以及和这个命令相关所有文件信息
- 32. stat 显示文件的详细属性信
- 33. du 查看数据真正占用了磁盘多少空间
- 34. history 查看历史命令信息
- 35. id 确认用户的属主uid,主要属组gid,附属组
- 36. md5sum 计算和校验文件的MD5值
- 37. wc 统计文件的行数,单词数或字节数
- 38. sort 对文件的文本内容排序
- 39. uniq 去除重复行
- 40. cut 将文件的每一行按指定分隔符分割并输出
- 41. split 分割文件为不同的小片段
- 42. blkid—-查看 uuid
- 43. locale 查询当前字符集
- 44. vimdiff 比对文件内容
- 45. screen
1、mkdir
1.1 创建目录
2、ls
ls /oldboy/ 查看目录下面的数据信息
ls -d 只看目录
ls -l 显示详细信息
ls -lrt 显示最新数据信息
-r 进行反向排序
-t 按照时间信息进行排序
-a 查看所有文件
3、Cd
cd .. 快速切换到上一级目录
cd . 当前目录
cd - 返回上一次所在的目录
cd(cd ~) 返回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监控命令
lscpu #查看cpu信息
w #查看系统的负载信息
htop ---top命令升级版(交互式,鼠标可点)
iftop ---监控每个IP地址的网速
df -h ---磁盘空间大小
iostat ---磁盘I/O相关的统计信息(yum install sysstat)
nethogs ---按进程名显示网速
uptime ---系统运行时间
iotop ---按进程显示磁盘io信息
vmstat ---显示内存-swap-io-system-cpu状态信息
top - 17:45:14 up 37 min, 1 user, load average: 0.00, 0.00, 0.00
当前时间:17:45分,运行37分钟,1个登录用户,1,5,15分钟的系统平均负载
Tasks: 79 total, 1 running, 41 sleeping, 0 stopped, 0 zombie
进程:总进程数,1个运行,41个睡眠中,0中止,0僵尸进程
%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
CPU资源:
us: is meaning of "user CPU time" 用户空间占用CPU百分比
sy: is meaning of "system CPU time" 内核空间占用CPU百分比
ni: is meaning of" nice CPU time" 用户进程空间内改变过优先级的进程占用CPU百分比
id: is meaning of "idle" 空闲CPU百分比
wa: is meaning of "iowait" 等待输入输出的CPU时间百分比
hi:is meaning of "hardware irq" 硬件中断
si : is meaning of "software irq" 软件中断
st : is meaning of "steal time" ST为0表示流畅,CPU资源足够完全不需要等待,当数值增加时,表示服务器资源不够。你的虚拟VPS需要等待分配物理 CPU的等待时间的百分比,你排队等候分配资源的百分比。
KiB Mem : 2679236 total, 2465080 free, 99964 used, 114192 buff/cache
物理内存:总内存,空闲内存,使用中的内存,用作内核缓存的内存。
KiB Swap: 262140 total, 262140 free, 0 used. 2439240 avail Mem
虚拟内存交换区:总交换区,空闲交换区,使用中的,缓冲的交换区总量。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程占用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
8、cp
8.1 对文件进行备份
cp /etc/hosts /etc/hostname /oldboy/
8.2 对目录进行备份
8.3 保留原文件属性的前提下复制文件
cp -a /etc/ /oldgir/
-a 归档参数 汇总参数(-drp)-p 保持文件属性 -d 保持链接相关
9、mv
9.1进行数据重命名
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—-查看服务对应的端口
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 配合*(通配符号)模糊查找数据信息
[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
`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 找寻比指定数值之间的文件
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 目录下所有的空目录:
find ~ -type d -empty -delete
find /oldboy -type f -name "oldboy*.txt"|xargs rm
find /oldboy -type f -mtime -1|xargs rm -f
find /oldboy_dir/ -type f -delete
find /oldboy_dir/ -type f -exec rm -f {} \;
18.8 执行自定义命令
-exec 选项可以对搜索到的结果执行特定的命令。
18.8.1 查找后复制文件
如需要将 home 目录下所有的 MP3 音频文件复制到移动存储设备(假设路径是 /media/MyDrive),可使用下面的命令:<br />find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'<br /> 其中的大括号({})作为检索到的文件的 占位符 ,而分号( ;)作为命令结束的标志。因为分号是 Shell 中有特殊含义的符号,所以需要使用单引号括起来。<br />每当 find 命令检索到一个符合条件的文件,会使用其完整路径取代命令中的 {},然后执行 -exec 后面的命令一次。
18.8.2 在多个文件中查找包含某个字符的文件
find ./ -type f |xargs grep -R "wp-config"
18.8.3 -exec 选项中的 + 符号
现在假设需要将用户主目录下所有的 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 directory, 1 file
20.2 tree -d 只查看目录结构中目录信息
[root@y]# tree -d -L 1 ./
./
└── oldboy01
1 directory
21. curl
21.1 参数
# 调试类
-v, --verbose 输出信息
-q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
-K, --config FILE 指定配置文件
-L, --location 跟踪重定向 (H)
# CLI显示设置
-s, --silent Silent模式。不输出任务内容
-S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示
-f, --fail 不显示 连接失败时HTTP错误信息
-i, --include 显示 response的header (H/F)
-I, --head 仅显示 响应文档头
-l, --list-only 只列出FTP目录的名称 (F)
-#, --progress-bar 以进度条 显示传输进度
# 数据传输类
-X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST
-H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json"
-e, --referer 设定 referer (H)
-d, --data <data> 设定post要提交的数据
--data-raw <data> ASCII 编码 HTTP POST 数据 (H)
--data-binary <data> binary 编码 HTTP POST 数据 (H)
--data-urlencode <data> url 编码 HTTP POST 数据 (H)
-G, --get 使用 HTTP GET 方法发送 -d 数据 (H)
-F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H)
--form-string <name=string> 模拟 HTTP 表单数据提交 (H)
-u, --user <user:password> 使用帐户,密码 例如 admin:password
-b, --cookie <data> cookie 文件 (H)
-j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
-A, --user-agent user-agent设置 (H)
# 传输设置
-C, --continue-at OFFSET 断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名及密码
# 文件操作
-T, --upload-file <file> 上传文件
-a, --append 添加要上传的文件 (F/SFTP)
# 输出设置
-o, --output <file> 将输出写入文件,而非 stdout
-O, --remote-name 将输出写入远程文件
-D, --dump-header <file> 将头信息写入指定的文件
-c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置
21.2 示例
1、下载页面:
curl -o index.html http://aiezu.com
2、下载文件并显示简单进度条:
curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
3、断点续传:
#继续完成上次终止的未完成的下载
curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
4、伪造来源页面:
#告诉爱E族,我是从百度来的
curl -e http://baidu.com http://aiezu.com
5、伪造代理设备:
#告诉爱E族,我用的是微信内置浏览器
curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http://aiezu.com
6、只打印响应头部信息
curl -I http://aiezu.com
输出:
HTTP/1.1 200 OK
Date: Fri, 25 Nov 2016 16:45:49 GMT
Server: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
7、设置http请求头:
#禁止缓存
curl -H "Cache-Control:no-cache" http://aiezu.com
#指定请求域名host
curl -Hhost:www.test.com http://10.0.0.3:8080
8、发送表单数据:
curl -F "pic=@logo.png" -F "site=aiezu" http://aiezu.com/
9、发送cookie:
curl -b "domain=aiezu.com" http://aiezu.com
10、模拟用户登录
curl -u user:password http://blog.mydomain.com/login.php
11、保存cookie
$curl -o page1.html -D cookie0001.txt http://mydomain.net
12、打印出服务器回应的 HTTP 标头。
$ curl -i https://www.example.com
13、让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
22、常见压缩与解压命令
22.1 *.zip
默认解压压缩保留源文件
zip参数
-v 显示操作详细信息
-d 从压缩包里删除文件
-m 将文件剪切到压缩包里,源文件将被删除
-r 递归压缩
-x 排除文件
-c 加一行备注
-z 加备注
-T 测试压缩包完整性
-e 加密
-q 安静模式
-1, --fast 更快的压缩速度
-9, --best 更好的压缩率
--help 查看帮助
-h2 查看更多帮助
unzip参数
-v 显示操作详细信息
-l 查看压缩包内容
-d 解压到指定文件夹
-x 排除压缩包内文件
-t 测试压缩包文件内容
-z 查看备注
-o 覆盖文件无需提示
-q 安静模式
--help 查看帮助
示例
# 压缩文件
$ zip -v myfile.zip myfile
adding: t.md (in=8121) (out=1051) (deflated 87%)
adding: t.php (in=740) (out=319) (deflated 57%)
adding: t.php.zip (in=1666) (out=1666) (stored 0%)
total bytes=10527, compressed=3036 -> 71% savings
# 压缩文件夹(包含子目录)
zip -r mydir.zip mydir
# 压缩当前目录所有文件
zip mydir.zip *
# 解压文件
unzip mydir.zip
# 测试压缩包完整性
$ zip -T myfile.zip
test of myfile.zip OK
# 测试压缩包文件内容
$ unzip -t myfile.zip
Archive: myfile.zip
testing: t.md OK
testing: t.php OK
testing: t.php.zip OK
No errors detected in compressed data of myfile.zip.
# 查看压缩包里内容
$ unzip -l myfile.zip
Archive: myfile.zip
Length Date Time Name
--------- ---------- ----- ----
8121 06-08-2016 17:03 t.md
740 06-08-2016 17:02 t.php
1666 07-30-2016 17:38 t.php.zip
--------- -------
10527 3 files
# 从压缩包里删除文件t.php.zip
$ zip -d myfile.zip t.php.zip
deleting: t.php.zip
# 添加文件到压缩包里
$ zip -u myfile.zip t.php
adding: t.php (deflated 57%)
# 给压缩包添加注释
$ zip -z myfile.zip
enter new zip file comment (end with .):
test
# 查看压缩包注释
$ unzip -z myfile.zip
Archive: myfile.zip
test
# 解压到指定文件夹
$ unzip myfile.zip -d my
Archive: myfile.zip
test .
inflating: my/t.md
inflating: my/t.php
# 排除文件不解压
$ unzip myfile.zip -x t.php -d my
Archive: myfile.zip
test .
inflating: my/t.md
22.2 *.gz
不用写最终的压缩文件名,会自动在后面加.gz后缀,同时删除源文件。 不能压缩目录。 默认压缩和解压不保留源文件。
注意:gunzip与gzip -d等效,都可以解压gz文件。
参数
-c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件
-1, --fast 更快的压缩速度
-9, --best 更好的压缩率
示例
# 压缩1.log,同时会自动删除源文件
gzip 1.log
# 解压1.log.gz,同时会自动删除压缩包
gzip -d 1.log.gz
# 压缩1.log,保留源文件
gzip -k 1.log
# 解压1.log.gz,保留压缩包
gzip -dk 1.log.gz
# 查看压缩包信息
gzip -l 1.log.gz
# 递归的对目录里的每个文件单独压缩
gzip -r mydir
22.3 *.bz2(不能压缩目录)
参数
-c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件
-1, --fast 更快的压缩速度
-9, --best 更好的压缩率
-k --压缩后保留源文件(默认压缩和解压不保留源文件)
示例
# 压缩1.log
bzip2 1.log
# 解压1.log.bz2
bzip2 -d 1.log.bz2
22.4 tar
- 默认解压后的文件保存在当前目录路径中
- 在压缩数据信息时, 不要携带过多的目录结构信息 尽量先进入到要压缩文件的上一级目录,采用相对路径方式进行压缩数据 默认压缩和解压保留源文件。 不能向tar.gz和tar.bz2里追加或者更新文件。
参数
-z 利用gzip方式进行压缩
-v 显示过程
-f 指定压缩文件的路径信息(一定放在所有参数的最后面)
-h 保存软链接文件对应的源文件
-x Extract 对数据包进行解压
-C 指定解压后文件的保存路径
-a, --auto-compress 使用归档后缀名来决定压缩程序
-c, --create: 建立压缩档案
-x, --extract, --get:解压
-t, --list:查看内容
-r, --append:向压缩归档文件末尾追加文件
-u, --update:更新原压缩包中的文件
-d, --diff, --compare 将压缩包里的文件与文件系统进行对比
--delete 从压缩包里删除
示例
# 打包后,以gzip 压缩
tar zcvf test.tar.gz /test #压缩/test为test.tar.gz
tar zcvf test.tar.gz /test/1.txt /test/2.txt #压缩/test/1.txt、2.txt为test.tar.gz
# 解压test.tar.gz、test.tar.bz2、test.tar
tar xvf test.tar.gz
tar xvf test.tar.bz2
tar xvf test.tar
# 打包后,以bzip2 压缩
tar jcvf test.tar.bz2 /test #压缩/test为test.tar.bz2
# 仅打包,不压缩
tar cvf test.tar /test
# 查看压缩包内容列表
tar tvf test.tar.gz
# 解压到指定文件夹(目标文件夹必须存在)
$ tar -zxvf all.tar.gz -C my/
#解压指定文件
[root@hepingfly]# tar -zxvf test.tar.gz -C aaaa/ abd.txt #只把abd.txt文件解压到aaaa目录
abd.txt
# 压缩时排除某些目录
$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat
$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat
# 比较压缩包里文件与源文件变动
$ tar --diff -vf 1.log.tar 1.log
1.log
1.log: Mod time differs
1.log: Size differs
# 删除压缩包里的1.log
$ tar --delete -vf 1.log.tar 1.log
# 向压缩归档文件里追加文件
$ tar rvf 1.log.tar 1.log 2.log
1.log
2.log
# 向压缩归档文件里更新文件
$ tar uvf 1.log.tar 1.log 2.log
23、rename 重命名文件
23.1 替换文件名中特定字段
rename "s/AA/aa/" * # 把文件名中的AA替换成aa
23.2 修改文件后缀
rename "s/.html/.php/" * # 把.html 后缀的改成 .php后缀
rename "s/.png/.jpg/" * # 将 png 改为 jpg
23.3 批量修改文件后缀
rename "s/$/.txt/" * # 把所有的文件名都以txt结尾
23.4 批量删除文件名
rename "s/.txt//" * # 把所有以.txt结尾的文件名的.txt删掉
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
mount -t nfs -o 挂载参数 172.16.1.31:/data /mnt
rw,ro
suid/nosuid 确认在共享目录中设置的文件setuid权限是否生效
exec/noexec 确认存储目录中的可执行文件(命令/脚本)是否可以执行
auto/noauto 方便进行多个共享目录挂载的参数(写在/etc/fstab中),确认挂载配置信息是否可以通过mount -a命令自动加载
remount 实现重新挂载
umount -lf 强制卸载
-f, --force 强制卸载
-l, --lazy 懒惰卸载
showmount -e 172.16.1.31 查看共享目录信息
26. getenforce 查看selinux状态信息
setenforce --- 设置selinux状态<br />
27. env 显示所有环境变量信息
28. alias 设置或查看别名信息
alias 查看所有系统默认别名信息
alias rm 查看指定别名信息
alias rm='命令信息'
unalias 取消别名信息
29. which 显示命令文件的绝对路径信息
30. file 查看文件类型信息
31. whereis 查看命令的绝对路径信息,以及和这个命令相关所有文件信息
32. stat 显示文件的详细属性信
33. du 查看数据真正占用了磁盘多少空间
-s 列出总量,而不列出每个个别的目录占用了容量<br /> -h 以人类可读方式进行查看
34. history 查看历史命令信息
-w 将内存中记录的历史命令 保存到~/.bash_history文件中
35. id 确认用户的属主uid,主要属组gid,附属组
36. md5sum 计算和校验文件的MD5值
37. wc 统计文件的行数,单词数或字节数
38. sort 对文件的文本内容排序
-r 反向排序
-n 以数字排序
-k 指定列
-t 指定分隔符
-h 以人类可读方式排序
-f 忽略大小写
39. uniq 去除重复行
-c 打印出现的次数
40. cut 将文件的每一行按指定分隔符分割并输出
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
41. split 分割文件为不同的小片段
42. blkid—-查看 uuid
43. locale 查询当前字符集
44. vimdiff 比对文件内容
vimdiff /etc/test1 /etc/test2
45. screen
运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉.
1.安装screen
yum install screen
2.创建 screen 终端
screen或screen -S +名称
3.离开 screen 终端
在 screen 终端下按下 Ctrl+a+d键
4. 重新连接离开的 screen 终端
# screen -ls //显示已创建的screen终端
There are screens on:
2433.pts-3.linux (2013年10月20日 16时48分59秒) (Detached)
2428.pts-3.linux (2013年10月20日 16时48分05秒) (Detached)
2284.pts-3.linux (2013年10月20日 16时14分55秒) (Detached)
2276.pts-3.linux (2013年10月20日 16时13分18秒) (Detached)
4 Sockets in /var/run/screen/S-root.
# screen -r 2276 //连接 screen_id 为 2276 的 screen终端
5. 关闭终端
在 screen 终端下按下 Ctrl+d键