目录
知识点引入
基本指令
ls指令
pwd 命令
cd 指令
touch 指令
stat指令
mkdir 指令
tree指令
rmdir 指令
rm 命令
man 指令
which 指令
alias 指令
echo指令
输出重定向: >
追加重定向:>>
cp 指令
知识点引入
1.
Linux中路径用 / 作为路径分隔符
而Windows中用 \ 作路径分隔符
总结:路径的存在价值,在于标识文件的唯一性 和 定位目标文件
2.
Linux中, . 代表的是当前目录,而 .. 指的是上级目录。
3.
不管是Linux还是Windows的目录结构,都是树状结构的。
之前学过二叉树,而它有一个根结点。这边因为目录结构是树状结构,所以叫根目录 。
树状结构有路上结点 和 叶子结点
路上结点一定是目录。
路上结点指底下还有结点,比如:/ ,usr, etc, rc.d, var, ftp.
叶子结点,一定是空目录 或者 普通文件
4.
4.1从根目录开始,定位一个文件,我们叫做绝对路径!!-->具有唯一性
/root/Linux_practice/lesson2
因为有绝对路径,所以在Linux中能找到任何文件。
4.2 当然了,除了绝对路径,还有相对路径-->相对于自己当前所在的路径
当我们要找文件init.d时。(图在上一个知识点3)
绝对路径:/etc/rc.d/init.d
相对路径 :当它的路径在rc5.d时
../init.d
总结:
绝对路径:配置文件中写入某些文件的配置路径
相对路径:命令行操作的时候,比较容易
5.
drwxr-xr-x 2 root root 4096 Jan 19 14:34 lesson1
drwxr-xr-x 2 root root 4096 Jan 19 14:12 lesson2
-rw-r--r-- 1 root root 0 Jan 19 15:13 test.c
在Linux中以d 开头的都是目录文件,而以-开头的时普通文件
5.
大家来思考一下,空的文件占不占空间?
答案 :占空间,因为文件 = 文件内容 + 文件属性
6.
什么叫做命令(指令)?
其实就是Linux指定目录下(/usr/bin)的可执行文件!!
指令:本质上就是别人写的可执行程序或者某些脚本,被放在了系统的特定路径下(/usr/bin)
所以所谓的安装软件,核心其实是把目标软件拷贝到系统认识的指定路径下
7.
Linux中一切皆文件
基本指令
因为是入门,常用选项就挑几个常用的讲,容易上手。
ls指令
语法: ls [选项] [⽬录或⽂件]
功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信 息。
常⽤选项:
- -a 列出⽬录下的所有⽂件,包括以 . 开头的隐含⽂件。
- -l 列出⽂件的详细信息
- -d 将⽬录像⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。 如:ls ‒d 指定⽬录
ls
//列出该⽬录下的所有⼦⽬录与⽂件
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# pwd
/root/Linux_practice
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# ls
lesson1 lesson2 test.c
ls -l
//列出子目录和文件更详细的信息
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# ls -l
total 8
drwxr-xr-x 2 root root 4096 Jan 19 14:34 lesson1
drwxr-xr-x 2 root root 4096 Jan 19 14:12 lesson2
-rw-r--r-- 1 root root 0 Jan 19 15:13 test.c
ls -a
//列出⽬录下的所有⽂件,包括隐藏文件
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# ls -a
. .. lesson1 lesson2 test.c
ls -l -d组合使用
//将⽬录像⽂件⼀样显⽰,⽽不是显⽰其下的⽂件
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# ls -l -d lesson2
drwxr-xr-x 2 root root 4096 Jan 19 14:12 lesson2
ls -la 组合使用
//列出所以文件的详细信息,包括隐藏文件
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# ls -la
total 16
drwxr-xr-x 4 root root 4096 Jan 19 15:13 .
dr-xr-x---. 8 root root 4096 Jan 15 13:06 ..
drwxr-xr-x 2 root root 4096 Jan 19 14:34 lesson1
drwxr-xr-x 2 root root 4096 Jan 19 14:12 lesson2
-rw-r--r-- 1 root root 0 Jan 19 15:13 test.c
也可以通过绝对路径的方式去访问 目录下的 子目录和文件。
pwd 命令
语法: pwd
功能:显⽰⽤户当前所在的⽬录
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# pwd
/root/Linux_practice/lesson2
cd 指令
语法: cd ⽬录名
功能:改变⼯作⽬录。将当前⼯作⽬录改变到指定的⽬录下
cd . 和 cd ..
//展示 . 和 .. 用法
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# pwd
/root/Linux_practice/lesson2//cd .进入当前目录
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cd .
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# pwd
/root/Linux_practice/lesson2//cd .. 进入上级目录
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cd ..
[root@iZbp18hkiukb1yxq1ko8f3Z Linux_practice]# pwd
/root/Linux_practice
cd -
//跳转至最近的路径(上一次)
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cd /
[root@iZbp18hkiukb1yxq1ko8f3Z /]# pwd
/
[root@iZbp18hkiukb1yxq1ko8f3Z /]# cd -
/root/Linux_practice/lesson2
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# pwd
/root/Linux_practice/lesson2
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cd -
/
[root@iZbp18hkiukb1yxq1ko8f3Z /]# cd -
/root/Linux_practice/lesson2
cd ~
//进入当前用户的家目录
[root@iZbp18hkiukb1yxq1ko8f3Z ~]# cd ~
[root@iZbp18hkiukb1yxq1ko8f3Z ~]# pwd
/root
家目录是指定用户,登录的时候,默认所处的路径,叫做家目录
touch 指令
语法: touch [选项]... ⽂件...
功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在 的⽂件。
常⽤选项:
- -a : change only the access time
- -c : change only the modification time
touch -->新建一个不存在的文件
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# touch hello.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# touch test.cpp
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
hello.txt test.c test.cpp
touch -c hello.txt 时间发生改变
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# stat hello.txt
File: ‘hello.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 931660 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-01-19 16:45:51.193650631 +0800
Modify: 2025-01-19 16:45:51.193650631 +0800
Change: 2025-01-19 16:45:51.193650631 +0800
Birth: -
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# touch -c hello.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# stat hello.txt
File: ‘hello.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 931660 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-01-19 16:58:52.117106990 +0800
Modify: 2025-01-19 16:58:52.117106990 +0800
Change: 2025-01-19 16:58:52.117106990 +0800
Birth: -
stat指令
语法: stat ⽂件...
功能:查看文件的状态 或者 属性
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# stat hello.txt
File: ‘hello.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 931660 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2025-01-19 16:45:51.193650631 +0800
Modify: 2025-01-19 16:45:51.193650631 +0800
Change: 2025-01-19 16:45:51.193650631 +0800
Birth: -
mkdir 指令
语法: mkdir [选项] dirname...
功能:在当前⽬录下创建⼀个名为 “dirname”的⽬录
常⽤选项:
- -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃ 动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录
mkdir
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# mkdir dir
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
dir hello.txt test.c test.cpp
mkdir -p d1/d2/d3/d4
//一次创建多个目录
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# mkdir -p d1/d2/d3/d4
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
d1 dir hello.txt test.c test.cpp
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cd d1
[root@iZbp18hkiukb1yxq1ko8f3Z d1]# ls
d2
[root@iZbp18hkiukb1yxq1ko8f3Z d1]# cd d2
[root@iZbp18hkiukb1yxq1ko8f3Z d2]# ls
d3
tree指令
功能:以树形结构的方式展现
centos安装:yum install -y tree
ubuntu安装:apt install -y tree
tree
//树形结构的方式展开
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# pwd
/root/Linux_practice/lesson2
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# tree .
.
├── d1
│ └── d2
│ └── d3
│ └── d4
├── dir
├── hello.txt
├── test.c
└── test.cpp5 directories, 3 files
rmdir 指令
不推荐使用,建议使用rm
功能:删除空⽬录
rm 命令
语法: rm [-f-i-r-v] [dirName/dir]
适⽤对象:所有使⽤者
功能:删除⽂件或⽬录
常⽤选项:
- -f 即使⽂件属性为只读(即写保护),直接删除,不用经过同意
- -i 删除前逐⼀询问确认
- -r 删除⽬录及其下所有⽂件
rm -f
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
d1 dir hello.txt test.cpp
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# rm hello.txt
rm: remove regular empty file ‘hello.txt’? n
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# rm -f hello.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
d1 dir test.cpp
那么删除目标文件可以直接rm d1吗?
答案是不行的,因为目录是递归进行的,想要删除d1,就必须删除它底下的目录和文件。那该这么解决呢?
rm -r
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# rm -r d1
rm: descend into directory ‘d1’? y
rm: descend into directory ‘d1/d2’? y
rm: remove directory ‘d1/d2/d3’? y
rm: remove directory ‘d1/d2’? y
rm: remove directory ‘d1’? y
man 指令
Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助
语法: man [选项] 命令
解释⼀下:man⼿册分为9章(不同系统可能会有差别)
- 1 是普通的命令
- 2 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么 头⽂件)
- 3 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
- 4 略
- 5 是指⽂件的格式,⽐如passwd, 就会说明这个⽂件中各个字段的含义
- 6 是给游戏留的,由各个游戏⾃⼰定义
- 7 是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
- 8 是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
- 9 略
一般情况下,只查询1 和 2
如果发现查询不了,centos安装: yum install -y man-pages
ubuntu:apt install -y man-pages
man
//查看printf指令(没错,printf也是⼀个指令)
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# man printf
//查看系统调⽤,默认没有这个指令,man就⾃动 去2号⼿册查找
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# man fork
//查看系统调⽤
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# man 2 fork
which 指令
功能 :查找指令所在的路径
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
我们可以看到ls的所在的路径是 /usr/bin/ls
alias 指令
功能:给指令取别名
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# alias haha='ls'
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# haha
dir test.cpp
echo指令
功能:向显示器文件打印内容
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# echo 'hello world!'
hello world!
输出重定向: >
//把内容从显示器文件输出到普通文件中
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# echo 'hello linux!!'>log.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cat log.txt
hello linux!!
重点:
输出重定向
1.如果文件不存在,就会新建
2.旧内容会被清空,从而写入新的内容
所以说创建普通文件还能:
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# >test.c
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# >text.cpp
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls
log.txt test.c text.cpp
一般情况下都不使用touch
追加重定向:>>
指的是不删除旧数据,继续追加数据
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# echo 'hello linux!!'>>log.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# echo 'hello linux!!'>>log.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# echo 'hello linux!!'>>log.txt
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cat log.txt
hello linux!!
hello linux!!
hello linux!!
hello linux!!
cp 指令
语法: cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能: 复制⽂件或⽬录
说明:
- cp指令⽤于复制⽂件或⽬录
cp scr dst -->scr指的是原文件,dst是目标文件
//把log.txt文件拷贝到根目录中
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# cp log.txt /
[root@iZbp18hkiukb1yxq1ko8f3Z lesson2]# ls /
bin dev home lib64 lost+found mnt patch root sbin sys usr www
boot etc lib log.txt media opt proc run srv tmp var
今天就分享到这!!如果有错误,请call我改正,感谢大家