ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“…”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
语法说明
命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小
-d 可以查看当前目录的属性
案例
ls -a 显示当前目录下的所有文件包含隐藏文件
ls -al 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息
ls -alh 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息和大小
ls -dl 查看当前文件夹的属性
ls 显示当前目录里面所有文件及文件夹
ls -al 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息
ls -alh 显示当前目录下的所有文件包含隐藏文件以列表方式显示文件的详细信息和大小
图中列出的信息含义如下图所示:
与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。
通配符 | 含义 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te开头的文件 |
ls *html | 查找结尾为html的文件 |
? | 代表文件名中任意一个字符 |
ls ?.c | 只找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
[] | [”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的的任意一个字符 |
ls [a-f]* | 找到从a到f范围内的的任意一个字符开头的文件 |
ls a-f | 查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用 |
\ | 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。 |
ls \*a | 查找文件名为*a的文件 |
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感
语法说明
1
命令名称:cd
2
命令英文原意:change directory
3
命令所在路径:shell内置命令
4
执行权限:所有用户
5
语法:cd [目录]
6
功能描述:切换目录
7
cd / 进入用户的主目录。
8
cd test 进入当前目录下的test目录 【这个是相对目录】
9
cd /root/test 进入root目录下的test目录 【这个是绝对目录】
10
cd ~ 切换到当前用户的主目录(/home/用户目录)
11
cd . 切换到当前目录
12
cd .. 切换到上级目录
13
cd - 可进入上次所在的目录
14
?
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
注意:
•如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 “ / ”。
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
语法说明
1
命令名称:pwd
2
命令英文原意:print working directory
3
命令所在路径:/bin/pwd
4
执行权限:所有用户
5
语法:pwd
6
功能描述:显示当前所在的工作目录
7
范例:pwd
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
语法说明
1
命令名称:mkdir
2
命令英文原意:make directories
3
命令所在路径:/bin/mkdir
4
执行权限:所有用户
5
语法:mkdir [目录名]
6
功能描述:创建新目录
7
参数说明 -p 如果上层目录不存在,则会创建上层目录
8
范例:
9
mkdir test 在当前目录下创建一个test的目录
10
mkdir /root/test 在root目录下创建一个test目录
11
mkdir /root/test1/test2/test3 创建目录 这里会报错,因为test1,test2目录不存在 解决办法是 mkdir -p /root/test1/test2/test3
12
mkdir /root/test4 /root/test4 同时创建两个目录
13
mkdir test6 test7 在当前目录下创建两个目录
14
mkdir 'pargam files'创建一个有空格的目录【不推荐使用】
15
通过touch命令可以创建一个新空文件
语法说明
1
命令名称:touch
2
命令所在路径:/bin/touch
3
执行权限:所有用户
4
语法:touch [文件名]
5
功能描述:创建空文件
6
范例:
7
touch test 在当前目录下创建一个test的文件
8
touch /root/test在root下创建一个test的空文件
9
touch test1 test2 在当前目录下创建两个空文件
10
touch 'test1 test2'在当前目录下创建一个有空格的文件[不推荐使用]
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
常用选项说明:
选项 | 含义 |
---|---|
-a | 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
-n | 已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
-v | 显示拷贝进度 |
语法说明
命令名称:cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
语法:cp -R [源文件或目录] [目的目录]
-R 复制目录
功能描述:复制文件或目录 ,默认的cp只能复制文件,不能是目录 如果是目录要使用-r
案例
cp -r /root/mywork /root/helloworld 把mywork复制到helloworld里面
cp - /root/install.log /root/helloworld 把install.log文件复制到helloworld里面
cp -rvif /root/install.log /root/helloworld 把install.log文件复制到helloworld里面 并显示进度
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
常用选项说明:
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-v | 显示移动进度 |
语法说明
1
命令名称:mv
2
命令英文原意:move
3
命令所在路径:/bin/mv
4
执行权限:所有用户
5
语法:mv [源文件或目录] [目的目录]
6
功能描述:移动文件、更名
7
案例
mv /root/install.log /root/mywork/install.log 把install.log移动到mywork里面
mv /root/install.log /root/ins.log 把install.log改成ins.log
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
常用参数及含义如下表所示:
参数 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
-v | 显示删除进度 |
语法说明
1
命令名称:rm
2
命令英文原意:remove
3
命令所在路径:/bin/rm
4
执行权限:所有用户
5
语法:rm -r [文件或目录]
6
案例
rm test1 删除test1文件
rm -r test1 删test1文件或者test1文件夹里面的所有内容会提示
rm -rf test1删除test1文件或者文件夹不提示
rm -rf /root/mywork 删除root下面的mywork文件或者文件夹不提示
rm -rf / 删除所有的操作系统文件 【千万不要使用】
cat 命令用于连接文件并打印到标准输出设备上。
常用参数及含义如下表所示:
参数 | 含义 |
---|---|
-n | 显示文件里数据的行号 |
1
命令名称:cat
2
命令英文原意:concatenate and display files
3
命令所在路径:/bin/cat
4
执行权限:所有用户
5
语法:cat [文件名]
6
功能描述:显示文件内容
7
范例:
cat install.log 查看当前目录下的install.log文件
cat /root/install.log 查看绝度目录下的文件
cat test1.txt test2.txt >>test3.txt 把test1.txt test2.txt里面的内容追加到test3里面
cat test1.txt test2.txt > test3.txt 先清空test3.txt再把test1.txt test2.txt里面的内容追加到test3里面
> >>的区别是前者先清空再追加 后者直接追加
?
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
语法说明
1
命令名称:more
2
命令所在路径:/bin/more
3
执行权限:所有用户
4
语法:more [文件名]
5
(空格) 或f显示下一页
6
(Enter)显示下一行
7
q或Q退出
8
功能描述:分页显示文件内容
9
范例: $ more /etc/services 显示services里面的内容。并分显示
语法说明
1
指令名称:head
2
指令所在路径:/bin/head
3
执行权限:所有用户
4
语法:head -num [文件名]
5
-num 显示文件的前num行
6
功能描述:查看文件的前几行
7
范例:$ head -20 /etc/services 查看services文件的前20行,一般用于看代码的注释
语法说明
1
指令名称:tail
2
指令所在路径:/bin/tail
3
执行权限:所有用户
4
语法:tail -num [文件名]
5
-num 显示文件的后num行
6
功能描述:查看文件的前几行
7
范例:$ tail -20 /etc/services 查看services文件的后20行
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录,会同步更新。
使用格式:
ln 源文件 链接文件
ln -s 源文件 链接文件
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
语法说明
1
命令名称:ln
2
命令英文原意:link
3
命令所在路径:/bin/ln
4
执行权限:所有用户
5
语法:ln -s [源文件] [目标文件]
6
-s 创建软链接
7
功能描述:产生链接文件
8
案例
ln /etc/issue /root/etc/issue.bak.hard 硬链接
|--如果删除了issue文件 issue.bak.hard可以使用
可以使用命令echo 'www.whsxt.com' >> /etc/issue去修改issue文件
看看issue.bak.hard里面内容是否更新了
ln -s /etc/issue /root/etc/issue.soft 软链接
|--如果删除了etc/issue文件,那么issue.soft就失效了
ls -ilh可以查看文件的硬盘地址,可以看到硬链接的地址的原文件的地址一
这也就是为什么能同步更新的原因了
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
总结:所谓的重定向就是修改了默认的输出方向
注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。
作用:显示系统命令所有目录
语法说明
1
命令名称:which
2
命令所在路径:/usr/bin/which
3
执行权限:所有用户
4
语法:which [命令名称]
5
功能描述:显示系统命令所在目录\
6
范例: which ls 可以查看命令所在的目录
作用:查找文件
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
命令 | 含义 |
---|---|
find test.sh | 查找当前目录下所有名为test.sh的文件 |
find *.sh | 查找当前目录下所有后缀为.sh的文件 |
find [A-Z]* | 查找当前目录下所有以字母开头的文件 |
find /tmp -size 2M | 查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M | 查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M | 查找在/tmp 目录下小于2M的文件 |
find -size +4k -size -5M | 查找当前目录下大于4k,小于5M的文件 |
find -perm 777 | 查找当前目录下权限为 777 的文件或目录 |
语法说明
1
命令名称:find
2
命令所在路径:/usr/bin/find
3
执行权限:所有用户
4
语法:find [搜索路径] [搜寻关键字]
5
功能描述:查找文件或目录
6
$ find /etc -name init 在目录/etc中查找文件init
7
$ find / -size +204800 在根目录下查找大于100MB的文件
8
$ find / -user sam 在根目录下查找所有者为sam的文件
9
$ find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录
10
$ find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB 的文件
11
$ find /etc -name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息
搜索文件里面的内容的命令
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:
grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
常用选项说明:
选项 | 含义 |
---|---|
-v | 显示不包含匹配文本的所有行(相当于求反) |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
grep搜索内容串可以是正则表达式。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep常用正则表达式
参数 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行;grep -n ‘^a’ 1.txt |
ke$ | 行尾,搜寻以 ke 结束的行;grep -n ‘ke$’ 1.txt |
[Ss]igna[Ll] | 匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n ‘[Ss]igna[Ll]’ 1.txt |
. | . (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n ‘e.e’ 1.txt |
语法说明
1
命令名称:grep
2
命令所在路径:/bin/grep
3
执行权限:所有用户
4
语法:grep [指定字串] [源文件
5
功能描述:在文件中搜寻字串匹配的行并输出
6
范例:# grep ftp /etc/services
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
参数 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
-z | 打包的同时压缩 |
注意:除了f需要放在参数的最后,其它参数的顺序任意。
语法说明
1
命令名称:tar
2
命令所在路径:/bin/tar
3
执行权限:所有用户
4
语法:tar 选项[cvf] [目录]
5
-c 产生.tar打包文件
6
-v 显示详细信息
7
-f 指定压缩后的文件名
8
-z 打包同时压缩
9
功能描述:打包目录
10
压缩后文件格式:.tar.gz
11
案例
12
tar -zcvf test.tar.gz test 把test文件或文件夹压缩成test.tar.gz
13
tar -zxvf test.tar.gz 解压test.tar.gz
14
tar -zxvf xxx.tar.gz -C ./dir1 #解压到指定目录
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
注意gzip不能压缩目录 只能压缩文件,要压缩目录 只能使用tar的方法
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
-k | 压缩后保留原文件,默认不保存 |
-c | 结果写到标准输出,原文件保持不变 |
•
•
语法说明
1
命令名称:gzip
2
命令英文原意:GNU zip
3
命令所在路径:/bin/gzip
4
执行权限:所有用户
5
语法:gzip 选项 [文件]
6
功能描述:压缩文件
7
压缩后文件格式:.gz
8
案例1 原文件名为file1.txt,压缩后原文件消失,压缩后文件名为file1.txt.gz
9
gzip file1.txt
10
案例2 解压文件 gzip -d file1.txt.gz
11
案例3 压缩的时候,显示压缩率 gzip -v file1.txt
12
案例4 一条命令压缩多个文件,压缩之后,是各自分开的
13
gzip file1.txt file2.txt 会生成file1.txt.gz file2.txt.gz
14
案例5 压缩过程中,保留原文件 gzip -k file1.txt
15
案例6 压缩到标准输出中 gzip -c file1.txt file2.txt > foo.gz
16
案例7 gzip -c test.txt > /root/test.gz 把当前目录 的test.txt压缩到root/test.gz里面
17
案例8 gzip -d /root/test.gz >/root/server/
18
gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。
语法说明
1
命令名称:gunzip
2
命令英文原意:GNU unzip
3
命令所在路径:/bin/gunzip
4
执行权限:所有用户
5
语法:gunzip 选项 [压缩文件]
6
功能描述:解压缩.gz的压缩文件
7
范例: $ gunzip file1.gz
8
案例
9
gzip –d /opt/etc.zip.gz 解压etc.zip.gz文件
10
gunzip /opt/etc.zip.gz 解压etc.zip.gz文件
11
因为gunzip是gzip的硬链接 所以也有gzip的功能
12
gunzip -r /root/myhelloworld 解压myhelloworld下面的所有.gz文件,并去掉压缩包
zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
常用选项:
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
-k | 压缩后保留原文件,默认不保存 |
-c | 结果写到标准输出,原文件保持不变 |
语法说明
1
命令名称:zip
2
命令所在路径:/usr/bin/zip
3
执行权限:所有用户
4
语法:
5
zip 选项[-r] [压缩后文件名称] [文件或目录]
6
-r 压缩目录
7
功能描述:压缩文件或目录
8
压缩后文件格式:.zip
9
案例1 zip -q -r html.zip /home/Blinux/html 将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
10
案例2 zip -q -r html.zip html 把当前目录下的html文件或文件夹打包成html.zip
11
案例3:zip -q -r html.zip * 把当前目录下的所有文件打包成html.zip
unzip命令用于解压缩由zip命令压缩的“.zip”压缩包。
常用选项:
选项 | 含义 |
---|---|
-n | 解压是不覆盖原有的文件 |
-v | 执行时显示详细信息进度 |
语法说明
1
命令名称:unzip
2
命令所在路径:/usr/bin/unzip
3
执行权限:所有用户
4
语法:unzip [压缩文件]
5
功能描述:解压.zip的压缩文件
6
案例
7
unzip test.zip 将当前目录下的压缩文件text.zip在当前目录下解压缩。
8
unzip -n test.zip -d /tmp 将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
bzip2命令用于创建和管理(包括解压缩)“.bz2”格式的压缩包。
常用选项:
选项 | 含义 |
---|---|
-d | 执行解压 默认为压缩 |
-v | 执行时显示版本信息 |
-k | 压缩后保存原来的文件 |
-f | bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数; |
-z | 强制执行压缩 |
语法说明
1
命令名称:bzip2
2
命令所在路径:/usr/bin/bzip2
3
执行权限:所有用户
4
语法: bzip2 选项 [-k] [文件]
5
-k 产生压缩文件后保留原文件
6
功能描述:压缩文件
7
压缩后文件格式:.bz2
8
范例:
9
bzip2 filename 或 bzip2 -z filename 压缩指定文件filename:
10
bzip2 -d filename.bz2 解压指定的文件filename.bz2:
11
bunzip2 filename.bz2 解压指定的文件filename.bz2:
12
bzip2 -v filename 压缩解压的时候将结果也输出:
bunzip2命令解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令,只能对文件进行压缩。对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接,即软链接,因此压缩解压都可以通过bzip2实现
常用选项:
选项 | 含义 |
---|---|
-f | 解压是不覆盖原有的文件 |
-k | 在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数; |
-v | 执行时显示详细信息 |
语法说明
1
命令名称:bunzip2
2
命令所在路径:/usr/bin/bunzip2
3
执行权限:所有用户
4
语法: bunzip2 选项 [-k] [压缩文件]
5
-k 解压缩后保留原文件
6
功能描述:解压缩
7
范例:$ bunzip2 -k file1.bz2