- 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 stCPU资源: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+ COMMANDPID — 进程idUSER — 进程所有者PR — 进程优先级NI — nice值。负值表示高优先级,正值表示低优先级VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR — 共享内存大小,单位kbS — 进程状态。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 -deletefind /oldboy -type f -name "oldboy*.txt"|xargs rmfind /oldboy -type f -mtime -1|xargs rm -ffind /oldboy_dir/ -type f -deletefind /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.com2、下载文件并显示简单进度条:curl -# -o centos6.8.iso http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso3、断点续传:#继续完成上次终止的未完成的下载curl -# -o centos6.8.iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso4、伪造来源页面:#告诉爱E族,我是从百度来的curl -e http://baidu.com http://aiezu.com5、伪造代理设备:#告诉爱E族,我用的是微信内置浏览器curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http://aiezu.com6、只打印响应头部信息curl -I http://aiezu.com输出:HTTP/1.1 200 OKDate: Fri, 25 Nov 2016 16:45:49 GMTServer: ApacheSet-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Pragma: no-cacheVary: Accept-EncodingContent-Type: text/html; charset=utf-87、设置http请求头:#禁止缓存curl -H "Cache-Control:no-cache" http://aiezu.com#指定请求域名hostcurl -Hhost:www.test.com http://10.0.0.3:80808、发送表单数据:curl -F "pic=@logo.png" -F "site=aiezu" http://aiezu.com/9、发送cookie:curl -b "domain=aiezu.com" http://aiezu.com10、模拟用户登录curl -u user:password http://blog.mydomain.com/login.php11、保存cookie$curl -o page1.html -D cookie0001.txt http://mydomain.net12、打印出服务器回应的 HTTP 标头。$ curl -i https://www.example.com13、让 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 myfileadding: 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.ziptest of myfile.zip OK# 测试压缩包文件内容$ unzip -t myfile.zipArchive: myfile.ziptesting: t.md OKtesting: t.php OKtesting: t.php.zip OKNo errors detected in compressed data of myfile.zip.# 查看压缩包里内容$ unzip -l myfile.zipArchive: myfile.zipLength Date Time Name--------- ---------- ----- ----8121 06-08-2016 17:03 t.md740 06-08-2016 17:02 t.php1666 07-30-2016 17:38 t.php.zip--------- -------10527 3 files# 从压缩包里删除文件t.php.zip$ zip -d myfile.zip t.php.zipdeleting: t.php.zip# 添加文件到压缩包里$ zip -u myfile.zip t.phpadding: t.php (deflated 57%)# 给压缩包添加注释$ zip -z myfile.zipenter new zip file comment (end with .):test# 查看压缩包注释$ unzip -z myfile.zipArchive: myfile.ziptest# 解压到指定文件夹$ unzip myfile.zip -d myArchive: myfile.ziptest .inflating: my/t.mdinflating: my/t.php# 排除文件不解压$ unzip myfile.zip -x t.php -d myArchive: myfile.ziptest .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.logbzip2 1.log# 解压1.log.bz2bzip2 -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.gztar 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.tartar xvf test.tar.gztar xvf test.tar.bz2tar 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.log1.log1.log: Mod time differs1.log: Size differs# 删除压缩包里的1.log$ tar --delete -vf 1.log.tar 1.log# 向压缩归档文件里追加文件$ tar rvf 1.log.tar 1.log 2.log1.log2.log# 向压缩归档文件里更新文件$ tar uvf 1.log.tar 1.log 2.log
23、rename 重命名文件
23.1 替换文件名中特定字段rename "s/AA/aa/" * # 把文件名中的AA替换成aa23.2 修改文件后缀rename "s/.html/.php/" * # 把.html 后缀的改成 .php后缀rename "s/.png/.jpg/" * # 将 png 改为 jpg23.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 /mntrw,rosuid/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.安装screenyum install screen2.创建 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键
