Linux的目录结构是树状的,由最外层的根目录及内层的子目录组成。
一、linux的目录结构
1.根目录
cd / #进入Linux的根目录
ls #显示当前路径下的内容
根目录下的一些文件:
bin-----------------------命令 cdrom-----------------------光驱
etc-----------------------配置 home-------------------------家目录
dev----------------------设备 boot--------------------------启动项
lib------------------------ 库 media------------------------媒体
opt-----------------------选项 root---------------------------root用户
sbin---------------------系统命令 tmp----------------------------交换的
sys-----------------------系统的 usr------------------------------用户的
如果误删除lib或者sbin文件夹,可能造成系统奔溃,一般在home目录中进行操作,其他目录不能随便改动。
2.目录的层级关系
cd /home/edu
cd ../home
3. --help 查看命令帮助信息
因为命令很多就算都学完也会有遗忘,help命令可以为我们提供命令的帮助信息
4.man命令:查看命令 库函数 系统调用
以"章节"为单位管理
第1章存放的是命令
第2章存放的是系统调用(如:操作系统提供的函数open)
第3章存放的是库函数(如:c库提供的函数printf)的帮助信息
如果我们遇到找不见函数头文件的情况就可以用命令man 3 函数名来进行查找,虽然man查找显示的是英文,但是我们可以借助有道来翻译一下。
二、Linux常用命令
1.自动补全tab
┌──(root㉿kali)-[/home/edu/work]
└─# fin
Completing external command
fincore find findfs findmnt finger
#有提示的自动补全,比如我们想输入fincore命令,但是只记得是以fin开头,不知道后面时什么,就可以输入fin然后按tab键自动补全
2.查看历史命令history
┌──(root㉿kali)-[/home/edu/work]
└─# history
1 echo 1 >> /proc/sys/net/ipv4/ip_forward
2 cat /proc/sys/net/ipv4/ip_forward
3 ifconfig
4 dirftnet -i eth0
5 driftnet -i eth0
6 vim /etc/network/interfaces.d
7 su
8 su
9 cd /
10 ls
11 cd /
12 ls
13 cd /
3. 重定向 >
┌──(root㉿kali)-[/home/edu/work]
└─# ls
a.txt b.txt
┌──(root㉿kali)-[/home/edu/work]
└─# ls > text.txt #系统会自动创建text.txt文件并将ls显示的结果写入该文件
┌──(root㉿kali)-[/home/edu/work]
└─#
#将字符串"hehe"追加到text.txt
┌──(root㉿kali)-[/home/edu/work]
└─# echo "hehe" >> text.txt
#会将text.txt文件中原有的内容清空 将字符串"hehe"重写到text.txt
┌──(root㉿kali)-[/home/edu/work]
└─# echo "hehe" > text.txt
4.管道
当etc路径下有很多很多文件,我们想要查找的文件是以a开头的,使用ls命令显示结果默认只显示最后一屏的文件,文件是字母表顺序的,此时待查找的文件在最前面,我们不得不手动滑滚动条来滑到最前面,这样并不是很友好,有什么更好的方法呢?
管道就是很好的工具,下面使用管道可以以more的方式显示etc的结果集,它是从最开始分页显示的,当我们查找的文件不在当前页时,按回车键换行,按空格键换页,按"q"可退出.
ls /etc | more #使用more的方式显示etc的结果集
ls /etc | wc -w #统计etc目录下有多少个文件
5.ls命令
ls #查看当前目录下的文件名
ls 目录名 #查看指定目录下的文件名
ls / #查看根目录下的文件名
ls -a #查看当前目录下所有文件名,包含隐藏文件
ls -l #查看当前目录下文件的详细信息
ls -al #查看当前目录下所有文件的详细信息
ls -hl #详细信息中的字节数带单位显示
drwxr-xr-x 2 root root 4.0K 12月 12 11:26 public
- d:文件类型,linux里面不以后缀名作为文件类型的区分
linux中一共有七种文件类型bcd-lsp,在linux中一切皆文件
b:块设备文件
c:字符设备文件
d:目录文件
-:普通文本
l:软链接文件
s:套接字文件
p:管道文件
- rwxr-xr-x:文件权限,以三个为一组,分别表示用户主,用户组以及其他用户对文件的操作权限,如果是-,就表示没有这个权限
- 2 表示链接文件的个数
- root 用户名
- root 用户组名
- 4.0K:文件大小,默认以字节为单位
- 12月 12 11:26:时间戳,文件最后修改时间
- public:文件名
6.tree命令:以树形结构显示当前目录下的文件
系统默认没有这个命令,需要安装 普通用户使用sudo apt-install tree安装
用法:tree -L 层数 用于显示指定的层数
tree -L 3 #表示只显示三层树结构
7.clear命令:清屏命令
clear #清屏命令
#可以使用快捷键CTRL+L也可以清屏
8.cd 命令
cd 当前目录下的目录名 #进入指定目录
cd / #进入根目录
cd ~ 或cd #进入家目录
cd .. #进入当前目录的上一级目录
绝对路径:从根目录(最顶层目录开始的路径)
┌──(root㉿kali)-[/home/edu]
└─# ls
public src tmp tools work
┌──(root㉿kali)-[/home/edu]
└─# cd src
┌──(root㉿kali)-[/home/edu/src]
└─# cd /home/edu/tools #绝对路径
相对路径:相对当前路径下的那个路径
┌──(root㉿kali)-[/home/edu]
└─# ls
public src tmp tools work
┌──(root㉿kali)-[/home/edu]
└─# cd src
┌──(root㉿kali)-[/home/edu/src]
└─# cd ../tools #相对路径
cd - #回到刚才所在的路径(相当于Windows下的后退)
cd .. #返回上一级目录
cd ~ #回到家目录下
9.pwd命令
pwd #显示当前工作目录的绝对路径
10.cat命令
cat 文件名 #显示文件的内容
cat -n 文件名 #带行号的显示文件的内容
11. rm命令
rm 文件名 #删除指定的文件
rm -rf 目录文件名 #删除指定的目录文件
注:选项-rf可以没有,但是删除文件夹的时候必须带-r,选项-f的意思是强制删除,即使要删除的文件或文件夹不存在也不报错。
12.cp命令
cp 文件名 目录名 #将文件复制到目录中
cp 目录1 目录2 -a #将目录1复制到目录2中
cp 文件名1 文件名2 #如果文件2不是目录,则文件1复制一份为文件2
#如果文件2存在且不是一个目录,直接将内容替换成文件1的内容
13.mv命令
mv 文件名 目录名 #将文件移动到指定目录中
mv 目录名1 目录名 2 #将目录1移动到目录2中
mv 文件1 文件2 #如果文件2不存在,则功能为重命名
14.mkdir命令
mkdir 目录名 #创建一个文件夹
mkdir 目录1 目录2 ... #创建多个目录
mkdir -p 目录1/目录2/目录3/... #嵌套的创建多个文件
15.touch命令
touch 文件名
注意:如果文件已经存在 ,则touch命令会修改当前文件的时间戳
-rw-r--r-- 1 root root 0 12月 12 15:21 file1
-rw-r--r-- 1 root root 0 12月 12 15:23 file1
16.find命令
find 路径 -name 文件名 #在指定的路径下查找指定的文件,会从指定路径下包括所有的子目录中寻找
17.grep命令
grep 查找信息 文件名
#在指定文件中查找指定内容,将查找到的内容整行输出并高亮显示查找的内容
grep 查找信息 文件名 -n
#在指定的文件中查找指定的内容,将查找到的内容整行带行号输出并高亮显示查找的内容
grep 查找信息 文件名 -R -n
#从当前目录以及子目录中的文件中查找指定信息
18.ln命令
ln 源文件名字 链接文件名 -s #创建一个链接文件,类似Windows的快捷方式
注意:不管对源文件还是链接文件进行修改,双方的内容都会改变
如果删除链接文件对源文件没有任何影响
如果删除源文件,链接文件将失效
19.tar 压缩与解压缩命令
19.1 gzip格式:
- 压缩
tar zcvf 压缩包包名 文件1 文件2 文件3 ...
#注意:压缩包包名一般以.tar.gz
- 解压缩
tar zxvf 压缩包包名
tar zxvf 压缩包包名 -C 路径 #将文件解压到指定路径
19.2 bzp2命令
- 压缩
tar jcvf 压缩包包名 文件1 文件2 文件3 ...
注意:压缩包名一般以.tar.bz2作为后缀名
- 解压缩
tar jxvf 压缩包包名
tar jxvf 压缩包包名 -C 路径 #将文件解压到指定路径