前言
关于Linux操作系统的桌面,在学校教学中我们在登陆Linux操作系统后都会进入一个图形化界面,但是在实际开发中我们并不会有使用图形化界面,所以我们建议使用XShell远程登录Linux操作系统, 关于XShell的安装和如何使用以后会单独出一篇内容进行介绍。
Linux基本指令
快速认识五个指令
请注意每一部分之间要留有空格
ls指令
语法:ls [选项][目录或文件]
功能:对于目录,列出目录下的所有子目录与文件,对于文件,列出文件名及其它信息
常用选项:
- -l:查看当前目录下文件的详细属性
- -a:显示当前目录下所有文件,包括隐藏文件
Linux中以”.“开头的文件叫隐藏文件
- -la:显示当前目录下所有文件,包括隐藏文件的详细信息(写成ls -a -l / ls -l -a / ls -al均可)
选项+当前目录下包含的目录或文件名,则可以选择是否查看它们的详细属性
(ls -a仅能查看所有文件包括隐藏文件,而ls -la还可以查看它们的详细信息)
- -d: 将目录象文件一样显示,而不是显示其下的文件
即点击一个目录后并不会进入它的内部
将根目录像显示文件信息时一样显示出来,并不会显示根目录中文包含的文件等内容
我们这里先介绍三个选项的使用,其余选项在实际中的应用暂时还未学到后续会更新
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
- 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r 对目录反向排序。
- -t 以时间排序。
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件。
补充内容
1、文件 = 文件属性 + 文件内容,文件属性也是一种数据需要保存
2、对文件的任何操作无外乎于:对文件属性的操作和对文件内容的操作
3、选项之间可以相互配合使用
4、目录和路径的区别在于,目录找不到具体的目标文件,路径可以找到具体的目标文件
路径:/Users/liaowenxiong/Downloads/SoftWare for Mac/liaowenxiong.txt
目录:/Users/liaowenxiong/Downloads/SoftWare for Mac
5、whoami指令查看当前使用Linux的人是谁
pwd指令
语法:pwd
功能:显示用户当前所在路径
此时位于/root/demo2路径下:
补充内容
- /:Linux操作系统的路径分割符
- \:Windows操作系统的路径分隔符
- 路径最末端,一定是一个普通文件或文件夹(目录名)
cd指令
语法:cd 目录名/选项
功能:路径切换
常用操作(既有选项,也有目录名等,故这里统称为操作)
- cd 回车:直接返回至主目录下,即使在根目录中也一样
- cd /目录名/目录名/..../目录名: 使用绝对路径访问某个目录
使用绝对路径必须以“/”开始 注意使用绝对路径时首先要返回根目录下,否则报错
- cd 目录名 或 ./目录名 或 ./目录名/ :使用相对路径进入当前目录下的某个子目录
使用相对路径访问子目录时,“
./
”一般不显式表示,"../"
需要显式表示
三者是等效的,一般情况下使用相对路径进入当前目录下的某个子目录时
"./"
可以不需要显式表示,直接使用cd 目录名即可,但是在某些情况下(如脚本编写或特殊字符处理),显式地加上"./"
有助于避免潜在问题或歧义:假设你的当前目录中有一个名为
-file.txt
的文件,由于-
是在命令行中具有特殊含义的字符(用于表示选项),如果你想引用该文件,可以使用./
来明确告诉系统这是一个文件名而不是选项:
cat ./-file.txt
- cd .. 或../目录名 :返回上一级目录或上一级目录中的某个子目录中
同样地,在处理父级目录下的包含特殊字符的子目录时也可以使用
../
来避免出现问题。例如,如果父级目录名称为-parent_directory
,那么可以使用以下方式访问它:
cd ../-parent_directory
当然正常情况下我们访问上一级目录中的子目录也需要显式
"../"
cd ../parent_directory
- cd ~:进入用户家目录
Windows和Linux都是多用户操作系统,它们都可以创建多个用户
在Windows操作系统中,每当添加一个用户(控制面板->用户账户->更改账户类型)
在下面的用户文件夹中都会出现一个用户(这里没有创建多个用户可以自行尝试),此时在用户目录下的yangy目录就是Windows操作系统中该用户的家目录:
该目录下会存放与该用户强相关的所有数据:
因此,Linux中创建的用户也有自己的家目录:
对于root账户我们默认的家目录为:/root
对于普通用户我们默认的家目录为:/home/用户名
任何一个用户登录,所处路径都是自己的家目录
- cd -:返回上次访问的目录
补充内容
1、任何目录下(包括根目录),都默认有两个隐藏目录.和..
- ..代表当前目录的上一级目录
- .代表当前所在目录
若“.”表示当前目录
/home/user/Documents
,那么 ".." 表示的就是上一级目录/home/user
它们存在的意义就是为了在文件系统中寻找目录或者运行可执行文件等等
.. :与cd配合,可以返回上级目录或者进入上级目录的子目录
. :与cd配合,可以找到当前目录下某个子目录
2、当持续cd ..,即多次返回上级目录后,执行pwd指令会显示一个 / ,它表示根目录
这是Windows中c盘的根目录中的内容:
Linux的整个文件目录是一颗树,根目录是这个树的根:
3、 ./ 和../ 还可以用来执行当前目录或者上一级目录中的可执行文件!!
此时./的作用就是方便我们找到当前目录下的一个文件,尤其是可执行文件:
4、相对路径和绝对路径以及它们究竟谁更好?
相对路径和绝对路径是用于定位文件或目录在文件系统中位置的两种方式:
- 相对路径:相对路径是相对于当前位置来指定文件或目录的位置
- 绝对路径:绝对路径则从根目录开始完整地指定了文件或目录的位置
绝对路径和相对路径在不同的情况下都有其用途,但相对路径在实际开发中更常用:
假设你有一个程序需要读取特定目录下的配置文件,并使用其中的数据进行处理。如果你在代码中使用了绝对路径来指定该配置文件的位置,那么当将程序从一个系统迁移到另一个系统时,可能会遇到问题:
- 在Windows系统中用户文档目录的路径为:
config_file = "C:\Users\Username\Documents\config.txt"
- Linux系统中用户文档目录的路径结构:
config_file = "
/home/username/Documents/config.txt"
- MacOS系统中用户文档目录的路径结构:
config_file = "
/Users/username/Documents/config.txt"
三种操作系统用户文档目录的路径结构都不完全相同,因此在路径迁移时绝对路径不再有效
相反地,若使用相对路径来指定配置文件的位置,则可以更好地适应不同环境:
- 在Windows系统中使用相对路径来指定配置文件的位置:
config_file = "./config.txt"
- Linux系统中使用相对路径来指定配置文件的位置:
config_file = "./config.txt"
- MacOS系统中使用相对路径来指定配置文件的位置:
config_file = "./config.txt"
“./”表示当前目录无论程序处于哪个系统中,只要保证配置文件与程序位于相同目录下即可
使用相对路径而非依赖于特定的绝对路径,可以提高代码在不同环境间的可移植性
6、./../与../都可以用来
表示相对路径中的父级目录,后者是前者的简写,推荐使用后者
7、cd ./文件名/ 和 cd ./文件名 等效
重新认识指令
指令的本质
Linux中的指令的本质都是程序,程序,指令,可执行程序三者都是一回事儿
which指令
用法:which 指令名
功能:打印指令在系统中所在的路径
还可以检验指令是否存在
alias指令
用法:alias 指令别名=‘指令名’
功能:给指令起别名
起别名不等于重命名,原来的指令依然可以使用
最后
我们使用的ll指令与ls -l指令一样,就是因为系统默认ll是ls -l指令的别名
一个文件的三种时间
我们可以通过stat指令查看一个文件的相关信息,其中我们发现下面会存在三种不同名字的时间:
Access时间:文件最后一次访问的时间
Modify时间:文件最后一次修改的时间
Change时间:对文件Inode信息最后修改的时间
tree指令及安装
tree指令
用法:tree 目录名/选项
功能:以树状结构显示指定目录下的结构
关于tree指令的安装可以查看:Centos 7、Debian、Ubuntu中tree指令的检查与下载
~over~