• 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系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

    787b002349774f12889a1f7f7d23769f.png

     

    举例:

    • 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的效果:看起来是不是很漂亮,那还在等什么呢赶快去试一试吧。

    1. # tree
    2. .
    3. └── test
    4. ├── css
    5. ├── img
    6. │   └── head
    7. └── 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

    举例:

    4ed8b81ddfc24171811806849a92ed15.png

     4ca00430cdf64e588df4ea9a4e8a48f4.png

     

    man手册的目录结构:

                                    名称                         含义
                                  NAME                        名称
                               SYNOPSIS                     命令语法
                             DESCRIPTION                  命令完整描述
                                 AUTHOR                         作者
                         REPORTING BUGS                    报告的错误
                               COPYRIGHT                         版权
                                SEE ALSO                  查看相关信息

    提示:一般我们查询命令的时候会重点看第2项和第3项。

    具体分析:

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

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

     

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

    738eafa32d8d4b8287a7a087e977a7f6.png

      章节序号                                                                     含义
            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而不指定章节则可能不会找到自己想要的文档。

    举例:

    26d9bc9606cf4b2f9f1267ac671bbc3e.png

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

     

    常用选项:

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

     

    额外补充:

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

    fd94f4b32c0840f98e15eb0a358aabda.png

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

     

  • 相关阅读:
    NTU20220813-数据结构化和深度学习-WSL音频转发
    Verilog功能模块——Uart收发
    山西电力市场日前价格预测【2023-10-13】
    5G时代,华为云CDN为互联网海量数据内容分发服务保驾护航
    威伦触摸屏TK6060IP简单例子
    CMMI是什么? 看完这篇你就懂了
    java毕业设计高校智慧校园学生系统mybatis+源码+调试部署+系统+数据库+lw
    技术对接48
    【C语言】sizeof和strlen的区别
    一文了解常用的微波传输线(一)
  • 原文地址:https://blog.csdn.net/qq_64042727/article/details/126528612