0


Linux入门学习 —— 常用的基本命令(上)

🌳前言

本文章将会为大家介绍一些Linux下常用的基本命令,相信通过这篇文章可以很快让刚接触到Linux的小伙伴们上手起来。那么我们废话不多说,开始我们今天的内容。


🌴Linux常用的基本命令

🍈ls命令

语法:ls [选项] 目录或文件(不写默认为当前目录)

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。通俗来讲就是列出目录内容(List Directtory Contents),运行它就是列出文件夹的内容,可能是文件也可能是文件夹。

常用选项:

  • 不带选项 ,不带选项的ls命令只能光秃秃地列出文件和目录,我们是不能看到像文件类型、大小、修改日期和时间、权限以及链接这样具体的信息的。

  • -a列出目录下的所有文件,包括以** .** 开头的隐含文件。(提示:在Linux下,以“.”开头的文件为隐藏文件,只用ls是看不到该目录下的隐藏文件的,必须在ls后面加上-a选项,即可看到隐藏文件)

  • -d将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

  • -i输出文件名对应的inode(中文译名为"索引节点")号码。每个文件都有一个自己的inode号码,操作系统用inode号码来识别不同的文件。inode号码就如同人的身份证一样,用户就相当于是你爸,文件就相当于你自己,你爸通过你的名字来找你,警察就相当于操作系统,警察会通过你的身份证号来找你。如:ls -i 指定文件

  • -k以 k 字节的形式表示文件的大小。 如:ls –alk 指定文件

  • -l将文件或目录可以显示的属性尽可能多的显示出来。(ls -l 命令等价于 ll 命令)一个文件是由两个部分组成的,一个是内容数据,比如你自己写进文件里面的代码,这就是内容数据;另一个是属性数据,比如文件或目录的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限等,这些就是属性数据。而 ls -i 的作用就是将文件或目录可以显示出来的属性尽可能多的显示出来。

  • -1一行只输出一个文件。

  • -n用数字的 UID,GID 代替名称。(介绍 UID, GID)

  • -F在每个文件名后附上一个字符以说明该文件的类型,“*” 表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

  • -r对目录反向排序。

  • -t以时间排序。

  • -s在文件名前输出该文件的大小。(大小排序,如何找到目录下最大的文件)

  • -R列出所有子目录下的文件。(递归)

  • 注意:Linux下所有的命令后面都可以带多个选项,例如:ls -a -l -i 或 ls -ali 这两种表示方法的效果是一样的,喜欢哪种就用哪种。

🍉pwd命令

**语法: **pwd

功能:显示用户当前所在的目录

常用选项:

🍊cd命令

**语法: **cd 目录名

功能:改变工作目录,将当前工作目录改变到指定的目录下。

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

举例:

  • **cd .. ** 返回上级目录(这里的 ".." 也属于隐藏文件,表示上一级目录,"." 表示当前目录)。
  • cd /home/xxx/linux/ 使用绝对路径进入linux这个目录。绝对路径就是从根目录开始一直到你想要去的哪个目录,途径的所有目录都要写出来。(绝对路径很少在日常操作中使用,一般会出现在比较正式的场合,比如配置文件中)。
  • ../day03/ 使用相对路径进入day03这个目录。相对路径就是从当前你所在的目录开始一直到你想要去的哪个目录,途径的所有目录都要写出来。(相对路径一般用于日常操作,比较简单)。
  • cd ~:进入用户家目录(也就是图中的xxx,每一个用户都有一个属于自己的用户家目录,而root用户默认的用户家目录在/root下)。
  • cd -:返回最近访问目录。如果你当前访问的是day03这个目录,下一刻你用cd到了day01这个目录,这时你用 cd - 就直接返回到day03这个目录。
  • 注意:目录与目录之间需要用路径分隔符 “/” 隔开。

🍋touch命令

语法:touch [选项]... 文件...

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

常用选项:

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

提示:在入门阶段一般很少用到上面这些选项,只需会新建一个不存在的文件即可,例如: touch ../day1/test.txt,即在day1这个目录下新建一个名为 test.txt 的文件,如果只想在当前目录下新建这个文件,只用touch test.txt 即可。

🍎mkdir命令(重要)

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname” 的目录

常用选项:

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

举例:如果aaa、bbb、ccc这几个目录都不存在的话,系统将会自动把这几个目录都建立。

mkdir -p aaa/bbb/ccc 

🍏tree命令

语法:tree 路径(默认为当前目录)

功能:以树状的结构把目录显示出来,包括该目录下的所有子目录和文件。

用前所需:如果你发现用不了tree命令,不要害怕,可能只是你没有安装这个命令,复制下面这段命令下载tree。(yum命令我后面会讲到,这里不要着急,可以直接先用)

yum install -y tree

tree的效果:看起来是不是很漂亮,那还在等什么呢赶快去试一试吧。

# tree
.
└── test
    ├── css
    ├── img
    │   └── head
    └── js

🍒rmdir命令

介绍:rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir [选项][dirName]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录(注意:如果该目录不为空是删不了的哦)

常用选项:

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

🫐rm 命令(重要)

