使用xshell登陆主机
输入:ssh root@[ip地址],然后输入密码。
ip地址为所在云服务器上的公网ip,密码需要在所在云服务器上重置密码。
输入正确即可通过。
- xshell下的复制粘贴
在xshell下,使用ctrl+c \ ctrl+v进行复制粘贴是不可取的。
复制:ctrl+insert(有些电脑的insert需要搭配fn使用)
粘贴:shift+insert - xshell自动全屏和取消全屏
(取消)全屏:alt+enter
Linux下的基本指令
在介绍Linux下的基本指令时,会采用Linux指令和Windows界面操作对比的方式来初步认识指令。
- 在详细介绍指令卡,先简单介绍需要进行简单操作的指令操作,以便后续讲解:
1.ls——用来显示当前目录下的文件
当我们第一次输入ls指令时,由于我们之前未对此进行操作,所以当前目录下的文件为空。
所以 ls 指令的意思就是,查看当前目录下的文件。
2.pwd——用来显示所处目录在哪里,即当前路径
这里每一个人的可能不太相同,如果是普通用户:/home/xxx;如果是root账号:/root
这里我是root账户:指向pwd指令后,出现/root目录。
在Windows相当于:
3.mkdir d1——在Linux中创建一个目录,类似于在windows中创建一个文件夹。
在Windows中,可以采用这样的方式建立一个file的文件夹,那么在Linux中需要指向mkdir指令来创建一个目录,Linux里的目录相当于Windows里的文件夹。
可以用 ls 来显示当前目录下的文件。
4.cd d1——进入目录
在Windows里使用鼠标双击可以进入文件夹中,而在Linux里面可以使用cd file进入目录。
这里可以使用pwd查看当前目录所处的路径。
5.touch——新建文本文件
touch可以新建一个文本文件,这与mkdir是不相同的。
相当于在Windows操作系统中的一个文件中,新建一个test.txt文件。
- 指令是可以携带选项的
ls指令
【语法】:ls [选项][目录或文库]
【功能】:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
【常用选项】:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d指定目录
- -i 输出文件的 i 节点的索引信息。如:ls -ai指定文件
- -k 以 k 字节的形式表示文件的大小。ls -alk 指定文件
- -l 列出文件的详细信息。
- -n 用数字的UID,GID代替名称。
- -F 在每个文件名后附上一个字符以说明该文件的类型," * “表示可执行的普通文件;” / “表示目录;” @ “表示符号链接;” | "表示套接字(sockets).
- -r 对目录反向排序
- -t 以时间排序
- -s 在 | 文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件
【部分指令选项讲解】:
- ls -l 显示文件更多的属性
当我们只使用ls指令操作时,只会显示文件的名称。
而当我们使用ls -l时,就会显示每一个文件的详细信息。
这里我们需要了解的是,在计算机上创建一个空白的文本文件,这个文本文件也是会有属性的,文件的属性也是数据,是数据就需要存储。
文件 = 文件内容 + 文件属性
文件是由文件内容和文件的属性组成的。
文件的操作 = 对文件内容的操作 or 对文件属性的操作
对此,ls 都是对文件属性进行操作的。
ls -l 可以简写成 ll
- ls -a 列出目录下的所有文件,包括以点 . 开头的隐含文件。
选项是可以叠加的,所以 ls -a -l 可以表示为列出目录下的所有文件的详细信息,包括以点 . 开头的隐含文件的详细信息。
ls -a -l 可以简写成 ls -la 或者 ls -al
列出目录下的详细信息时,第一列第一个字母,表示的时文件的类型。
以 d 开头:表示的是一个目录;
以 - 开头:表示的是文件是一个普通文件。
在Linux中,以 . 或者 … 开头的文件,被称之为隐藏文件。所以,ls -la 显示所有文件的详细信息,包括隐藏文件。
- . 和 . .是什么意思呢?
在Linux中,任何一个目录下面都存在这俩个隐藏的文件,. , . .。
. .:表示当前路径的上级路径
. : 表示当前路径
注意,使用cd指令可以进入目录,而 cd . . 是返回上一级。在Windows中,也有返回上一级的图形化操作:
而当使用指令cd . 时,并没有任何操作,这是因为 . 表示当前路径。
那么,. 存在的意义是什么呢?是为了帮助用户定位当前目录下的一个文件。(文件可以较多)
- ls -d 将目录像文件一样显示,而不是显示其下的文件。
观察这三条指令,其意思分别为:
执行 ls 指令,显示当前目录下的文件。
执行ls file指令,显示file目录下的文件。
执行ls -al file指令,显示file目录下的所有文件(包含隐藏文件)的详细信息。
那么想要查看file这个目录的详细信息,需要 -d 指令:
所以,ls -d 的指令可以将目录像文件一样显示,而不是显示其下的文件。
- ls -F 在每个文件名后附上一个字符以说明该文件的类型," * “表示可执行的普通文件;” / “表示目录;” @ “表示符号链接;” | "表示套接字(sockets).
通过观察可以发现,-F指令可以在每一个文件名后附上一个字符说明该字符的类型。
pwd指令
【语法】:pwd
【功能】:显示用于当前所在的目录
【常用选项】:无
通过之前的学习,已经可以基本了解pwd指令的作用了,下面简单回顾一下。
cd指令
【语法】:cd目录名
【功能】:改变工作目录,将当前工作目录改变到指定的目录下。
【举例】:
(1)cd. .:返回上一级目录
(2)cd /home/linux/:绝对路径
(3)cd . ./day02/:相对路径
(4)cd ~:进入用户家目
(5)cd -:返回最近访问目录
- 在Linux系统中,磁盘上的文件和目录被组成一棵目录数,每个节点都是目录或者文件。
首先,在Linux操作系统中,用" / "表示路径分割符。
在Windows中,使用" \ "表示路径分隔符。
当我们进行指令cd . .时,回退到上一级,一直进行此操作,会回退到最后一位,此时只存在" / “,而” / “被称为:Linux的根目录,” / "是一个文件或者是根目录。
一个目录里面是可以再放目录或者普通文件的,目录里可以存放目录,注定了Linux的整个目录结构一定是一个多叉树的样子。
Linux的目录结构是一个多叉树,这颗多叉树的叶子节点一定是空目录或者非目录文件,路上节点一定是一个非空目录。
所以我们所有对文件或者目录的增删查改,本质上都是对这颗多叉树的增删查改。
- 我们定位一个文件,通常用路径来进行定位。
这是因为路径定位的特点是路径具有唯一性。
任何一个节点可能存在一个或者多个子节点,但是都只会存在一个父节点。
- 我们把从" / "开始定位到指定位置,具有唯一性的路径,称为绝对路径。
- 我们以自己当前所处的路径为起始参照位置,来进行特定文件的定位,我们称这种路径为相对路径。
以此图为例,假设我们此时处在bin处,想要到达lib,可以采用相对路径的方式。
指令为:cd . ./lib
当所处的路径发生变化时,可能相对路径就会失效。
- 如何选择使用绝对路径还是相对路径?
1.绝对路径往往比较长,但是路径不会改变,一般使用在一些固定场景,例如配置文件中的使用。
2.一般命令行输入,比较常用相对路径。
以腾讯官网里的一个网址举例,可以发现其路径分隔符为" / ",所以该网址的内核是Linux操作系统。
下面来理解这条指令:cd ~
我们使用指令whoami,可以查看当前用户,可以看到我当前用户就是root。
所以root就是用户的家目录。
Linux的用户被分为俩类,一类是超级用户root,另一类是其他(普通用户)。
那么如何建立一个普通用户呢?
这里需要俩条指令:
adduser建立一个用户;passwd给用户设置密码。
用户名称可以自己定义,注意这里的密码是不回显的,所以建议利用复制粘贴。
然后重新登陆,采用指令 ssh dabai@ip地址。
在root账号上可以对普通用户进行删除操作,指令为userdel -r 用户名。
这时我查看普通用户的家目录是什么?
此时,dabai就是普通用户,而/home就是这个普通用户dabai的家目录。
在centos系统中,所有的普通用户,用户账号都会统一放在/home上。
Windows上也有家目录的概念。
所以,cd ~可以返回到家目录上。
此时,再执行一条指令: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 使用指定的日期时间,而非现在的时间。
在现阶段,只需要了解touch指令是为了创建一个文本文档,后续会对选项进行讲解。
mkdir指令
【语法】:mkdir [选项] dirname…
【功能】:在当前目录先创建一个名为"dirname"的目录
【常用选项】:
- -p , - - parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
讲解:
指令mkdir 的作用是创建一个目录。
那么,如何创建一批目录呢?
此时,我们手动创建了一个树状结构的目录。我们如何查看建立的树状结构呢?
这时需要一个指令 tree
一般来讲,正常的系统中没有安装tree,需要输入指令:yum install -y tree进行安装。
此时,我们可以发现树状结构的目录d1已经建立完成。
那么,如何才能一次性创建好一串路径呢?这时就需要指令选项-p操作。
rmdir指令 && rm指令
rmdir指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录。
【语法】:rmdir [-p][dirName]
【适用对象】:具有当前目录操作权限的所有使用者
【功能】:删除空目录
【常用选项】:
- -p 当子目录被删除后如果父目录也变成空目录的化,就连带父目录一起删除
rmdir这条命令是比较局限的,它只可以删除空目录,像文本文件或者树状结构的目录都是不可以被直接删除的。
rm指令
rm命令可以同时删除文件或目录。
【语法】
【适用对象】:所有使用者
【功能】:删除文件或目录
【常用选项】:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
如果是root账号,在使用rm指令时,会被询问是否确定删除,回答y表示yes,回答n表示no。
在Windows中删除之后,也会被询问,但是Windows删除之后会有回收站,而Linux删除之后就基本等同于完全删除,可以恢复,但是恢复的成本太高,所以要注意。
可以采用选项rm -f来不询问,直接删除。
直接执行rm是不能直接删除目录的,需要结合选项 rm -r来删除目录。
指令 rm -r也可以直接删除一串路径,但是由于目录本身是递归式的,所以删除也只能递归删除,
此时可以结合俩个选项来删除一串路径并不询问,指令为rm -rf
此时,递归并强制删除。
【注意】删除时需要慎重,删除后无法返回。