文章目录
前言
本篇是新手或者复习型博文,且博主本人也是初学Linux系统,相关知识点还不太深入。如果你发现文章中的不足或错误,欢迎在评论区中指出或者与我私信交流,感谢各位大佬观看!!!
一、Linux目录
在学习Linux指令之前,我们需要知道Linux的目录整体是一个多叉树,我们所有的对文件或者目录的增删改查,本质都是对这棵二叉树的增删改查。一般使用路径(原因是从根目录到任意文件的路径是唯一的)对一个文件或者目录进行定位。此外,从 / 开始定位到指定位置,称为绝对路径;从当前所处位置定位到指定位置,称为相对路径。
二、Linux基本指令
以下是最基本的Linux四条指令,用来查看当前自己位置、查看当前位置下的文件、跳转到指定目录或者文件、创建目录指令。在下一节的常用指令中,这四条基本指令会经常用到。
此外,还需要注意的是,Linux指令不单单是指令名执行操作,还有各式各样的后缀搭配执行更加精准的操作。
1. pwd 显示当前所处位置
下图显示了我当前所处的位置是在家目录下的ys用户 中。
2. ls 查看当前ys目录下的文件
该指令最基本的用法为下图所示:即
需要注意的是ls指令就有很多后缀可以选择,如:
ls -l:显示当前目录下的文件的详细信息
如下图橙框显示的部分,即为文件的各种信息,包括文件类型、文件权限、文件所有者、文件大小、文件修改时间、文件名。
其中:d表示该文件是一个目录,rwxrwxr-x是该文件或者目录的访问权限(r表示读权限开、w表示写权限开、x表示执行权限开、-表示某项权限关),其每三个为一组,显然有三组,分别是拥有者权限、组用户权限、其他用户权限,关于Linux的权限部分知识会在后面文章单独说明。
ls -a:显示当前目录下的隐藏文件
其他选项说明:
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
3. cd 跳转 / 切换指令
其他选项说明:
cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
4. mkdir 在当前目录下创建一个名为 “dir1”的目录
如果要给dir1目录下创建dir2再给dir2创建dir3文件,一个一个创建是不是太麻烦?我们可以使用 -p 后缀,创建一系列目录:
但在此之前,我们需要直观的观察文件分布情况,所以需要 tree指令显示目录下的文件树状图。
使用mkdir -p dir1/dir2/dir3 创建一系列目录。
二、Linux常用指令
1. rmdir指令 && rm 指令
rmdir配合路径可以删除指定目录。
mkdir 还可以跟 -p 后缀,当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
如图,可以直接删除掉dir1以及他的子目录。
不过一般 rm 指令用的更多一点,因为rm可以通过后缀指令的方式实现不仅可以删除目录也可以删除文件的共功能。
其他选项说明 rm:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
2.man指令
Linux中的指令选项是有很多的,我们很难将它们全部记住,当我们遇到拿不准使用什么命令参数时,我们就可以去查看Linux的联动手册,访问的方式就是通过man指令
man手册共分为8章:
1 是普通的命令
2是系统调用,如open,write之类的(通过这个至少可以很方便的查到调用这个函数,需要加什么头文件)
3是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
man ls
man 3 printf #查看3手册下的printf
3.echo指令和cat指令
我们创建一个demo1文件,
echo命令是将“hello Linux”输出到demo1文件中,
cat的命令是将demo1文件的内容显示到控制台,如果cat后面什么也不跟,就是从控制台寻找输入,类比c语言里的scanf。
此外,需要注意的是,重定向符号为** > ** 的时候表示清空文件并重写,为** >> **时,表示续写。
其他选项说明cat :
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
4.cp指令:复制文件或目录
可以将demo1文件复制到当前位置,重命名为demo11
基于常识,我们需要注意同一个目录下不能有文件名相同的情况!并且要拷贝的目的地目录必须是已经存在的,否则也会报错。
两文件内容相同说明拷贝成功。
可以更换拷贝的路径,比如下图拷贝到了上级目录下,重命名为demo1
其他选项说明:
f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r 递归处理,将指定目录下的文件与子目录一并处理。在前面我们也学了一些其它指令,比如mkdir,rm等指令,也都是递归处理的意思,这里的cp -r的作用也就是递归复制,比如一个目录dir1,它的下面还有目录dir2、dir3,这个时候就需要使用-r选项递归复制
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
5.mv指令 移动文件或目录
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命
令,经常用来备份文件或者目录m
v用法大体分为三种:
- 对当前文件进行重命名
- 文件剪切
将demo11剪切到了上级目录下
- 文件剪切并重命名
将demo001重命名为demo_mv并且剪切到上级目录下。
总结
以上就是今天Linux基础指令(上)篇的内容,我们也讲了有十几个基础指令了,还有几个基础指令我们留在下一章讲。