Linux命令(文件管理)
Linux命令概述
- Linux 刚出世时没有什么图形界面,所有的操作全靠命令完成,就如同电视里的黑客那样,充满了神秘与晦涩。
- 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令行,就不算会 Linux。
- Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。Linux 发行版本最少的命令也有 200 多个,这里只介绍比较重要和使用频率最多的命令。
Linux命令格式
command [-options] [parameter1]...
说明:
- command:命令名,相应功能的英文单词或单词的缩写。
- [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选。
- [parameter1] ... :传给命令的参数,可以是零个一个或多个。
例如:
查看帮助文档
1、--help
:一般是linux命令自带的帮助信息,如:ls --help
。
2、man(有问题找男人,manual)
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明,该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。例:man ls
; man 2 printf
。
man中各个section意义如下:
-
Standard commands(标准命令)。
-
System calls(系统调用,如open,write)。
-
Library functions(库函数,如printf,fopen)
-
Special devices(设备文件的说明,/dev下各种设备)。
-
File formats(文件格式,如passwd)
-
Games and toys(游戏和娱乐)。
-
Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)。
-
Administrative Commands(管理员命令,如ifconfig)。
man是按照手册的章节号的顺序进行搜索的。
man设置了如下的功能键:
功能键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出man命令 |
h | 列出所有功能键 |
/word | 搜索word字符串 |
3、自动补全
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。
文件管理
查看文件信息:ls
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 查看当前文件夹的属性
图中列出的信息含义如下图所示:
与DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。
切换工作目录: cd
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感。
语法说明:
命令名称:cd
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:所有用户
语法:cd [目录]
功能描述:切换目录
cd / 进入用户的主目录。
cd test 进入当前目录下的test目录 【这个是相对目录】
cd /root/test 进入root目录下的test目录 【这个是绝对目录】
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 切换到当前目录
cd .. 切换到上级目录
cd - 可进入上次所在的目录
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
注意:如果路径是从根路径开始的,则路径的前面需要加上 /
,如 /mnt
,通常进入某个目录里的文件夹,前面不用加 / 。
清屏:clear
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l
。
显示当前路径:pwd
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
语法说明:
命令名称:pwd
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd
功能描述:显示当前所在的工作目录
范例:pwd
创建目录:mkdir
通过mkdir
命令可以创建一个新的目录。参数-p
可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
语法说明:
命令名称:mkdir
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
语法:mkdir [目录名]
功能描述:创建新目录
参数说明 -p 如果上层目录不存在,则会创建上层目录
范例:
mkdir test 在当前目录下创建一个test的目录
mkdir /root/test 在root目录下创建一个test目录
mkdir /root/test1/test2/test3 创建目录 这里会报错,因为test1,test2目录不存在 解决办法是 mkdir -p /root/test1/test2/test3
mkdir /root/test4 /root/test4 同时创建两个目录
mkdir test6 test7 在当前目录下创建两个目录
mkdir 'pargam files'创建一个有空格的目录【不推荐使用】
创建文件:touch
通过touch命令可以创建一个新空文件。
语法说明:
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
功能描述:创建空文件
范例:
touch test 在当前目录下创建一个test的文件
touch /root/test在root下创建一个test的空文件
touch test1 test2 在当前目录下创建两个空文件
touch 'test1 test2'在当前目录下创建一个有空格的文件[不推荐使用]
拷贝文件:cp
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
常用选项说明:
语法说明:
命令名称: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
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
常用选项说明:
语法说明:
命令名称:mv
命令英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
语法:mv [源文件或目录] [目的目录]
功能描述:移动文件、更名
案例:
mv /root/install.log /root/mywork/install.log 把install.log移动到mywork里面
mv /root/install.log /root/ins.log 把install.log改成ins.log
删除目录:rmdir
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
删除文件:rm
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i
参数以逐个确认要删除的文件。
常用参数及含义如下:
语法说明:
命令名称:rm
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm -r [文件或目录]
案例:
rm test1 删除test1文件
rm -r test1 删test1文件或者test1文件夹里面的所有内容会提示
rm -rf test1删除test1文件或者文件夹不提示
rm -rf /root/mywork 删除root下面的mywork文件或者文件夹不提示
rm -rf / 删除所有的操作系统文件 【千万不要使用】
查看或合并文件:cat
cat 命令用于连接文件并打印到标准输出设备上。参数-n:显示文件里数据的行号。
语法说明:
命令名称:cat
命令英文原意:concatenate and display files
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
功能描述:显示文件内容
范例:
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
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
语法说明:
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格) 或f显示下一页
(Enter)显示下一行
q或Q退出
功能描述:分页显示文件内容
范例: $ more /etc/services 显示services里面的内容。并分显示
查看文件前几行:head
语法说明:
指令名称:head
指令所在路径:/bin/head
执行权限:所有用户
语法:head -num [文件名]
-num 显示文件的前num行
功能描述:查看文件的前几行
范例:$ head -20 /etc/services 查看services文件的前20行,一般用于看代码的注释
查看文件后几行:tail
语法说明:
指令名称:tail
指令所在路径:/bin/tail
执行权限:所有用户
语法:tail -num [文件名]
-num 显示文件的后num行
功能描述:查看文件的前几行
范例:$ tail -20 /etc/services 查看services文件的后20行
建立链接文件:ln
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录,会同步更新。
使用格式:
-
ln 源文件 链接文件
-
ln -s 源文件 链接文件
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
语法说明:
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [源文件] [目标文件]
-s 创建软链接
功能描述:产生链接文件
案例:
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 如果不存在,则创建,存在则覆盖其内容 )
所谓的重定向就是修改了默认的输出方向 ,>
:输出重定向会覆盖原来的内容,>>
输出重定向则会追加到文件的尾部。
文件搜索命令:which
作用:显示系统命令所有目录
语法说明:
命令名称:which
命令所在路径:/usr/bin/which
执行权限:所有用户
语法:which [命令名称]
功能描述:显示系统命令所在目录\
范例: which ls 可以查看命令所在的目录
文件搜索命令:find
作用:查找文件
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
语法说明:
命令名称:find
命令所在路径:/usr/bin/find
执行权限:所有用户
语法:find [搜索路径] [搜寻关键字]
功能描述:查找文件或目录
$ find /etc -name init 在目录/etc中查找文件init
$ find / -size +204800 在根目录下查找大于100MB的文件
$ find / -user sam 在根目录下查找所有者为sam的文件
$ find /etc -ctime -1 在/etc下查找24小时内被修改过属性的文件和目录
$ find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
$ find /etc -name inittab -exec ls -l {} \; 在/etc下查找inittab文件并显示其详细信息
文件搜索命令:grep
搜索文件里面的内容的命令
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt
。
常用选项说明:
grep搜索内容串可以是正则表达式。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep常用正则表达式:
语法说明:
命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep [指定字串] [源文件]
功能描述:在文件中搜寻字串匹配的行并输出
范例:# grep ftp /etc/services
归档管理:tar
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式:tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
语法说明:
命令名称:tar
命令所在路径:/bin/tar
执行权限:所有用户
语法:tar 选项[cvf] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
功能描述:打包目录
压缩后文件格式:.tar.gz
案例
tar -zcvf test.tar.gz test #把test文件或文件夹压缩成test.tar.gz
tar -zxvf test.tar.gz #解压test.tar.gz到当前目录
tar -zxvf xxx.tar.gz -C ./dir1 #解压到指定目录
文件压缩解压:gzip
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
注意gzip不能压缩目录,只能压缩文件,要压缩目录只能使用tar的方法
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
语法说明:
命令名称:gzip
命令英文原意:GNU zip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip 选项 [文件]
功能描述:压缩文件
压缩后文件格式:.gz
案例1 原文件名为file1.txt,压缩后原文件消失,压缩后文件名为file1.txt.gz
gzip file1.txt
案例2 解压文件 gzip -d file1.txt.gz
案例3 压缩的时候,显示压缩率 gzip -v file1.txt
案例4 一条命令压缩多个文件,压缩之后,是各自分开的
gzip file1.txt file2.txt 会生成file1.txt.gz file2.txt.gz
案例5 压缩过程中,保留原文件 gzip -k file1.txt
案例6 压缩到标准输出中 gzip -c file1.txt file2.txt > foo.gz
案例7 gzip -c test.txt > /root/test.gz 把当前目录 的test.txt压缩到root/test.gz里面
案例8 gzip -d /root/test.gz >/root/server/