linux-基础语法(ls cd touch rmdir rm)

本文介绍了如何使用Xshell登录云服务器,并详细讲解了Linux的基础操作,包括使用ls命令查看文件属性,ls的各种选项如-a、-l、-d等的用法,以及如何处理隐藏文件。还讨论了目录操作,如pwd、mkdir、tree命令,以及Linux中的根目录、绝对路径和相对路径的概念。此外,文章还涉及到了Linux的用户管理,包括root用户和普通用户的区别,以及cd命令的使用。
摘要由CSDN通过智能技术生成

本篇博客使用的是 Xshell  登录的云服务器。

Xshell 使用  Alt + Enter  的快捷键就可以自动全屏和 取消全屏。

Linux 基础语法 

 空文件也是需要存储空间的,假设我们创建一个空的 txt 文本文档,虽然我们看着文件大小是 0kb 但是 文件当中时候文件属性的:

 如这个文件,他有文件名,文件创建的时间,等等这些都是文件的属性,这些都是数据,都是需要在磁盘上开辟空间存储的。所以我们理解文件应该这样理解:

文件 = 文件内容 + 文件属性

 所以,我们对文件的操作,就应该是如下的:

文件操作 = 对文件内容的操作 or 对文件属性的操作

 ls

 显示当前目录下的所有文件(不包括隐藏文件),当我们使用 ls 之后,屏幕上就会显示用空格分割 的 文件名:

 如上图中蓝色的就是 目录。

基础语法:

ls [选项] [目录或文件]

 常用选项

  •  -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。(递归)
  • -1 一行只输出一个文件。

-l 

 我们上述直接使用 ls 只是查看 文件名这一个文件属性,而 加了 -l  这个选项就可查看更多的文件属性:

 如上图,此时目录中有两个文件夹,一个TXT文件,像最后的两个属性就是,在 20:00 创建的文件,dir1 ,dir2 和test.txt  是文件名。

 ls - l   命令可以简写为  ll

 两个指令实现的效果是一样的。

-a

 显示所有的文件(包括隐藏文件)。

 选项是可以一行写多个选项的:

 当然,上述使用一种方式, ls -a -l 这个命令还可以这样写  ls -la  和  ls -al

 如上所示,有  a  这个选项的命令,在实行之后,会有两点 这样的文件:

 那么这两个文件代表上面意思呢?在Linux当中,以   "  .  "  开头的文件,我们称为隐藏文件; "  .  "  开头的文件夹,就是隐藏文件夹。

 什么事隐藏文件呢?我们来看下面这个例子

 首先,我们用 ls  和 ls -l  来查看当前目录下,是没有   "  .  "  开头的文件的,那么现在,我们来创建两个 以  "  .  "   开头的文件:

 创建之后,我们用  ls  和  ls  -l   查看,发现没有这两个文件:

 

 然后,我们用  ls  -a  来查看:

 此时,就看见我创建了的两个隐藏文件了。

在Windows 当中也是有隐藏文件的。

而前面在创建两个隐藏文件的之前,就有两个隐藏文件了,分别是( .   /   ..  ) 这两个文件夹,在Linux的任何目录下都有这两个隐藏文件。

 这两个文件的作用我们将在下面细说。

 -d

 将目录像文件一样显示,而不是直接显示这个目录当中的文件信息。

 如果我们直接使用 ls  或者 ls  -l  来查看一个目录的话,那么就会像下面一样,直接显示这个目录当中的 文件信息:

 那么,如果现在我们想要查看这个  108_class 这个文件的信息的话,就可以使用  -d  这个选项:

 如上图,我们使用  -l  和 -d  的选项,就可以只查看  这个文件夹的属性了。

 -F

 在每个文件后面都 加一个字符,用来表示这个  文件的类型, " * "  表示可执行的普通文件;          " / "  表示这个文件是一个目录;  "  @  "  表示符号链接  等等。

 pwd

 显示当前命令行所处的目录在哪里;

 如上图,因为我们现在使用的 是 云服务器的 root 用户来进行登录,所以显示的root ,如果我们用 普通用户的登录方式,那么就是 :

home/XXX

