[Linux]:基本指令(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨

🎈🎈养成好习惯,先赞后看哦~🎈🎈

所属专栏:Linux学习

贝蒂的主页:Betty's blog

Windows环境不同,我们在linux环境下需要通过指令进行各操作,以下是常见操作的指令:

1. ls指令

1.1. 基本语法

  1. 语法:ls 选项 目录或文件
  2. 功能:对于目录,列出该目录下的所有子目录或文件;对于文件,列出文件名及其其他信息

1.2. 选项

  1. -a:列出当前目录下所有文件,包括以.开头的隐藏文件。
  2. -d:将目录像文件一样显示,而不是显示其下的文件。
  3. -i:输出文件的 i 节点的索引信息。
  4. -k:以 k 字节的形式表示文件的大小。
  5. -l:列出文件的详细信息。
  6. -n:用数字的 UIDGID 代替名称。
  • UID(User ID)即用户标识号,用于唯一标识系统中的用户。
  • GID(Group ID)即组标识号,用于唯一标识系统中的用户组。
  1. -F:在每个文件名后附上一个字符以说明该文件的类型,*表示可执行的普通文件;/表示目录;@表示符号链接;|表示 FIFOs=表示套接字(sockets)。
  2. -r:对目录反向排序。
  3. -t:以时间排序。
  4. -s:在文件名后输出该文件的大小,可用于大小排序,以便找到目录下最大的文件。
  5. -R:列出所有子目录下的文件。
  6. -1:一行只输出一个文件。

其中.代表当前目录,..代表上级目录。

其中每个文件占四个byte,一共12字节。

其中值得注意的是:连续的两个选项是可以简化的。比如说:ls -l -a可以简化为ls -la。并且ls -l也可以简化为ll

2. pwd指令

  1. 语法:pwd
  2. 功能:显示用户当前所在目录。

3. whoami指令

  1. 语法:whoami
  2. 功能:显示用户当前身份

4. cd指令

首先在介绍cd命令之前我们得知道,Linux的目录结构是一颗多叉树,因为只有这样才能保证每个目录都有一个唯一且确定的位置。

因为路径具有唯一性,所以我们可以通过两种方式来描述文件的位置:

  • 绝对路径 :我们把这种从根目录开始,定位文件的路径称为绝对路径,比如:/home/bob
  • 相对路径 :相对于当前所处路径去定位某个文件的路径,比如:当前路径为:/home/bob,然后我们可以通过../eve来进入eve文件。

知道了以上概念之后,我们就可以来学习一下cd命令。

  1. 语法:cd 目录名
  2. 功能:改变工作目录,将当前工作目录改变到指定目录下。
  1. cd ..:返回上级目录
  1. cd 绝对路径:使用绝对路径改变当前工作目录。
  1. cd 相对路径:使用相对路径改变当前工作目录。
  1. cd ~:进入主工作目录,也就是家目录。其中对于root用户主工作目录就是/root,而对于普通用户就是/home/xxx
  2. cd -:返回上一次访问目录。

其中需要注意的是:如果一直用cd ..回到上级目录,如果回到根目录就无法回退了,其中Linux下根目录为/。并且,/也可以作为路径分隔符,比如/home/beidi_113/113;而值得一提的是Window环境下的路径分割符为\

5. clear指令

  1. 语法:clear
  2. 功能:清空屏幕。

6. touch命名

6.1. 基本语法

  1. 语法:touch 选项 文件
  2. 功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

6.2. 选项

  1. -a--time=atime --time=access--time=use 只更改存取时间。
  2. -c--no-create不建立任何文档。
  3. -d 使用指定的日期时间,而非现在的时间。
  4. -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  5. -m --time=mtime--time=modify 只更改变动时间。
  6. -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  7. -t 使用指定的日期时间,而非现在的时间。

7. mkdir指令

  1. 语法:mkdir 选项 dirname
  2. 功能: 在当前目录下创建一个名为dirname的目录。

mkdir -p dirname可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

创建多级目录之后,我们可以通过tree指令查看相应的树形结构,如果系统内没有安装该命名,可以通过以下指令安装。

yum install -y tree

8. rmdir

  1. 语法:rmdir 选项 dirname
  2. 功能: 删除空目录。

但是由于rmdir指令只能删除对应的空目录,所以局限性很大,一般我们比较常用的是下面的rm指令。

9. rm指令

9.1. 基本语法

  1. 语法:rm 选项 dirname
  2. 功能: 删除文件或目录。

9.2. 选项

  1. -i删除前逐一询问确认(y为确定删除,n为不删除)。
  2. -f 即使文件属性为只读(即写保护),亦直接删除。
  3. -r 删除目录及其下所有文件(递归式删除)。

当我们想删除当前目录下的所有文件时,可以使用通配符*rm ./*就能删除当前目录下的所有文件。如果我们想指定删除某种类型的文件,比如说我们想删除后缀为.c的文件,可以这样使用rm ./*.c

10. man指令

Linux环境下存在很多指令,为了方便我们使用,我们可以通过man命令进行对应的查询。

10.1. 基本语法

  1. 语法: man 选项 指令
  2. 功能: 查看指令的使用规则等。

比如我们来查询ls指令:

里面会包含该指令的名称,用法,以及对该指令功能的描述。在使用完之后按下q就可以退出。

然后我们还可以通过man man来查看手册的对应功能介绍。

一般而言,man手册有八个章节,每一章分别对应:

  1. 是普通的用户命令。
  2. 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)。
  3. .是C库函数,如printf,fread
  4. 是特殊文件,也就是/dev下的各种设备文件。
  5. 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义。
  6. 是给游戏预留的,由各个游戏自己定义。
  7. 是附件还有一些变量,比如向environ这种全局变量。
  8. 是系统管理用的命令,这些命令只能由root使用,如ifconfig

如果大家在查的时候有的东西查不到,可以在root用户下执行以下指令:

yum install -y man-pages

10.2. 选项

  1. -k:根据关键字搜索联机帮助。
  2. num:只在第num章节查找。
  3. -a:将所有章节的查找结果都显示出来。

11. cp指令

11.1. 基本语法

  1. 语法: cp 选项 源文件或目录 目标文件或目录
  2. 功能: 复制文件或目录。

11.2. 选项

  1. -f --force:强行复制文件或目录,不论目标文件或目录是否已经存在。
  2. -i--interactive 覆盖文件之前先询问用户。
  3. -r -R 递归处理,将指定目录下的文件与子目录一并处理,若源文件或目录的形态不属于目录或符号链接,则一律视为普通文件处理。

当然cp指令也可以结合通配符*一起使用,一次性复制多种文件。

12. mv指令

12.1. 基本语法

  1. 语法:mv 选项 源文件或目录 目标文件或目录
  2. 功能: 视mv指令当中两个参数的不同而不同。当第二个参数是不存在的名称时,mv指令完成文件重命名或目录重命名。当第二个参数是已存在目录名称时,mv指令将文件移动置该目录中。

并且如果有需求的话,可以将目标文件剪切到目标目录并重命名,比如说我们将test.c文件剪切到上级目录并重命名为new.c可以使用mv test.c ../new.c

12.2. 选项

  1. -f :强行剪切文件或目录,不论目标文件或目录是否已经存在。
  2. -i :覆盖文件之前先询问用户。

13. nano指令

  1. 语法:nano 文件名
  2. 功能: 打开目标文件。

如果系统中没有该指令的话,可以使用下面指令安装:

yum install -y nano

然后我们就可以打开我们的目标文件,写一下代码或者其他信息。

书写完成之后,我们就可以先ctrl+x,在按下y进行保存并退出了。

14. cat指令

14.1. 基本语法

  1. 语法: cat 选项 文件
  2. 功能: 查看目标文件的内容。

我们可以先通过nano书写代码,然后通过cat指令查看。

14.2. 选项

  1. -b:对非空输出行编号。
  2. -n:对输出的所有行编号。
  3. -s:禁止重复的空输出行。

值得注意的是:cat指令会将目标文件内容全部打印到屏幕上。若是目标文件内容过大,则会导致刷屏。因此cat指令一般仅适用于查看内容较少的文件。

15. 重定向

15.1. echo指令

  1. 语法:echo 输出信息
  2. 功能:将信息打印到指定文件,默认为显示器。

15.2. 输出重定向

我们可以使用输出重定向将echo输出的语句重定向到指定文件中,比如echo "hello betty" > tmp.txt就能将字符串hello betty!重定向进tmp.txt文件中,如果该文件不存在则会自动创建。

我们除了使用输出重定向文件输入外,我们还可以利用>清空文件,因为文件一般打开都会默认清空其中的数据。

15.3. 追加重定向

我们知道文件打开一般默认会清空其中的数据,为了不让打开的文件数据被清空,我们可以使用追加重定向。追加重定向与输出重定向的使用方式类似,只不过将>改为了>>

比如说我们对tmp.txt文件进行追加重定向。

15.4. 输入重定向

上面我们学了cat指令,一般我们后面会跟一个文件,就可以显示文件的内容,那如果cat之后不跟文件名呢:

这时我们输入什么,按回车后,显示器就回显什么,一直输入,就一直回显,按crtl+c就可以结束。这就证明cat一直在默认从键盘读取数据,如果我们不想让其从键盘读取数据,就可以使用输入重定向>

这个输出重定向虽然与我们的cat直接输出类似,但是这两者是有区别的,这个我们后面会单独来谈。

相关推荐
A小辣椒20 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言