本文针对Liunx系统中的常见指令做了介绍,并在其中穿插了一些Liunx的基础知识,希望可以带给读者收获,疏漏之处,还望指出。
语法:ls [命令选项] [目录或文件]
功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
实战演练:
ls -a
:列出目录下的所有文件,包括以 . 开头的隐含文件
在liunx下,文件/目录名如果以.开头,就是一个隐藏文件
补充内容:
一个命令可以携带多个命令选项,比就如下面这个例子 (也可以是ls -al
)
语法: pwd
功能: 显示用户当前所在的目录
实战演练:
语法::cd [目录名]
功能::改变工作目录。将当前工作目录改变到指定的目录下
常用操作:
cd..
:返回上级目录
cd /home/litao/linux/
:绝对路径
cd ../day02/
:相对路径
cd ~
:进入当前用户的家目录(当前用户可以使用指令whoami
查看)
cd -
:返回最近访问目录
cd /root/code/lesson2
:使用绝对路径进入目录
可以看到,在访问code目录前,当前目录为
/root
,cd -
返回最近一次访问目录,在该图中为/root
这里需要穿插一些Liunx的相关知识,如果对于目录,相对路径和绝对路径不少很理解的话可以阅读一下,熟悉的读者可以略过
.
代表当前路径
..
代表上级目录
/
liunx下路径分隔符(window下使用\
作为分隔符)
Linux的目录结构整体是一个多叉树,如下图所示(图片中的/
代表根目录):
- 绝对路径:从根目录开始,定位文件的路径,就是绝对路径。(比如上图中的test.c,它的绝对路径就是
/home/bit/test.c
)- 相对路径:以当前文件所在的目录为参照基础,链接到目标文件资源(或文件夹)的路径。(还是以上图的test.c为例,假设当前文件(或目录)为home,那么相对路径为
/bit/test.c
)
绝对路径与相对路径的用途:
绝对路径:用起来比较麻烦,一般在某些配置文件中,进行某种文件配置时采用
相对路径:用起来方便,更加常用
语法: tree
(可以指定目录,默认是当前目录)
功能: 以树状结构显示Liunx执行的目录结构(需要安装)
安装方式: 在root(whoami
可以查看当前账户)账户下输入命令yum install -y tree
安装结束后就可以使用了
实战演练:
语法: stat filename
功能: 查看文件的所有属性
语法: touch filename
(可以指定路径,默认是当前目录)
功能: 在目录下创建一个普通文本文件
实战演练:
文件的写入: nano
+filename 打开文件编写(以记事本的形式)
nano
需要安装,和之前tree
的安装类似,在root账户下输入命令yum install -y nano
,当然如果操作系统自带的话就不用了,可以先使用,如果显示command not found
说明没有安装
点击运行,来到接下来的页面
这里就可以以记事本的方式写入文件了,就像下面这张图
按ctrl + x
退出,系统会问你是否保存(y表示yes,保存,n表示no,不保存,ctrl + c
表示取消,就是退回到编写页面)
输入y表示确定,按回车键(按回车键后,系统会在下面提示你保存文件的名称,如果不需要修改名称的话,在按一次回车键就可以了)
可以使用cat filename
查看文件的内容(cat在后面会讲,这里简单了解就可以了)
文件的执行: gcc
+filename编译文件(编译完成后会生成新文件,这里简单了解即可)
语法: mkdir [选项] dirname
功能: 在当前目录下创建一个名为 dirname
的目录
实战演练:
语法: rmdir [选项] dirname
功能: 删除空目录,非空目录会报错
语法: rm [选项] name
功能: 可以删除文件或目录,在不加命令选项时只能删除文件(rm -r
可以删除目录,下面有提到)(出现提示时输入y表示确定,n表示取消,也就是yes和no的首字母)
拥有
rm -f
和rm -r
的特点,既是强制删除,也是递归删除
语法: clear
功能: 清屏
语法: man [选项] 命令
功能: 可以查询某条指令的说明文档,比如man ls
,也可以查看自身,就是man man
实战演练:
这里可以看到,man指令有八个手册
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
其中第二个手册用的较多
当直接使用man
指令时,比如man ls
,会从第一个手册开始查找,如果有,则返回,没有则查找下一个手册。带上数字就可以指定某个手册查找,比如man 1 ls
。如果该手册没有此命令会报错,比如执行命令man 2 ls
会显示No manual entry for ls in section 2
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录(默认只能复制普通文件,目录需要-r
选项)
实战演练:
cp -f
可以强制拷贝
mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命
令,经常用来备份文件或者目录。(和cp指令有点相似,一个是复制,一个是剪切,和cp不同的是,mv指令可以直接移动目录,cp指令则需要参数)
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的
目录中。- 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
将所给的源文件或目录重命名为给定的目标文件名。- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至
目标目录中。
实战演练:
移动文件(目录不演示了,mv可以直接移动目录,和移动文件一样)
如下图所示,将lesson3中的name.c
移动到lesson1中
文件/目录重命名
如下图所示,将lesson3中的test.c
重命名为到new_test.c
(目标文件和源文件可以指定目录,不一定必须是当前目录)
语法: cat [选项][文件]
功能: 打印文件内容,适合短文本(cat 后面如果什么都不跟,默认从键盘读数据,ctrl + c
终止)
功能: echo命令的功能是在显示器上显示一段文字,或者在文件中写入要写的内容。
实战演练:
echo "aaa bbb ccc" > test.txt
将字符串aaa bbb ccc
覆盖写入文件test.txt
。如果目标不存在,会自动创建。再写入之前,会先清空文件的原有内容,在进行写入,也被称为输出重定向。写入数据后可以使用cat
命令查看
echo "aaa bbb ccc" >> test.txt
将字符串aaa bbb ccc
追加写入文件test.txt
。如果目标不存在,会自动创建。不会清空文件的原有内容,直接在后面写入,也被称为追加重定向。写入数据后可以使用cat
命令查看
<
符号被称为输入重定向,现在简单了解即可,后面遇到了再细讲
键盘和屏幕可以看作特殊的文件,换句话说,Liunx下一切皆文件
语法: more [选项][文件]
功能: 和cat类似,默认按照屏幕大小打印文件内容,可以按回车翻阅下一行,按q退出,这里了解即可,后面的less指令更加重要
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
- 但若使用了 less 时,就可以使用
pageup
pagedown
上方向键
下方向键
等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!- 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [选项][文件]
功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。(和more一样,按q退出)
实战演练:
接下来要讲的head与tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而 tail是看档案的结尾
语法: head [选项][文件]
功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。也可以打印指定行数。比如head -5
表示打印文档的头5行
语法: tail [选项][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
语法: date [选项]
功能: 按照某种格式显示时间,详见后面的演示
实战演练:
date
加选项
cal命令可以用来显示公历(阳历)日历。
语法: cal [参数][月份][年份]
功能: 用于查看日历等时间信息
语法: find pathname -options
功能: 用于在文件树种查找文件(类似windows下的搜索),并作出相应的处理
实战演练:
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
实战演练:
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式(压缩目录建议使用zip -r
,单用zip不会压缩目录内的文件)
实战演练:
语法: unzip 解压缩文件 目录或文件
功能: 解压缩,zip的逆向操作
实战演练:
(可以看到,最开始lesson3目录下没有dir这个目录,使用
unzip
解压缩后就有了)
但此时有一个问题,unzip
只可以将压缩文件或目录解压到当前的目录下,如果想解压到其他目录下,只需要加上-d这个选项即可,比如说我想把dir.zip这个文件解压到上级目录,就可以使用指令unzip -d dir.zip ..
,这里就不演示了
补全命令
只需输入文件或目录名的前几个字符, 然后按TAB键(一次不行的话就连按两次),如无相重的,完整的文件名立即自动在命令行出现;如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字.
比如我们想要使用命令mkdir
,但是输入mkd后却忘了后面是什么,这时就可以按两次tab
键,会显示以mkd开头的所有命令
也可以不输入任何字符,直接按两下tab键,会显示所有的命令
这里可以看到,一共有1264条指令,不会全部显示,按回车键显示下一行,按ctrl+c
退出
终止程序运行
翻阅历史命令
这个大家在自己的系统中按上下方向键一试即可