XXX是你登录的用户名。

 那么上述都是使用的是 云服务器的 登录,pwd 命令时帮助我们 查看当前命令所在的目录,比如我们在windows 下的图形化界面:

 我们可以复制这的绝对路劲,然后下一次可以直接 复制 这个路径来找到这个目录下的文件。

 mkdir

mkdir 文件名 文件名  ········

使用这样的方式,可以一个或者多个文件夹,但是一般建议只创建一个

 注意,上述的 mkdir 和文件夹之间,文件夹和文件夹之间要有空格来分割,不然会报错:

 我们可以创建一串路径,比如  ../d1/d2/d3  这样的路径,都可以一次性创建:
使用 mkdir   -p  d1/d2/d3   这样的方式去创建就可以创建出 d1/d2/d3  这样的目录串,当然  d1 的上级是 使用 mkdir 这个命令行的路径。

tree

 使用 tree + 目录 以树的形式打印出这个目录之后的 目录路径:

  但是tree 不是默认就有的,他是需要安装的,我们在命令行中输入:

yum install -y tree

 这行命令来安装这个tree。在装这个tree 的时候,需要 root 账号

 Linux当中的 ( .   /   ..  )  这两个隐藏文件的 作用

  .. :表示当前路径的上级路径

如下图:

 .  :  表示当前路径

如下图:

 当然,这只是其中一个用途,我们还可以这样使用这个 文件:

 我们  用 gcc  生成了 一个 .c  文件的 a.out   的执行文件,上图中的  ./  就是代表的是当前路径,而  ./a.out 就是执行当前路径下的  a.out  这个执行文件。

那么存在的意义就是,帮助用户定位当前目录下的一个文件。

/  根目录

 在  Linux 当中,使用  "  /  "  斜杠 来分割目录:

 在 windows  中使用都是   "  \  "  反斜杠来 分割 目录:

 而在 Linux 当中  "  /  "  还代表的 Linux 的根目录,如果我们一直  cd  ..  这样,返回上一级路径,最终都会返回到这个根目录 :

我们还可以查看这个根目录的属性:

 

 当然这个根目录也是可以操作的,

 Linux当中目录结构是一种 多叉树的结构,这个多叉树的叶子结点,一定是 空目录或者是非目录文件,而路上的结点一定是一个非空目录。

 如下图例子:

 也就是为什么,一直回退,回退到根目录就不能会提了。

 这种结构,使得任何一个结点都只有一个父节点,这就使得这个路径具有唯一性,而上图中,我们要找一个文件,通常是通过路径来进行定位。这种路径,称为绝对路径

 绝对路径:我们把从根目录开始,定位到指定位置,具有唯一性的路径,称为绝对路径。

由此,我们就可以用 cd + 绝对路径来一下子进入到我们想进入的目录下:

 比如现在,我在bin 目录下 想要寻找 lib 目录下的 C++.txt  文件,那么我可以 用 ..  来访问上级路径,然后再去访问  lib 目录从而访问到  C++.txt  这个文件:

// 现在处在 bin  目录下
../lib/C++.txt

这样就可以从 bin  目录当中访问到 lib 目录当中的 C++.txt 文件。

这样的方式就叫做相对路径访问。

以命令所处目录的位置作为参照路径,来访问其他特定文件的方式,这种路径 就叫做 相对路径。

 因为是以当前位置为参照点的,如果我们命名的位置发生了改变,比如上述例子,我们不在 bin 目录下了,那么我们在其他路径再去使用这个相对路径,相对路径可能就失效了。

 相对路径和绝对路径的使用

 绝对路径往往比较长,但是指向的位置是不会改变的,一般是在固定的场景来进行使用,比如在配置文件中使用。

一般在使用 命令行的时候,比价常用相对路径。

比如我们在访问网页的时候,其中的 " / " 就是路径分隔符。bilibili 网站上的分割 使用的是 Linux 风格的 分隔符,就证明bilibili 网页的后端用的就是  Linux的操作系统了。

 Linux当中的普通用户和 超级管理员root

 在Linux 当中,用户分为两类,一个是 超级管理员root,一个是其他(普通用户),root用户的家目录是 /root ; 而普通用户的家目录是 /home/xxxx  (xxx 是用户名)。

 我们使用  whoami  这个命令就可以 查看 当前我们登录是哪一个用户:

 我们也可以 ls /home  查看home目录,查看当前我们的 系统中有多少用户。

