【Linux】-基本指令(上)
🔑🔑博客主页:阿客不是客
🍓🍓系列专栏:深入代码世界,了解掌握 Linux
欢迎来到泊舟小课堂
😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注
与Windows
环境不同,我们在linux
环境下需要通过指令进行各操作,今天要学习得就是一些常见的操作指令
注:上下键可以找到历史命令
命令1:ls 指令
1.1 基本语法
1.基本语法:ls 选项 目录或文件
2.功能:对于目录,列出目录下有关信息
1.2 选项
- -a:列出当前目录下所有文件,包括以.开头的隐藏文件。
- -d:将目录像文件一样显示,而不是显示其下的文件。
- -i:输出文件的 i 节点的索引信息。
- -k:以 k 字节的形式表示文件的大小。
- -l:列出文件的详细信息。
- -n:用数字的 UID、GID 代替名称。
- UID(User ID)即用户标识号,用于唯一标识系统中的用户。
- GID(Group ID)即组标识号,用于唯一标识系统中的用户组。
- -F:在每个文件名后附上一个字符以说明该文件的类型,*表示可执行的普通文件;/表示目录;@表示符号链接;|表示 FIFOs;=表示套接字(sockets)。
- -r:对目录反向排序。
- -t:以时间排序。
- -s:在文件名后输出该文件的大小,可用于大小排序,以便找到目录下最大的文件。
- -R:列出所有子目录下的文件。
- -1:一行只输出一个文件。
1.3 常用选项使用方法
1.3.1 ls
直接使用ls:显示当前所处目录或文件中的文件与目录名。
1.3.2 ls [目录或文件]
作用为显示当前目录下指定目录里面的文件或者目录名
注:ls / 是显示根目录
1.3.3 ls -l
ls -l [文件或目录]:列出文件的详细信息。当[文件或目录]为空时,列出当前所处文件或目录中所有文件或目录的详细信息,同时 ls -l可以简写成:ll
1.3.4 ls -a
ls -a: 列出目录下的所有文件,包括以 . 开头的隐含文件(在linux中,以 . 开头的文件为隐藏文件)。
如图所示,进入我新创建得113-1文件夹进行指令操作
1.3.5 同时指令得选项可叠加(叠加指令不分前后顺序)
命令2: pwd 指令
pwd 指令:显示用户当前所在的目录
命令3:cd 指令
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
在linux系统中,我们知道以 . 开头的为隐藏文件,以 .. 开头的为隐藏文件夹,那么在 ls -a指令中单独出现的 . 和 .. 指的是什么呢?
, 代表的是当前目录, .. 代表的是上一级目录,这在linux系统中的任意目录下都是自动生成的。
知道了上述概念,为了更好理解cd指令的操作,我们还需要了解,Linux中的文件是如何存放的。
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件,且每一个目录中的文件或目录不能重名,因为只有这样才能保证每个目录都有一个唯一且确定的位置。
示例如下所示:
因为路径具有唯一性,所以我们可以通过两种方式来描述文件的位置:
- 绝对路径:我们把这种从根目录开始,定位文件的路径称为绝对路径,比如:
/home/bob
。 - 相对路径:相对于当前所处路径去定位某个文件的路径,比如:当前路径为:
/home/bob
,然后我们可以通过../eve
来进入eve
文件。
在这里我们可以与Windows系统类比,在Linux中也存在着绝对路径与相对路径。 在上图中我们可以看到每一个子目录或文件只有一个父目录,因此对于每一个文件或目录的绝对路径是唯一的。同时也因为在同意目录下,每一个文件和目录都不能重名,也是我们在使用相对路径是,也可以准确的找到想要找到的文件。
因此在使用cd指令是的路径,可以是绝对路径,也可以是相对路径。
指令示例如下:
1. cd .. :返回上一级目录
2. cd 绝对路径:使用绝对路径改变当前工作目录。
3. cd 相对路径:使用相对路径改变当前工作目录。
- cd ~:进入主工作目录,也就是家目录。其中对于
root
用户主工作目录就是/root
,而对于普通用户就是/home/xxx
。cd -
:返回上一次访问目录。
中需要注意的是:如果一直用 cd ..
回到上级目录,如果回到根目录就无法回退了,其中Linux
下根目录为/
。并且,/
也可以作为路径分隔符,比如/home/beidi_113/113
;而值得一提的是Window
环境下的路径分割符为\
。
命令4:touch 指令
4.1 基本语法
- 语法:
touch 选项 文件
。- 功能:
touch
命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
4.2 选项
- -a或 --time=atime 或 --time=access 或 --time=use 只更改存取时间。
- -c 或 --no-create不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -m 或 --time=mtime 或–time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
- -t 使用指定的日期时间,而非现在的时间。
命令5 mkdir 指令
- 语法:
mkdir 选项 dirname
。- 功能: 在当前目录下创建一个名为
dirname
的目录。
mkdir -p dirname
可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
命令6 rmdir 指令和 rm 指令
rmdir 命令:
由于rmdir
指令只能删除对应的空目录,所以局限性很大,一般我们比较常用的是下面的rm
指令。
6.1 基本语法
- 语法:rm 选项 dirname。
- 功能:删除文件或目录。
6.2 选项
-i 删除前逐一询问确认(
y
为确定删除,n
为不删除)。-f 即使文件属性为只读(即写保护),亦直接删除。
-r 删除目录及其下所有文件(递归式删除)。
当我们想删除当前目录下的所有文件时,可以使用通配符*
,rm ./*
就能删除当前目录下的所有文件。如果我们想指定删除某种类型的文件,比如说我们想删除后缀为.c
的文件,可以这样使用rm ./*.c
。
命令7 man 指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令
解释一下,面手册分为8章
- 是普通的命令
- 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
- 是库函数,如printf,fread
- 是特殊文件,也就是/dev下的各种设备文件
- 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
- 是给游戏留的,由各个游戏自己定义
- 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
- 是系统管理用的命令,这些命令只能由root使用,如ifconfig
常用选项:
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
注:如果man后面直接跟指令时,它会从手册的第一章开始,依次往下找,直到找到为止。
man is:
man 3 printf:
注:使用q推出手册
命令8 cp 指令
8.1 语法:
cp [选项] 源文件或目录 目标文件或目录 (注:同意目录下,每一个文件或目录名都是唯一的!!!)
功能: 复制文件或目录
说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。 若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息
直接使用cp 可拷贝任意文件和空文件夹
使用方式:
拷贝到当前路径下,并修改成新的名字:
直接拷贝到指定路径下:
修改名称拷贝到指定路径下:
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理