介绍:rm命令可以同时删除(remove)文件或目录

语法:rm [选项][dirName/dir]

适用对象:具有当前目录操作权限的所有使用者

功能:删除文件或目录

常用选项:

  • **-f **即使文件属性为只读(即写保护),也可以强制(force)删除。
  • -i删除前逐一询问确认。
  • **-r **删除目录及其下所有文件,也就是递归(recursion)删除。在删除目录的时候需要用到,如果在删除目录的时候没加 -r ,是删除不了目录的。

举例:

  • rm -rf mytest强制删除mytest这个目录及其下所有文件。
  • **rm -rf *.c *强制删除以 ".c" 结尾的文件(提示:“” 是一种通配结构)。
  • **rm -rf / **强制删除根目录,只要你有这个操作权限,你就可以删,但是不建议尝试,因为Linux下是没有回收站的,一旦你把根目录给删了,是很难找回来的,这样你的Linux也就完了,只有重装系统了。当然好奇的小伙伴还是可以去尝试,大不了重装系统,哈哈开个玩笑。

🥝man 命令(重要)

介绍:由于Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助了解各个命令的作用,访问Linux手册页的命令是就是 man。当然如果你连man命令的作用都不知道也可以用man命令来查询man命令的作用,也就是man man。

语法:man [选项] 命令

用前所需:由于我们很多小伙伴用的是云服务器,man命令可能是简化版的不完整,这时我们只需要执行下面命令就可以下载完整版的了。

yum install -y man-pages

举例:

man手册的目录结构:
名称 ** 含义** NAME 名称 SYNOPSIS 命令语法 DESCRIPTION 命令完整描述 AUTHOR 作者 REPORTING BUGS 报告的错误 COPYRIGHT 版权 SEE ALSO 查看相关信息
提示:一般我们查询命令的时候会重点看第2项和第3项。

具体分析:

我们观察上图左上角可以发现MKDIR(1),这里的(1)是哪里来的,又代表什么意思呢?

原因是我们的man手册将各类命令分为9个章节,每个章节可以查询到的内容也会有所不同,这里的(1) 就代表是第一个章节里面的内容。

通过man man 命令我们可以查看到 man 各个选项的作用和各个章节的所有内容等man的所有用法,下面具体讲解各个章节的含义。


章节序号 含义 1 可执行文件或者shell命令 2 系统调用,如open,write之类的(通过这个,可以很方便的查到调用这个函数,需要加什么头文件) 3 库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件 4 特别的文件(通常在/dev) 5 指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义 6 是给游戏留的,由各个游戏自己定义 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig 9 内核例程(非标准例程)
现在我们知道,上面MKDIR(1)里面的(1)就表示man在1号章节里面寻找mkdir这个命令。

注意:如果没有指定man在哪个章节中寻找,将会按照默认的顺序查找这些章节中的命令,只返回含有该命令的第一个文档,如果指定章节,则只会在指定章节中寻找该命令,所以有时候直接man而不指定章节则可能不会找到自己想要的文档。

举例:

这里就是让man在3号章节里面寻找printf命令。

常用选项:

  • -k根据关键字搜索联机帮助
  • num(章节序号)只在第num章节找
  • -a将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

额外补充:

有时候我们会遇到章节序号后面带字母P的,这里的P表示** **POSIX 的意思,所以这里表示的就是POSIX版本的手册,例如:

退出man手册:

到了最后那么如何退出man手册呢?非常简单,只需要轻轻按下键盘上的“q”即可退出man。

🥥cp命令(重要)

语法:cp [选项] 源文件或目录 目标文件或目录

**功能:**复制文件或目录

适用对象:具有目录操作权限的所有使用者

**说明:**cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。cp也可以将一个文件里面的内容复制到另外一个文件,如果该文件已有内容,则复制后原内容将会被新内容覆盖。

常用选项:

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

注意:操作系统不允许将父目录复制到子目录中,如果能这样不就死循环了吗?

🍑mv指令(重要)

介绍:mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

**语法:**mv [选项] 源文件或目录 目标文件或目录。

适用对象:具有目录操作权限的所有使用者

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

  • **-f **:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • **-i **:若目标文件 (destination) 已经存在时,就会询问是否覆盖!

举例:

  • 例1:如果test.c这个文件存在的话,就将hello.c文件里面的内容移动到test.c上,并将test.c文件上的内容覆盖,最后只剩下test.c这个文件,内容是hello.c里面的内容。如果test.c文件不存在的话,就将hello.c重命名为test.c。
mv hello.c test.c
  • 例2:将hello.c这个文件移动到上级目录。
mv hello.c ../

🌵总结

到这里 Linux常用的基本命令(上)就结束了,相信已经有不少小伙伴想去练习一下这些指令了,我将会在下篇文章讲解剩下常用的基本指令。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持。

标签: 学习 linux 服务器

本文转载自: https://blog.csdn.net/qq_64042727/article/details/126528612
版权归原作者 不一样的烟火a 所有, 如有侵权,请联系我们删除。

“Linux入门学习 —— 常用的基本命令(上)”的评论:

还没有评论