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

# 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

举例:

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

 

  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 46
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不一样的烟火a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值