目录
概述
常用系统工作命令
系统状态检测命令
工作目录切换命令
文本文件编辑命令
文件目录管理命令
打包压缩与收缩命令
参考资料
概述
1.shell
Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。
图3-1 用户与Linux系统的交互
现在主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。主流Linux系统选择Bash解释器作为命令行终端主要有以下4项优势:
1.通过上下方向键来调取过往执行过的Linux命令;
2.命令或参数仅需输入前几位就可以用Tab键补全;
3.具有强大的批处理脚本;
4.具有实用的环境变量功能。
用途:用于实现某一类功能的指令或程序;命令的执行依赖于解释器程序(例如:/bin/bash)
分类
内部命令:属于Shell 解释器的一部分
外部命令:独立于Shell 解释器之外的程序文件
2.Linux命令的格式
语法:命令字[选项] [参数]
选项:用于调节命令的具体功能
以“-”引导短格式选项(单个字符),例如“-l”
以“--”引导长格式选项(多个字符),例如“--color”
多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”
参数:命令操作的对象,如文件、目录名等
注意:选项和参数可有可无,应该根据实际情况去调整。
3.命令帮助
Help命令用于查看linux内置命令的帮助
Man命令,命令字典
按键 | 用途 |
空格键 | 向下翻一页 |
PaGe down | 向下翻一页 |
PaGe up | 向上翻一页 |
home | 直接前往首页 |
end | 直接前往尾页 |
/ | 从上至下搜索某个关键词,如“/linux” |
? | 从下至上搜索某个关键词,如“?linux” |
n | 定位到下一个搜索到的关键词 |
N | 定位到上一个搜索到的关键词 |
q | 退出帮助文档 |
表2-1 man命令中常用按键以及用途
结构名称 | 代表意义 |
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
表2-2 man命令帮助信息的结构以及意义
常用系统工作命令
1.echo命令
功能:显示指定的字符串或变量的内容,不指定任何参数时将显下一个空行。
格式:echo [字符串或$变量名]...
示例:
[admin@redhat7 桌面]$ echo 'I Love linux'
I Love linux
[admin@redhat7 桌面]$ echo $HOSTNAME
redhat7.0
2.date命令
功能:显示及设置系统的时间或日期
格式:date [选项] [+指定的格式]
选项:%t 跳格[Tab键]
%H 小时(00~23)
%I 小时(00~12)
%M 分钟(00~59)
%S 秒(00~59)
%j 今年中的第几天
示例:
[admin@redhat7 桌面]$ date <==查看当前系统时间
2019年 03月 23日 星期六 14:55:32 CST
[admin@redhat7 桌面]$ date "+%Y-%m-%d %H:%M:%S" <==按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间
2019-03-23 14:57:16
[admin@redhat7 桌面]$ date -s "20170323 14:59:00" <==将系统的当前时间设置为XXX (发现普通用户无权限)
date: 无法设置日期: 不允许的操作
2017年 03月 23日 星期四 14:59:00 CST
[admin@redhat7 桌面]$ su root
密码:
[root@redhat7 桌面]# date -s "20170323 15:00:00"
2017年 03月 23日 星期四 15:00:00 CST
[root@redhat7 桌面]# date
2017年 03月 23日 星期四 15:00:17 CST
[root@redhat7 桌面]# date "+%j" <==查看今天是当年中的第几天
082
3.reboot/poweroff 默认只能使用root才有权限(后面会设置权限控制)
4.wget命令
功能:在终端中下载网络文件
格式:wget [选项] 下载地址
选项:-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
示例:
[root@linuxprobe ~]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf
--2017-08-24 19:30:12 -- http://www.linuxprobe.com/docs/LinuxProbe.pdf
Resolving www.linuxprobe.com (www.linuxprobe.com)... 220.181.105.185
Connecting to www.linuxprobe.com (www.linuxprobe.com)|220.181.105.185|:80...
connected.
…
5.ps命令
功能:查看系统中的进程状态
格式:ps [选项]
选项:-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
应用: 1.ps aux 最常用,可以用 | 管道和 more 连接起来分页查看;
ps -aux |more
2.和grep 结合,提取指定程序的进程;
ps aux |grep httpd
3.父进和子进程的关系友好判断,运用到f参数,父与子关系一目了然;
ps auxf |grep httpd
5.1.进程状态
Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放
T(停止):进程收到停止信号后停止运行。
示例:[admin@redhat7 桌面]$ ps aux
USER | PID | %CPU | %MEM | VSZ | RES | TTY | S | START | TIME | COMMAND |
进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程 状态 | 被启动 的时间 | 实际使用 CPU的时间 | 命令名称与参数 |
root | 1 | 0.0 | 0.4 | 53684 | 7628 | ? | Ss | 07 :22 | 0:02 | /usr/lib/systemd/systemd |
root | 2 | 0.0 | 0.0 | ? | S | 07:22 | 0:00 | [kthreadd] | ||
root | 3 | 0.0 | 0.0 | ? | S | 07:22 | 0:00 | [ksoftirqd/0] | ||
root | 5 | 0.0 | 0.0 | ? | S< | 07:22 | 0:00 | [kworker/0:0H] | ||
root | 7 | 0.0 | 0.0 | ? | S | 07:22 | 0:00 | [migration/0] | ||
………………省略部分输出信息……………… |
表2-3 进程状态
6.top命令
功能:动态地监视进程活动与系统负载等信息(类似于Windows任务管理器)
格式:top
示例:top
图3-2 top命令的运行界面
参数含义:
第1行:系统时间、运行时间、登录终端数、(CPU)系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低,最好不要超过5;判断负载情况—从右往左看)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。 (注:例如“96.1 id”意味着有96.1%的CPU处理器资源处于空闲。)
第4行:物理内存总量(kb)、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
7.pidof命令
功能:查询某个指定服务进程的PID值
格式:pidof [选项] [服务名称]
示例:
[root@linuxprobe ~]# pidof sshd
2156
8.kill命令
功能:终止某个指定PID的服务进程
格式:kill [选项] [进程PID]
示例:
[root@linuxprobe ~]# kill 2156
9.killall命令
功能:终止某个指定名称的服务所对应的全部进程
格式:kill all[选项] [服务名称]
示例:
[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]#
注:停止命令执行快捷键 Ctrl + C
系统状态检测命令
1. ifconfig命令
功能:获取网卡配置与网络状态等信息
格式:ifconfig [网络设备] [选项]
示例:
[root@linuxprobe
~]# ifconfig
eno16777728:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
<==网卡名称
inet 192.168.10.10 netmask
255.255.255.0 broadcast
192.168.10.255 <==IP地址,掩码
inet6 fe80::20c:29ff:fec4:a409
prefixlen 64 scopeid
0x20<link>
ether 00:0c:29:c4:a4:09 txqueuelen 1000 (Ethernet)
<==网卡物理地址(MAC地址)
RX packets 36 bytes 3176 (3.1 KiB) <==接收数据包个数及累计流量
RX errors 0 dropped 0 overruns 0
frame 0
TX
packets 38 bytes 4757 (4.6 KiB) <==发送数据包的个数及累计流量
TX errors 0 dropped 0 overruns
0 carrier 0 collisions 0
2. uname命令
功能:查看系统内核与系统版本等信息
格式:uname [-a]
示例:
[admin@redhat7 桌面]$ uname -a
Linux redhat7.0 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux <==系统、主机名称、内核版本、系统打包时间、系统位数、协议
3.
uptime用于查看系统的负载信息(显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息,(平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。))
示例:
[admin@redhat7 桌面]$ uptime
16:38:05 up
1:29, 2 users, load
average: 0.00, 0.01, 0.05
4.free用于显示当前系统中内存的使用量信息
内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的 内存量 | |
total | used | free | shared | buffers | cached | |
Mem | 1.8GB | 1.3GB | 542MB | 9.8MB | 1.6MB | 413MB |
-/+ buffers/cache | 869MB | 957MB | ||||
Swap | 2.0GB | 2.0GB |
表2-4
执行free -h命令后的输出信息
5.who用于查看当前登入主机的用户终端信息
6.last命令用于查看系统历史的登录记录(由于信息以日志保存,容易遭到篡改,只能用于参考,不能判断系统是否被黑)
7. history命令
功能:显示历史执行过的命令
示例:
[admin@redhat7 桌面]$ history
1 ln
-sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
2 ln -sf
/lib/systemd/system/multi-user.target /etc/systemd/
3 su do ln -sf
/lib/systemd/system/multi-user.target /etc/systemd/
4 su root
5 reboot
…
[admin@redhat7 桌面]$ !4 <== “!编码数字”的方式来重复执行某一次的命令
su root
密码:
su: 鉴定故障
[admin@redhat7 桌面]$ cat ~/.bash_history <==查看历史文件目录 (Linux系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用cat命令查看其文件内容。)
ln -sf /lib/systemd/system/multi-user.target
/etc/systemd/system/default.target
ln -sf /lib/systemd/system/multi-user.target
/etc/systemd/
su do ln -sf /lib/systemd/system/multi-user.target
/etc/systemd/
su root
reboot
[admin@redhat7 桌面]$ history -c <==清空历史命令记录
[admin@redhat7 桌面]$ history
1 history
8.sosreport命令用于收集系统配置及架构信息并输出诊断文档(厂商远程售后分析诊断)
示例:(将压缩包和校验码发送即可)
[root@linuxprobe ~]# sosreport
sosreport (version 3.0)
...
No changes will be made to system
configuration.
Press ENTER to continue, or CTRL-C to quit. <==此处敲击回车来确认收集信息
Please enter your first initial and last name
[linuxprobe.com]: <==此处敲击回车来确认主机编号
Please enter the case number that you are
generating this report for: <==此处敲击回车来确认主机编号
...
/var/tmp/sosreport-linuxprobe.com-20170905230631.tar.xz <==收集好的资料压缩文件
The
checksum is: 79436cdf791327040efde48c452c6322 <==校验码
...
工作目录切换命令
1.pwd命令用于显示当前用户所在的工作目录
2.ls
命令
功能:列表(List)查看目录及文件的属性信息。不带任何选项或参数时,默认显示当前目录的内容。
格式:ls [选项]
[文件或目录] ·
· ·
选项: -a 列出所有(All)文件和子目录,包括以点”.“开头的隐藏文件或目录。
-A
列出所有文件和子目录(包括隐藏文件或目录),特殊目录”.“和”..“除外
。
-l 以长格式(Long)显示文件或目录的详细信息。
-d 只显示目录本身(Directory)的属性信息,而不显示其中的文件或子目录。
示例:
[admin@redhat7 桌面]$ ls -al
总用量 4
drwxr-xr-x.
2 admin admin 6 3月
22 16:13 .
drwx------. 14 admin admin 4096 3月
23 15:26 ..
[admin@redhat7 桌面]$ ls -ld /etc
drwxr-xr-x. 133 root root 8192 3月
23 23:08 /etc
3.cd命令用于切换工作路径
示例:
[admin@redhat7 桌面]$ cd /etc <==切换到/etc目录
[admin@redhat7 etc]$ cd - <==返回到上一次的目录
/home/admin/桌面
[admin@redhat7 桌面]$ cd ~ <==切换到用户的家目录
[admin@redhat7 ~]$
[admin@redhat7 ~]$ cd .. <==切换到上一级目录
[admin@redhat7 home]$ cd
. <==切换到当前目录(注:.和..可以理解为相对路径)
[admin@redhat7 home]$
文本文件编辑命令
1.cat命令
功能:通常用于查看纯文本文件(内容较少)
格式:cat [参数] [文件]...
参数:-n 显示文件内容时在每一行行首添加行号(Number) 。
2.more命令用于查看纯文本文件(内容较多,more大小都能看);分页显示文件内容。按Enter键可以逐行下翻,按空格键下翻一页,按b键向上翻一页;和管道符号”|“结合使用时一般只能向下翻页,按q键退出。
3.head命令用于查看纯文本文档的前N行,格式:head [选项(-n)]
[文件]
4.tail命令
功能:查看文件末尾指定行数(默认为10行)的内容。
格式:tail [选项]
[文件] ·
· ·
选项: -N 这里的N为用户指定的行数(若不指定,默认显示10行)。
-f 跟踪文件中新增加(Follow)的内容,多用于观察日志文件变化等,按Ctrl+C键退出。
示例:
[root@sky ~]# tail -2 /etc/passwd
sky:x:500:500:sky:/home/sky:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
[root@sky ~]# tail -lf /var/log/messages
May
26 13:58:34 sky tpvmlpd2[2621]: device type not supported
5.less
命令用于分页显示文件内容,与more命令的类似,但使用更加灵活。按上下箭头键前后逐行滚动查看,空格键或PageDown键向下翻页,按b键或Pageup键向上翻页,按q键退出。
6.
wc命令
功能:统计文件的行数、单词数和字节数等信息(Word
Count)。默认选项为”-lwc”。
格式:wc [选项] [文件] ·
· ·
选项:-c 统计文件内容中的字节数。
-l 统计文仲内容中的行数。
-w 统计文件内容中的单词个数。
示例:
[root@sky ~]# ls -lh /etc/*.conf | wc -l
45
[root@sky ~]# wc /etc/fstab /etc/passwd
16
84 851 /etc/fstab
35
54 1653 /etc/passwd
51 138 2504 总用量
7.tr命令用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”
示例:
[root@linuxprobe
~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=RHEL7
# SYSTEM AUTHORIZATION INFORMATION
AUTH --ENABLESHADOW --PASSALGO=SHA512
…
8.stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。
stat命令可以用于查看文件的存储信息和时间等信息,命令stat
anaconda-ks.cfg会显示出文件的三种时间状态:Access、Modify、Change。
示例:
[root@linuxprobe ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
...
Access:
2017-07-14 01:46:18.721255659 -0400 <==查看时间,最后一次查看文件内容的时间
Modify:
2017-05-04 15:44:36.916027026 -0400 <==修改时间,最后一次修改文件内容的时间
Change:
2017-05-04 15:44:36.916027026 -0400 <==更改时间,最后一次变更文件属性的时间(文件的所有者和权限信息)
Birth: -
9.cut命令用于按“列”提取文本字符,格式为“cut [选项] 文本”。
10.diff命令用于比较多个文本文件的差异,格式为“diff [选项] 文件”。
在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处
示例:
[root@linuxprobe ~]# cat diff_A.txt <==使用cat命令分别查看diff_A.txt和diff_B.txt文件的内容,然后进行比较
Welcome to linuxprobe.com
Red Hat certified
Free Linux Lessons
…
[root@linuxprobe ~]#
diff --brief diff_A.txt diff_B.txt <==diff --brief命令显示比较后的结果,判断文件是否相同
Files diff_A.txt and diff_B.txt differ
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt <==最后使用带有-c参数的diff命令来描述文件内容具体的不同
*** diff_A.txt 2017-08-30 18:07:45.230864626
+0800
--- diff_B.txt 2017-08-30 18:08:52.203860389
+0800
***************
*** 1,5 ****
…
文件目录管理命令
1.file命令用于查看文件的类型,格式为“file 文件名”。
2.mkdir命令
功能:创建新目录(Make
Directories)
格式:mkdir [选项]
<目录> ·
· ·
选项:-p 必要时连父目录(Parent)一起创建,如果目标目录存在也不报错。
3.cp
命令
功能:复制(Copy)文件或目录,复制源是目录或多个文件时,目标必须是目录。
格式:cp [选项] <源文件或源目录>
· ·
· <目标文件或目录>
选项:-f 覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)复制。
-i 覆盖目标同名文件或目录时提醒用户确认(lnteractive,交互式)。
-p
复制时保持(Preserve)源文件的权限,属主及时间截等属性不变。
-r
复制目录时使用递归(Recursive)复制所有文件及子目录。
示例:
[root@sky ~]# cp -rf /boot/grub/ ./
[root@sky ~]# cp /etc/init.d/httpd ./myhttpd
在Linux系统中,复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
4.mv
命令
功能:移动(Move)文件或目录,可以在移动时改名(相当于剪切)。移动多个文件或目录时目标必须是目录。
格式:mv [选项]
<源文件或源目录> · · ·
<目标文件或目录>
选项:-f 覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)移动。
-i 覆盖目标同名文件或目录时提醒用户确认(interactive交互式)。
5.rm
命令
功能:删除指定的文件或目录。
格式:rm [选项]
<文件或目录> ·
· ·
选项:-f 在删除文件或目录时不进行提醒,而直接强制(Force)删除。
-i 在删除文件或目录时提醒用户确认(lnteractive,交互式)。
-r 删除目录时使用,递归(Recursive)删除所有文件及子目录。
6.ln
命令
功能:为文件或目录建立链接(Link) ,硬链接不能用于目录也不能跨硬盘分区。
格式:ln [参数] <源文件或源目录>...<
链接文件位置>
参数:-s 建立软链接即符号链接(Symbolic)文件,默认为硬链接。
-f 若链接文件已存在,则直接强制(Force)覆盖。
-I 在覆盖目标链接文件时提醒用户确认。
示例:
[root@sky ~]# ln -s /usr/local/httpd/bin/apachectl
/usr/sbin/
[root@sky ~]# ln /etc/shadow /etc/shadow.bak
7.dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [选项]”。
Linux系统中有一个名为/dev/zero的设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。
选项:-if(input
file) 输入的文件名称
-of(output file) 输出的文件名称
-bs 设置每个“块”的大小
-count 设置要复制“块”的个数
示例:
[root@linuxprobe ~]#
dd if=/dev/zero of=560_file count=1 bs=560M <==用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。(默认单位为字节)
1+0 records in
1+0 records out
587202560 bytes (587 MB) copied, 27.1755 s,
21.6 MB/s
[root@linuxprobe ~]# dd if=/dev/cdrom
of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso <==使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s,
10.1 MB/s
8.touch命令
功能:用用于创建空白文件或设置文件的时间
格式:touch [选项] [文件]
对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。(接上面stat命令)
选项:-a 仅修改“读取时间”(atime)
-m 仅修改“修改时间”(mtime)
-d 同时修改atime与mtime
示例:
先使用ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的呢)
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1213 May 4 15:44 anaconda-ks.cfg
[root@linuxprobe ~]# echo "Visit the
LinuxProbe.com to learn linux skills" >>
anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 Aug 2 01:26 anaconda-ks.cfg
[root@linuxprobe ~]# touch -d "2017-05-04
15:44" anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
注意:atime和mtime时间可以修改,ctime不能修改
打包压缩与收缩命令
1.tar命令
功能:将文件或目录备份打包,并可通过选项调用gzip或bzip2程序将包文件进行压缩,解压。
格式:tar [选项] <包文件名> [文件或目录]...
选项:-c 创建(Create).tar格式的包文件
-C 指定到解压的目录
-f 目标文件名
-j 调用bzip2程序进行压缩或解压
-p 打包时保存文件及目录的权限
-P 打包时保存文件及目录的绝对路径
-t 查看压缩包内的文件
-v 输出详细信息。
-x 解开.tar格式的包文件
-z 调用gzip程序进行压缩或解压
Tar
czvf 压缩包名称.tar.gz 源文件
Tar xzvf 压缩包名称.tar.gz 源文件
示例:
[root@sky ~]# tar -cf
ab.tar a.file b.file <==创建包文件ab.tar
[root@sky ~]# tar -tf ab.tar <==查看包文件中的内容
a.file
b.file
[root@sky ~]# tar -zcf ab.tar.gz a.file
b.file <==创建压缩包文件ab.tar.gz
[root@sky ~]# tar -jcf ab.tar.bz2 a.file
b.file <==创建压缩包文件ab.tar.bz2
[root@sky ~]# tar -jxf ab.tar.bz2 -C
/to/som/where <==解压释放文件至指定目录
2.gzip
/bzip2 / zip 命令
功能:创建.gz格式的压缩文件,使用-d选项可以进行解压缩(或使月gunzip/
bunzip2命令)。
格式:gzip /bzip2 / zip [选项]
<文件或目录> ·
· ·
选项:-1 以最快速度优先的模式创建压缩文件。
-9 以最大压缩比优先的模式创建压缩文件。
-d 解压缩gz格式的压缩文件。
3.unzip
命令
功能:解压缩.zip格式的压缩文件。
格式:unzip [ 选项] <压缩文件名>
选项:-d 解压到指定的文件夹。
4.grep
命令
功能:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
格式:grep [选项]
<查找字串>
[文件]
选项:-i 查找内容时忽略大小写(Ignore Case) 。
-v 反转查找(Invert) 即输出与查找条件不相符的行。
5.find命令
在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上
功能:按照指定条件来查找文件
格式:find <查找路径> <查找条件> · · ·
选项:-name 按文件名称查找,可以使用通配符。
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-type
按文件类型查找,类型f,d,l,b、c分别表示普通文件,目录,链接文件,块设备文件、字符设备文件。
示例:
[root@sky ~]# find /etc -name "passwd"
/etc/pam.d/passwd
/etc/passwd
[root@sky ~]# find /boot/ -size
+1024k <==查找大于1M的文件
/boot/vmlinuz-2.6.32-358.el6.x86_64
/boot/System.map-2.6.32-358.el6.x86_64
参考资料
刘瑞 Linux就该怎么学