当我们是 root 超级管理员 的时候,可以使用 adduser + 用户名 来创建一个用户,在新建一个用户的时候,会自动的 在 home 家目录下 创建对应的目录。

使用 userdel + 用户名 就可以删除一个用户。

如果你愿意,在windows下你也可以  创建多个用户,多个桌面 ········;在 windows 也是有 root 超级管理员的。

 cd

cd xxxxx/

进入某个目录。

cd 命令行的语法:

cd + 目录名

 cd .. : 返回上级目录

这个我们之前就运用过很多次了,这里就不多做细说。

cd /home/litao/linux/ : 绝对路径

 使用这种方式就可以从任何目录下直接访问到 对应的 文件或文件夹。

cd ../day02/ : 相对路径

 这种方法是有参照的,如果参照目录变了,相对路径可能就会失效:

  •  比如这个图中的,dev 目录访问到 etc 目录,这个相对路径,如果把 dev 的参照换成 是 home 那么这个相对路径依然生效;
  • 如果是 lib 访问到 ust/bin  这个目录中,这个相对路径,那么 参照从 lib 换成是 bit ,那么这个相对路径就失效了。

 cd ~:进入用户家目

 我们直接使用 cd ~ 就可以直接进入到,当前登录用户的家目录下,比如我是 root 用户,那么我直接放回到 /root  目录下; 如果我是 zhangsan 这个普通用户,那么我就返回到 /home/zhangsan 这个目录下。

cd -:返回最近访问目录

 也就是回到,我们上一次所在的路径下。

如果这个例子: 

 touch指令

 语法:

touch[选项]... 文件名 ...

 创建一个当前不存在的普通文件,不能创建目录

或者是 使用 touch的命令参数 更改文档或目录

的时期时间,包括存取时间和更改时间。

 参数列表:

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

 rmdir  和 rm

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

 语法:

rmdir [-p][dirName]

 这样可以直接删除目录。

需要注意的是:如果删除的目录不是空目录,也就是说,删除的目录当中有 文件或文件名,那么都是不能删除的:

rm命令可以同时删除文件或目录

 当我们使用 rm 删除文件的时候,如果你是 root 用户,可能会提醒你 是否要将该文件删除:

 

 我们在 后输入  y  表示 yes  删除,n  表示no  不删除。

 那么我们也可以直接略过这个提示,之间删除文件:

rm -f xxx.xxx

注意:在Linux当中删除的文件就是真正的删除了,不会有像在 windows 当中的 回收站一样保存删除文件。

rm 也可以删目录,那么上述的不是空目录他也能删除:

rm -r xxx

因为目录本身是递归式定义的,所以删除时候也要递归式删除,rm -r  就表示递归:

 非空目录:

 从它询问我们是否要删除的情况,可以看出它在做递归,一层一层的进去,问我们是否要删除。

 如果这个目录太深了,有几百层,那么一层一层的问就太挫了,我们可以加 -f  这个选项来跳过询问。

rm -rf xxx

再删除的时候一定要慎重,上面我们也说过了Linux当中文件删除之后就真的是删除了,假设我们这样写:

rm -rf /

我们说 " / " 是Linux 的根目录,其底层的操作系统的文件都在这个目录下,如果把这个这个目录删了,那么所有的操作系统的文件都被删除了。当然,有的文件不会被删除,正在运行的文件不会被删除。

-i 

 删除前逐一询问确认,当我们使用 rm 删除的文件的时候,如果我们是 root 用户,他会提醒我们再次向我们确认,这个文件是否进行删除,但是如果当前是 普通用户 ,那么Linux就不会再次向我们确认是否删除,因为 在Linux当中认为,普通用户的文件没有 root 超级管理员的文件重要。

所以当我们是普通用户,在使用 rm 删除文件的时候,使用 -i 这个选项,就可以让 Linux 再向我们确认一下这个文件是否删除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

chihiro1122

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

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

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

打赏作者

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

抵扣说明:

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

余额充值