linux学习手册
从今天开始每周都会更新linux的学习日记
常用命令
1 2 3
| gouxin@navi ~> cd /
gouxin@navi />
|
移动命令, cd + 路径
移动到 / 目录下
1 2
| gouxin@navi ~> pwd /home/gouxin
|
显现当前所在的路径位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| gouxin@navi Document> ls C/ document_stm32/ git/ Linux/ python/ rust/ STM32/ Study/
gouxin@navi Document> ls -a ./ ../ C/ document_stm32/ git/ Linux/ python/ rust/ STM32/ Study/
gouxin@navi Document> ls -l 总计 0 drwxr-xr-x 1 gouxin gouxin 28 12月11日 16:36 C/ drwxr-xr-x 1 gouxin gouxin 18 12月19日 23:27 document_stm32/ drwxr-xr-x 1 gouxin gouxin 72 12月22日 22:01 git/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 Linux/ drwxr-xr-x 1 gouxin gouxin 46 12月11日 19:34 python/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 rust/ drwxr-xr-x 1 gouxin gouxin 30 12月11日 16:44 STM32/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 Study/
|
ls 显示当前目录的文件
ls -a 显示所有文件包括隐藏文件
ls -l 显示所有文件的属性与权限
1 2 3 4 5 6
| gouxin@navi ~/Document> mkdir abab gouxin@navi ~/Document> ls abab/ C/ document_stm32/ git/ Linux/ python/ rust/ STM32/ Study/ gouxin@navi ~/Document> rmdir abab gouxin@navi ~/Document> ls C/ document_stm32/ git/ Linux/ python/ rust/ STM32/ Study/
|
mkdir + [parameter] 新建文件夹
rmdir + [parameter] 删除文件夹
1 2 3 4 5 6
| gouxin@navi Document> touch linux_1.txt gouxin@navi Document> ls C/ document_stm32/ git/ Linux/ linux_1.txt python/ rust/ STM32/ Study/ gouxin@navi Document> rm ./linux_1.txt gouxin@navi Document> ls C/ document_stm32/ git/ Linux/ python/ rust/ STM32/ Study/
|
touch + [parameter] 新建文件
rm + [parameter] 删除文件
1 2 3 4 5 6
| gouxin@navi ~/D/g/g/s/movies> cat index.md --- title: movies date: 2025-12-23 00:26:47 type: movies ---
|
cat 命令 将文件内容显示在终端中
环境变量与shell
SHELL中所有的命令都会去 PATH路径下查找
我们使用echo $PATH去查看路径:
1 2
| gouxin@navi ~> echo $PATH /home/gouxin/.config/Code/User/globalStorage/github.copilot-chat/debugCommand /home/gouxin/.config/Code/User/globalStorage/github.copilot-chat/copilotCli /home/gouxin/.config/Code/User/globalStorage/github.copilot-chat/debugCommand /home/gouxin/.config/Code/User/globalStorage/github.copilot-chat/copilotCli /usr/local/bin /usr/bin /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl
|
如果我们想加入临时路径
我们使用下面的命令
1
| gouxin@navi ~> export PATH:$PATH: 程序的绝对路径
|
永久添加路径:
通过修改~/.bashrc
1
| export PATH=$PATH: 程序的绝对路径
|
或者修改etc/envirment
文件权限与属性
了解权限
Linux有一套严格且完整的权限管理系统
我们使用命令
1
| gouxin@navi Document> ls -l
|
来查看当前文件夹下所有文件的权限
1 2 3 4 5 6 7 8
| drwxr-xr-x 1 gouxin gouxin 28 12月11日 16:36 C/ drwxr-xr-x 1 gouxin gouxin 18 12月19日 23:27 document_stm32/ drwxr-xr-x 1 gouxin gouxin 72 12月22日 22:01 git/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 Linux/ drwxr-xr-x 1 gouxin gouxin 46 12月11日 19:34 python/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 rust/ drwxr-xr-x 1 gouxin gouxin 30 12月11日 16:44 STM32/ drwxr-xr-x 1 gouxin gouxin 0 12月11日 16:26 Study/
|
第一个字母 d表示 文件夹 如果是 - 表示一般文件格式
然后三个字母 rwx 表示,拥有者的权限, 然后三个字母 r-x 表示, 相同用户组的权限, 最后三个字母表示,其他用户的权限
r w x 三个字母分别是
r readable 可读
w writeable 可写
x 可执行 (~绝对不是因为不会写所以没有~)
所以这个文件的权限是
所有者 可读 可写 可执行
相同用户组 可读 不可写 可执行
其他用户是 可读 不可写 可执行
更改权限
chmod 改变文件权限
这里我只介绍一种方式,数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| gouxin@navi ~/D/g/gouxinblog> ls -l 总计 288 -rw-r--r-- 1 gouxin gouxin 29842 12月23日 13:36 _config.butterfly.yml -rw-r--r-- 1 gouxin gouxin 0 12月22日 22:01 _config.landscape.yml -rw-r--r-- 1 gouxin gouxin 2672 12月23日 13:37 _config.yml -rw-r--r-- 1 gouxin gouxin 118685 12月27日 17:49 db.json drwxr-xr-x 1 gouxin gouxin 5354 12月23日 13:32 node_modules/ -rw-r--r-- 1 gouxin gouxin 834 12月23日 13:32 package.json -rw-r--r-- 1 gouxin gouxin 133954 12月23日 13:32 package-lock.json drwxr-xr-x 1 gouxin gouxin 110 12月27日 17:49 public/ drwxr-xr-x 1 gouxin gouxin 44 12月22日 22:01 scaffolds/ drwxr-xr-x 1 gouxin gouxin 64 12月23日 00:26 source/ drwxr-xr-x 1 gouxin gouxin 16 12月22日 22:01 themes/ gouxin@navi ~/D/g/gouxinblog> chmod 775 _config.landscape.yml gouxin@navi ~/D/g/gouxinblog> stat _config.landscape.yml 文件:_config.landscape.yml 大小:0 块:0 IO 块大小:4096 一般空文件 设备:0,45 Inode: 174120 硬链接:1 权限:(0775/-rwxrwxr-x) Uid: ( 1000/ gouxin) Gid: ( 1000/ gouxin) 访问时间:2025-12-22 22:02:35.760994136 +0800 修改时间:2025-12-22 22:01:56.086003364 +0800 变更时间:2025-12-30 17:40:44.763373853 +0800 创建时间:2025-12-22 22:01:56.086003364 +0800
|
在这里我们用数字代表权限
7是全权限 可读,可写,可执行
5是没有写入权限
1是只有执行权限
find grep 命令
find
find 是在当前目录下查找文件
1
| gouxin@navi ~> find Document/git paru
|
find + 目录 + 文件的名字,也可以使用通配符
grep
网络命令
ifconfig
查看网络, 设置ip
此时我的这个网络是有线网络 我们来试一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| gouxin@navi ~> ifconfig
enp3s0f4u1c2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::8e97:66a6:e23c:162 prefixlen 64 scopeid 0x20<link> inet6 240e:30a:146:9300:2134:e8bf:54cb:dc8e prefixlen 64 scopeid 0x0<global> ether 9c:69:d3:10:5d:2b txqueuelen 1000 (Ethernet) RX packets 811604 bytes 1120551826 (1.0 GiB) RX errors 0 dropped 3080 overruns 0 frame 0 TX packets 292219 bytes 38728563 (36.9 MiB) TX errors 0 dropped 14 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 ether d6:1f:b7:f4:86:b2 txqueuelen 1000 (Ethernet) RX packets 4481 bytes 664432 (648.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 539 bytes 98781 (96.4 KiB) TX errors 0 dropped 46 overruns 0 carrier 0 collisions 0
|
第一个是 有线网络接口 此时显示我在局域网内的ip为 192.168.1.4 子网掩码 255.255.255.0还有很多很多的东西,比如ipv6地址,网关等等,不过对我而言只需要了解ip地址即可
第三个是 无线网络接口 此时他并没有使用
让我们连接到 我的手机个人热点试试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| gouxin@navi ~> ifconfig enp3s0f4u1c2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::8e97:66a6:e23c:162 prefixlen 64 scopeid 0x20<link> inet6 240e:30a:146:9300:2134:e8bf:54cb:dc8e prefixlen 64 scopeid 0x0<global> ether 9c:69:d3:10:5d:2b txqueuelen 1000 (Ethernet) RX packets 821045 bytes 1128459614 (1.0 GiB) RX errors 0 dropped 3206 overruns 0 frame 0 TX packets 299442 bytes 40546187 (38.6 MiB) TX errors 0 dropped 14 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 10 bytes 540 (540.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10 bytes 540 (540.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.79.73 netmask 255.255.255.0 broadcast 192.168.79.255 inet6 fe80::4325:31ca:cc05:e2d prefixlen 64 scopeid 0x20<link> ether 5c:61:99:49:dd:cd txqueuelen 1000 (Ethernet) RX packets 4499 bytes 666718 (651.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 569 bytes 102821 (100.4 KiB) TX errors 0 dropped 46 overruns 0 carrier 0 collisions 0
|
此时我们看到无线网口上也有了网络连接
啊,由于我对计算机网络的理解有限所以我只能说这些有兴趣的可以看一下下面的up主的视频,他主要做一些网络相关知识的科普
网络小白_Uncle城
或者学习伟大的计算机网络这本书
购买链接
课程
ping命令
ping命令可以查看你和一些网站的连接情况,不过我们一般使用这个命令查看自己是否连接到了公网
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| gouxin@navi ~> ping www.bilibili.com PING www.bilibili.com (240e:b1:9801:206:10::16) 56 字节的数据 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=1 ttl=52 时间=26.0 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=2 ttl=51 时间=25.8 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=3 ttl=51 时间=26.0 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=4 ttl=51 时间=25.9 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=5 ttl=51 时间=25.9 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=6 ttl=51 时间=26.2 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=7 ttl=51 时间=25.9 毫秒 64 字节,来自 240e:b1:9801:206:10::16: icmp_seq=8 ttl=51 时间=25.9 毫秒 ^C --- www.bilibili.com ping 统计 --- 已发送 8 个包, 已接收 8 个包, 0% packet loss, time 7009ms rtt min/avg/max/mdev = 25.845/25.960/26.222/0.106 ms
|
嗯,如果大家理解了,ip地址,局域网和域名的关系
我想你应该想到了一点事情,对,去找一下你手机的ip
这里的东西我们以后有机会再详细探讨
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.79.73 netmask 255.255.255.0 broadcast 192.168.79.255 inet6 fe80::4325:31ca:cc05:e2d prefixlen 64 scopeid 0x20<link> ether 5c:61:99:49:dd:cd txqueuelen 1000 (Ethernet) RX packets 6191 bytes 3031099 (2.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 842 bytes 157906 (154.2 KiB) TX errors 0 dropped 46 overruns 0 carrier 0 collisions 0 gouxin@navi ~> ping 192.168.0.104 PING 192.168.0.104 (192.168.0.104) 56(84) 字节的数据。 64 字节,来自 192.168.0.104: icmp_seq=1 ttl=64 时间=509 毫秒 64 字节,来自 192.168.0.104: icmp_seq=2 ttl=64 时间=9.22 毫秒 64 字节,来自 192.168.0.104: icmp_seq=3 ttl=64 时间=741 毫秒 64 字节,来自 192.168.0.104: icmp_seq=4 ttl=64 时间=8.96 毫秒 64 字节,来自 192.168.0.104: icmp_seq=5 ttl=64 时间=4.35 毫秒 ^C --- 192.168.0.104 ping 统计 --- 已发送 5 个包, 已接收 5 个包, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 4.354/254.559/740.833/311.299 ms
|
Linux 的文件属性
linux文件系统框架图片
1 2
| gouxin@navi /> ls bin@ boot/ dev/ etc/ home/ lib@ lib64@ mnt/ opt/ proc/ root/ run/ sbin@ srv/ sys/ tmp/ usr/ var/
|