【初学Linux】基本指令

【初学Linux】基本指令
初学Linux先使用终端指令的形式。使用xshell软件——ubtuntu常见的快捷键操作AltEnter:全屏软件/退出全屏上下键查找历史命令简单的命令clear:清屏(把当前的文字都清除)pwd:显示当前用户所在的路径rootVM-0-12-ubuntu:~/Linux_study/basicall_order# pwd /root/Linux_study/basicall_order //路径 其中第一个/是Linux环境下的根目录whoami:显示用户名rootVM-0-12-ubuntu:~/Linux_study/basicall_order# whoami root //用户名是rootmkdir:新建一个目录文件夹命令指令文件名字ls指令语法命令命令行选项ls:列出当前目录所有的文件他只显示文件名他是list的缩写rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls mydir test.c //当前目录下的相关的文件ls -l列出当前目录所有的文件还有其他的属性文件大小、创建\修改时间rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -l total 4 drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c注意这里输入的是ls(空格)-l,在键盘上面敲的时候要注意。rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -l //这是命令行提示符不是指令它告诉你 //root当前登录用户是 root超级管理员 //VM-0-12-ubuntu主机名 //~当前在 root 用户的家目录即 /root //Linux_study/basicall_order当前所在的具体路径相对于家目录 #表示当前是 root 用户普通用户显示的是 $ total 4 //表示当前目录下所有文件占用的磁盘块总数drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir字段值含义第1段d rwx r-x r-x文件类型和权限d表示这是一个目录directoryrwx所有者root有读、写、执行权限r-x用户组root有读、执行权限无写权限r-x其他人有读、执行权限无写权限第2段2硬链接数该目录下包含 2 个链接即.和..第3段root所有者该目录属于 root 用户第4段root所属用户组该目录属于 root 用户组第5段4096文件大小单位字节这里是 4KB第6段Aug 22 23:08最后修改时间8月22日 23:08第7段mydir文件/目录名称-rw-r--r-- 1 root root 0 Aug 22 23:11 test.c字段值含义第1段- rw- r-- r--文件类型和权限-表示这是一个普通文件不是目录rw-所有者root有读、写权限无执行权限r--用户组root只有读权限r--其他人只有读权限第2段1硬链接数该文件只有 1 个链接第3段root所有者该文件属于 root第4段root所属用户组属于 root 组第5段0文件大小0 字节这是一个空文件第6段Aug 22 23:11最后修改时间第7段test.c文件名l:Long 的缩写以长格式显示详细信息权限、大小、修改时间等ls -l作用显示指定目录的内容但不进入该目录——ll等价rootVM-0-12-ubuntu:~# pwd /root rootVM-0-12-ubuntu:~# ls Linux_study rootVM-0-12-ubuntu:~# ls -l Linux_study total 4 drwxr-xr-x 3 root root 4096 Aug 22 23:11 basicall_orderls -a作用显示所有文件包括隐藏的目录rootVM-0-12-ubuntu:~/Linux_study/basicall_order# pwd /root/Linux_study/basicall_order rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls mydir test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -a . .. mydir test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -al total 12 drwxr-xr-x 3 root root 4096 Aug 22 23:11 . drwxr-xr-x 3 root root 4096 Aug 22 22:23 .. drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -a -l total 12 drwxr-xr-x 3 root root 4096 Aug 22 23:11 . drwxr-xr-x 3 root root 4096 Aug 22 22:23 .. drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -l -a total 12 drwxr-xr-x 3 root root 4096 Aug 22 23:11 . drwxr-xr-x 3 root root 4096 Aug 22 22:23 .. drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order#ls -a -l和ls -l -a他的输入顺序不同但是他们的功能目的都是一样的。上面.和..是什么——分别是当前目录和上级目录ls -d作用查看本目录的属性修改时间、大小cd指令作用改变路径cd ~当前用户自己的家目录cd -跳转到最近所处的路径cd /进入根目录cd ..进入上级目录rootVM-0-12-ubuntu:~# ls Linux_study rootVM-0-12-ubuntu:~# cd Linux_study rootVM-0-12-ubuntu:~/Linux_study# cd - /roottouch指令作用更新文件的时间和新建一个普通文件不能是目录rm指令作用删除普通文件rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls code.c hello.txt mydir test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# rm hello.txt rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls code.c mydir test.crmdir:删除空目录rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls code.c empty1 hello.txt mydir test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# rmdir empty1 rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls code.c hello.txt mydir test.crm -f 文件名强制删除文件无论空还是非空不会提示rm -r递归删除目录及其所有内容rm -rf文件名rootVM-0-12-ubuntu:~/Linux_study/basicall_order/empty# tree a a └── b └── c └── d 4 directories, 0 files rootVM-0-12-ubuntu:~/Linux_study/basicall_order/empty# rm -rf a rootVM-0-12-ubuntu:~/Linux_study/basicall_order/empty# tree a a [error opening dir] 0 directories, 0 files rootVM-0-12-ubuntu:~/Linux_study/basicall_order/empty#递归且强制删除整个目录下的文件man命令Linux 中的手册页manual pages查看命令用于查看系统命令、函数、配置文件等的详细使用说明文档。man ls # 查看 ls 命令的详细说明 man touch # 查看 touch 命令的详细说明 man mkdir # 查看 mkdir 命令的详细说明 man rm # 查看 rm 命令的详细说明在 man 页面中的导航操作按键功能空格键向下翻一页Enter 键向下翻一行b向上翻一页/关键词搜索关键词按 n 继续搜索下一个q退出 man 页面cp指令Linux 中复制文件或目录的命令全称是copy复制。hzxVM-0-12-ubuntu:~/notes/lesson_order$ cp code.c code_copy.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ ll total 16 drwxrwxr-x 2 hzx hzx 4096 Aug 31 18:24 ./ drwxrwxr-x 3 hzx hzx 4096 Aug 31 18:13 ../ -rw-rw-r-- 1 hzx hzx 78 Aug 31 18:21 code.c -rw-rw-r-- 1 hzx hzx 78 Aug 31 18:24 code_copy.c//可以自己创造 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat code_copy.c #include stdio.h int main() { printf(Hello Linux\n); return 0; } //修改code.c内容 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo // new content code.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat code.c #include stdio.h int main() { printf(Hello Linux\n); return 0; } // new contentcp -i覆盖文件的原来内容hzxVM-0-12-ubuntu:~/notes/lesson_order$ cp -i code.c mybackup/main.c cp: overwrite mybackup/main.c? y # 输入 y 确认覆盖 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat mybackup/main.c #include stdio.h int main() { printf(Hello Linux\n); return 0; } //new content-i会在覆盖已有文件时询问你是否确认输入y确认覆盖输入n取消操作cp -r复制整个目录hzxVM-0-12-ubuntu:~/notes/lesson_order$ mkdir file1.txt file2.txt file3.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ ll total 32 drwxrwxr-x 6 hzx hzx 4096 Sep 1 09:52 ./ drwxrwxr-x 3 hzx hzx 4096 Aug 31 18:13 ../ -rw-rw-r-- 1 hzx hzx 92 Sep 1 09:47 code.c -rw-rw-r-- 1 hzx hzx 78 Aug 31 18:24 code_copy.c drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:52 file1.txt/ drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:52 file2.txt/ drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:52 file3.txt/ drwxrwxr-x 2 hzx hzx 4096 Aug 31 18:36 mybackup/ hzxVM-0-12-ubuntu:~/notes/lesson_order$ ll mybackup/ total 12 drwxrwxr-x 2 hzx hzx 4096 Aug 31 18:36 ./ drwxrwxr-x 6 hzx hzx 4096 Sep 1 09:52 ../ -rw-rw-r-- 1 hzx hzx 92 Sep 1 09:49 main.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ cp -r file1.txt file2.txt file3.txt mybackup/ hzxVM-0-12-ubuntu:~/notes/lesson_order$ ll mybackup/ total 24 drwxrwxr-x 5 hzx hzx 4096 Sep 1 09:53 ./ drwxrwxr-x 6 hzx hzx 4096 Sep 1 09:52 ../ drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:53 file1.txt/ drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:53 file2.txt/ drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:53 file3.txt/ -rw-rw-r-- 1 hzx hzx 92 Sep 1 09:49 main.c关于cp命令一个非常核心的原则是cp命令本身不会主动去“创建”一个不存在的目录但它会“创建”一个不存在的目标文件。*通配符它的作用是代表任意长度的任意字符包括空字符。简单说*可以帮你批量匹配文件名而不用一个个打出来。hzxVM-0-12-ubuntu:~/notes/lesson_order$ touch file1.txt file2.txt file3.log hello.c main.c readme.md hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls file1.txt file2.txt file3.log hello.c main.c readme.md*匹配所有文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo * file1.txt file2.txt file3.log hello.c main.c readme.md*.txt匹配所有.txt结尾的文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls *.txt file1.txt file2.txt*.c匹配所有.c结尾的文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls *.c hello.c main.cfile*匹配所有以file开头的文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls file* file1.txt file2.txt file3.log*1*匹配所有文件名中包含1的文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls *1* file1.txt*与cp配合使用批量复制# 复制所有 .txt 文件到 mybackup 目录 hzxVM-0-12-ubuntu:~/notes/lesson_order$ mkdir mybackup hzxVM-0-12-ubuntu:~/notes/lesson_order$ cp *.txt mybackup/ hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls mybackup/ file1.txt file2.txt*不匹配隐藏文件以.开头的文件mv作用移动文件或目录到另一个位置重命名文件或目录mv [选项] 源文件/目录 目标文件/目录重命名hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls code.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ mv code.c main.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls main.c解释mv code.c main.c把code.c重命名为main.c内容完全不变。重命名目录hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls mybackup hzxVM-0-12-ubuntu:~/notes/lesson_order$ mv mybackup backup hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls backup移动文件到另一个目录# 先查看当前目录 hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls main.c # 创建目标目录 hzxVM-0-12-ubuntu:~/notes/lesson_order$ mkdir src # 把 main.c 移动到 src 目录 hzxVM-0-12-ubuntu:~/notes/lesson_order$ mv main.c src/ # 查看结果 hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src/ main.c解释mv main.c src/把main.c移动到src/目录下原位置不再有main.c。移动文件到另一个目录并改名hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src/ main.c # 把 src/main.c 移动到当前目录并改名为 code.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ mv src/main.c ./code.c hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls code.c src hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src/ 空解释mv src/main.c ./code.c把文件从src/目录移出来同时改名为code.c。移动整个目录hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls backup src # 把 backup 目录移动到 src 目录下 hzxVM-0-12-ubuntu:~/notes/lesson_order$ mv backup src/ hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls src/ backup-f force 强制的意思如果⽬标⽂件已经存在不会询问而直接覆盖-i 若目标⽂件 (destination) 已经存在时就会询问是否覆盖echo指令作用在终端中显示一行文本或变量的值。echo [选项] [要显示的内容]hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo Hello Linux Hello Linux hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo Hello World Hello World //也可不带引号建议带输出变量# 定义一个变量 hzxVM-0-12-ubuntu:~/notes/lesson_order$ namehzx # 输出变量的值 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo $name hzx # 输出组合内容 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo My name is $name My name is hzx显示环境变量hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo $HOME /home/hzx hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo $USER hzx hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo $SHELL /bin/bash hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo $PWD /home/hzx/notes/lesson_orderecho与重定向配合使用覆盖重定向覆盖写入# 创建文件并写入内容 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo hello world file.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat file.txt hello world # 再次写入会覆盖原内容 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo new content file.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat file.txt new content追加重定向追加到末尾hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo 第一行 file.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo 第二行 file.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo 第三行 file.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat file.txt 第一行 第二行 第三行-n不换行输出# 默认会换行 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo hello hello 这里会自动换行 # 加 -n 不换行 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo -n hello hello光标停在这里不换行printf指令rootVM-0-12-ubuntu:~/Linux_study/basicall_order# printf age %d name %s high %f\n 18 lihua 3.41 age 18 name lihua high 3.410000cat指令cat concatenate连接/串联作用查看文件内容最常用合并多个文件创建新文件将内容重定向到其他文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat code.c #include stdio.h int main() { printf(Hello Linux\n); return 0; } # 创建两个测试文件 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo Hello file1.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo World file2.txt # 同时查看两个文件 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat file1.txt file2.txt Hello World合并多个文件拼接# 把 file1.txt 和 file2.txt 合并成 newfile.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat file1.txt file2.txt combined.txt hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat combined.txt Hello World创建新文件使用重定向# 创建并写入内容CtrlD 结束 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat newfile.txt This is line 1 This is line 2 This is line 3 按 CtrlD 保存退出 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat newfile.txt This is line 1 This is line 2 This is line 3追加内容到文件使用# 先创建文件 hzxVM-0-12-ubuntu:~/notes/lesson_order$ echo 第一行 notes.txt # 追加内容 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat notes.txt 第二行 第三行 按 CtrlD 结束 hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat notes.txt 第一行 第二行 第三行-n显示行号hzxVM-0-12-ubuntu:~/notes/lesson_order$ cat -n code.c 1 #include stdio.h 2 3 int main() 4 { 5 printf(Hello Linux\n); 6 return 0; 7 }more作用分页查看文件内容适合查看长文件防止内容一次性刷屏。more [选项] 文件名查看一个长文件hzxVM-0-12-ubuntu:~/notes/lesson_order$ more /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin --More--(14%)- 数字# 每页只显示 5 行 hzxVM-0-12-ubuntu:~/notes/lesson_order$ more -5 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync --More--(3%)行号从指定行开始显示# 从第 20 行开始显示 hzxVM-0-12-ubuntu:~/notes/lesson_order$ more 20 /etc/passwdmore的交互操作键按键功能空格键向下翻一页Enter向下翻一行b向上翻一页/关键词搜索关键词按 n 继续搜索下一个q退出查看head作用查看文件开头部分的内容默认显示前 10 行。查看 /etc/passwd 的前 10 行hzxVM-0-12-ubuntu:~/notes/lesson_order$ head /etc/passwd #默认查看前10行 root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin-n 行数指定查看的行数# 查看前 5 行 hzxVM-0-12-ubuntu:~/notes/lesson_order$ head -n /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync hzxVM-0-12-ubuntu:~/notes/lesson_order$ head -n /etc/passwd#简写可以不加n root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync补充知识路径的认识文件和文件的结构可以看成是一个多叉树其中上面的/是文件的开始也就是根目录。路径分隔符的不同Window:\ Linux:/因此两个路径分隔符中间一定是一个目录在末端有可能是目录也有可能是普通文件。那么从多叉树的角度来理解就是叶子结点可能是目录也有可能是普通文件非叶子结点一定能是一个文件。绝对路径从根目录开始不依赖其他目录的定位文件的标志。日常使用简单相对路径相对于当前用户所在的目录定位文件的路径方式。在配置文件中使用别名的初步理解rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls -l total 4 -rw-r--r-- 1 root root 0 Aug 23 22:30 hello.txt drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ll total 12 drwxr-xr-x 3 root root 4096 Aug 23 22:30 ./ drwxr-xr-x 3 root root 4096 Aug 22 22:23 ../ -rw-r--r-- 1 root root 0 Aug 23 22:30 hello.txt drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir/ -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c可以看到ls -l和ll指令显示出来的功能画面一模一样有什么区别呢——相同的只是别名而已。rootVM-0-12-ubuntu:~/Linux_study/basicall_order# which ls /usr/bin/ls rootVM-0-12-ubuntu:~/Linux_study/basicall_order# which pwd /usr/bin/pwd rootVM-0-12-ubuntu:~/Linux_study/basicall_order# which mkdir /usr/bin/mkdir可以看到相关的指令例如ls,pwd,mkdir存放在目录里面的说明指令是一个文件。rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls /usr/bin/ls -l -rwxr-xr-x 1 root root 142312 Jun 23 2025 /usr/bin/ls rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls /usr/bin/pwd -l -rwxr-xr-x 1 root root 35336 Jun 23 2025 /usr/bin/pwd rootVM-0-12-ubuntu:~/Linux_study/basicall_order# ls /usr/bin/mkdir -l -rwxr-xr-x 1 root root 76296 Jun 23 2025 /usr/bin/mkdir通过详细的信息可以看到命令本质上就是系统上的普通文件输入命令的时候系统会去找相对应的命令的文件并且去执行。rootVM-0-12-ubuntu:~/Linux_study/basicall_order# /usr/bin/pwd /root/Linux_study/basicall_order rootVM-0-12-ubuntu:~/Linux_study/basicall_order# /usr/bin/ls hello.txt mydir test.c rootVM-0-12-ubuntu:~/Linux_study/basicall_order# /usr/bin/ls -l total 4 -rw-r--r-- 1 root root 0 Aug 23 22:30 hello.txt drwxr-xr-x 2 root root 4096 Aug 22 23:08 mydir -rw-r--r-- 1 root root 0 Aug 22 23:11 test.c可以看到通过路径的形式去执行指令依然可以达到同样的效果。当执行命令的时候是输出./命令的命令的本质就是可执行文件C/C的程序但是在Linux环境下要执行命令就要./命令的形式但是系统命令ls、ls -l、pwd的命令不需要输入./就可以直接执行。原因先不说如果把自己写的可执行持续写到/usr/bin/这个路径下面直接输出文件的名字就可以直接执行了。因此命令系统指定路径下的可执行程序。把自己写的可执行程序写入到/usr/bin/这个目录下面本质就是在Linux下面做软件安装在自己电脑的Window环境下做的安装的明显区别就是Linux环境下没有进度条Window环境下有但是他的本质是一样的就是拷贝可执行程序到上面的路径下大部分。怎么起别名呢alias指令作用起别名。Linux系统中一切皆文件键盘显示器都可以看成是文件根据stdout,stdin,stder。指令——重定向操作语法写入内容 文件名如果该文件名不存在就新建只能新建普通文件存在就情况然后把新写入的内容写入到文件里面。如果要清空语法就是 文件名指令——追加重定向和上面一样区别就是他不清空文件如果文件存在且有内容在此基础上继续写入内容cat 输入重定向Linux 文件类型标志速查表标志英文全称代表类型通俗解释生活类比颜色通常-Regular File普通文件存放数据、文字、代码的文件。比如.txt,.c, 图片、视频。白色/无色dDirectory目录就是 Windows 里的文件夹。蓝色lSymbolic Link符号链接软链接相当于 Windows 的快捷方式指向另一个文件。青色/天蓝cCharacter Device字符设备文件以字符流传输的设备如键盘、鼠标。黄色bBlock Device块设备文件以数据块传输的存储设备如硬盘、U盘。黄色sSocket套接字文件用于进程间网络通信的接口。粉色/紫色pNamed Pipe (FIFO)管道文件用于让一个进程把数据传给另一个进程。黄色# 1. 普通文件 (-) 和 目录 (d) hzxVM-0-12-ubuntu:~/notes/lesson_order$ ls -l total 8 -rw-rw-r-- 1 hzx hzx 33 Sep 1 10:00 code.c # 开头是 -这是普通文件 drwxrwxr-x 2 hzx hzx 4096 Sep 1 09:55 mydir/ # 开头是 d这是目录 # 2. 字符设备 (c) 和 块设备 (b) —— 去设备目录看看 hzxVM-0-12-ubuntu:~$ ls -l /dev/sda /dev/tty1 brw-rw---- 1 root disk 8, 0 Sep 1 10:00 /dev/sda # 开头是 b硬盘块设备 crw-rw---- 1 root tty 4, 1 Sep 1 10:00 /dev/tty1 # 开头是 c终端字符设备 # 3. 符号链接 (l) —— 去看看系统库 hzxVM-0-12-ubuntu:~$ ls -l /lib/x86_64-linux-gnu/libc.so.6 lrwxrwxrwx 1 root root 12 Sep 1 10:00 /lib/x86_64-linux-gnu/libc.so.6 - libc-2.31.so # 开头是 l这就是一个快捷方式指向后面的 libc-2.31.so

最新新闻

日新闻

周新闻

月新闻