尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Linux系统(02)——所有基本指令全解(零基础详解版)

Linux系统(02)——所有基本指令全解(零基础详解版) ⭐️博主此生决int-CSDN博客速胜派就是最大的投降派热门专栏深入理解 C 系列算法系列快速复习系列Linux系列Gitee地址财哥 | GitHub地址财哥文章目录上期回顾Linux基本命令常用热键一切皆文件Linux 理论知识路径的认识与Windows的联系pwd 命令Print Working Directory1ls 指令(list1.1直接ls2ls -l3ls -a4ls -al4 ls 目录名2cd 指令Change Directory3touch创建文件 / 更新时间4mkdirmake directory创建目录5rmdirremove Directory:删除空目录6rmremove:删除文件或目录7manmanual查看命令手册命令帮助文档命令百科全书8cpcopy复制文件或目录9mvmove移动 (剪切/ 重命名cp 和 mv 对比Linux补充知识2——文件分类10echo向终端输出内容catconcatenate查看文件内容输出重定向追加重定向输入重定向 两个重定向总结管道 | 组合命令查看文件内容10cat查看小文件cat -n显示行号tac反向查看文件11more分页查看文件大文件12less增强版分页查看文件大文件代码示例13head查看文件头部若干行默认1014tail查看文件尾部若干行默认10tail -f实时查看日志——非常重要15grepglobal regular expression print文本过滤搜索grep -i 忽略大小写查找grep -n 显示行号查找grep -r 当前目录递归查找15date显示/设置系统日期时间小知识——时间戳益智小故事——为什么电脑关机后开机还能知道现在几点16calcalendar查看日历17find文件搜索查找18which查找可执行程序路径19whereis查找命令的二进制、源码、手册位置区别20alias设置命令别名22top实时查看系统进程资源23zip/unzipzip格式压缩和解压缩24tartape archive打包解压重要tar的重要参数25rzsz串口传输文件工具rz从本地上传文件到 Linuxsz从 Linux 下载到本地scpsecure copy安全复制26bcbasic calculator命令行计算器27uname -r查看内核版本信息下期预告Linux权限结语上期回顾大家好这里是此生弃int财哥欢迎来到我的博客。上一篇我们学习了解了Linux的历史演变成功购买并部署了自己的云服务器那么今天我们就来学习一些基础的Linux命令吧Linux基本命令在讲解命令之前我们要先来了解一些基础知识常用热键[Tab]自动补全——命令/路径自动补全。[Ctrl] C终止当前前台程序[Ctrl] DEOF / 退出当前 ShellCtrl R搜索历史命令↑和↓历史命令history查看历史命令一切皆文件Linux的最大的一个特点和理解——一切皆文件在 Linux 中很多资源都可以通过“文件”的方式进行统一访问。例如资源Linux中的体现普通文件/home/test.txt目录/home/磁盘设备/dev/sda键盘/dev/input/...等设备文件终端/dev/pts/0等鼠标/dev/input/...等设备文件管道可以通过文件描述符进行读写网络连接可以通过类似文件的文件描述符进行读写包括但不限于你的屏幕鼠标键盘磁盘等等所以如果可以找到对应的文件比如找到屏幕文件我们就可以向屏幕文件里面输入内容那么就可以显示在屏幕上注意不要读写磁盘文件哦非常危险Linux 为很多硬件设备和系统资源提供了类似文件的访问接口程序可以通过统一的文件操作机制与这些资源进行交互Linux 理论知识路径的认识Linux 系统中磁盘上的文件和目录被组成一棵目录树每个节点都是目录或文件普通文件 ——叶子节点目录 ——叶子(空目录)路上节点理解路径存在的意义树状组织方式都是为了保证快速定位查找到指定的文件而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点都只有一个父节点所以从根目录开始定位指定文件路径具有唯一性分类类型定义特点常见使用场景绝对路径一般从/开始不依赖当前目录即可定位文件的路径方式。不依赖当前所在目录路径具有唯一性用户所在目录发生变化时路径通常不会失效。特定服务的配置文件中经常使用。相对路径相对于当前用户所处目录用于定位文件的路径方式。依赖当前所在目录使用更加便捷。命令行操作中使用较多。与Windows的联系我们日常在点击文件的时候可以看到pwd 命令Print Working Directory语法pwd功能显示用户当前所在的目录常用选项无举例[rootVM-0-10-centos ~]# pwd/root#这就是当前目录1ls 指令(list语法ls [选项] [目录或文件]功能对于目录该命令列出该目录下的所有子目录与文件。对于文件将列出文件名以及其他信息。所有选项选项功能说明示例 / 补充-a列出目录下的所有文件包括以.开头的隐含文件。ls -a-d将目录像文件一样显示而不是显示其下的文件。ls -d 指定目录-i输出文件的 i 节点inode的索引信息。ls -ai 指定文件-k以 KB千字节的形式表示文件大小。ls -alk 指定文件-l以长格式列出文件的详细信息。ls -l-n用数字形式的 UID、GID 代替用户名和组名。介绍 UID、GID-F在每个文件名后附加一个字符用于说明文件类型。*可执行普通文件/目录符号链接FIFO套接字-r对目录中的文件进行反向排序。ls -lr-t按文件的修改时间进行排序。ls -lt-s在文件名之前输出文件所占用的磁盘块大小。可用于查找目录下较大的文件-R递归列出所有子目录中的文件。ls -R-1每行只输出一个文件名。ls -1常用命令ls、ls-a、ls-l、ls-al1.1直接ls[rootlocalhost ~]# lsDesktop Documents Downloads test.txt表示当前目录中有Desktop、Documents、Downloads、test.txt这些文件。2ls -l显示文件的详细的信息。代码示例[rootVM-0-10-centos ~]# pwd/root[rootVM-0-10-centos ~]# lstest01[rootVM-0-10-centos ~]# ls -ltotal4drwxr-xr-x2root root4096Sep921:56 test013ls -a显示所有文件包括隐藏文件。隐藏文件一般以 . 开头示例[rootVM-0-10-centos ~]# ls -a..bash_history .bash_profile .cache .cshrc .pip .ssh test01...bash_logout .bashrc .config .npmrc .pydistutils.cfg .tcshrc4ls -al两个结合查看所有文件包括隐藏文件的详细信息示例4ls 目录名可以直接查看指定目录示例lscaige2cd 指令Change Directory例子假设当前/home/user里面有/home/user/code那么可以cdcodecd.#.表示当前目录cd..#..表示上一级目录cd~#进入当前用户的家目录。cd#与上面一样进入当前用户的家目录。cd-#返回上一次所在目录举例rootiZbp1762zeqzauorez4cw0Z:~# pwd/root rootiZbp1762zeqzauorez4cw0Z:~# tree.├── caige │?? └── test01 ├── snap │?? ├── lxd[error opening dir]│?? └── tree │?? ├──54│?? ├── common │?? └── current -54└── test0110directories,0files rootiZbp1762zeqzauorez4cw0Z:~# cd caigerootiZbp1762zeqzauorez4cw0Z:~/caige# pwd/root/caige#打开了caige目录3touch创建文件 / 更新时间最基本的用法touchtest.txt两种情况test.txt1如果不存在创建一个空文件。2已经存在不会把原来的内容清空而是更新相关时间信息。4mkdirmake directory创建目录注意是创建目录而不是文件mkdirtest# 在当前所在目录下创建目录testmkdir-pa b c# 创建多级目录5rmdirremove Directory:删除空目录只能删除空目录6rmremove:删除文件或目录rmtest.txt# 删除文件test.txtrm-rtest# 删除整个test文件夹所有东西常用选项;rm -r;recursive递归。就是全部删除为止rm -fforce强制。就是不用确认rm -rf:强制递归删除非常危险Linux 命令行中删除文件通常不会像 Windows 回收站那样给你一个方便的恢复机制。⚠️⚠️⚠️⚠️危险命令⚠️⚠️⚠️⚠️rm-rf/# 强制递归删除根目录rm-rf*# 强制递归删除当前目录下的所有文件隐藏文件除外所以互联网上的删库跑路代码就是rm -rf /7manmanual查看命令手册命令帮助文档命令百科全书manls# 查看命令ls的帮助文档不知道ls怎么用的时候可以用这个命令里面一般是这样的但是其实现在有AI了AI查询也非常方便8cpcopy复制文件或目录# cp 源文件 目标文件touchtest.txt# 新建一个test.txt文件cptest.txt test2.txt# 复制生成一份test2.txt文件# 把文件复制到目录。文件夹cptest.txt dir/# 把 test.txt 复制到 dir 目录中。# 复制文件夹cp-rtestdir/# r递归复制整个文件夹到dir目录总结cp 文件 → 直接 cpcp 目录 → 通常需要 cp -r9mvmove移动 (剪切/ 重命名# backup目录存在并且和test.txt在同一目录当前目录下mvtest.txt backup/#把test.txt剪切到backup/# 两个都是文件第二个文件不存在mvtest.txt hello.txt# 重命名# test.txt test.c都存在且在同一目录当前目录mvtest.txt test.c# 结果就只剩下一个test.c原则mv 源文件 目标不存在→ 重命名mv 源文件 目标是目录→ 移动到该目录mv 源文件 目标是已存在的普通文件→ 覆盖目标文件cp和mv对比对比cpmv含义copymove复制文件✅❌移动文件❌✅重命名通常不用于此✅原文件是否保留✅通常不保留目录操作cp -r可以直接移动目录Linux补充知识2——文件分类Linux 中文件类型不是通过文件后缀来区分的。系统主要通过文件的类型信息来识别文件。注意文件有没有.c、.txt、.jpg等后缀并不是 Linux 判断文件类型的依据。后缀主要是给人和部分工具使用的。Linux 常见文件类型通过ls -l查看文件时第一个字符可以表示文件类型符号文件类型说明-普通文件文本、可执行文件、库、图片、视频等都可以属于普通文件d目录文件用来组织和管理其他文件c字符设备文件键盘、显示器、终端等数据以字符流的形式进行读写b块设备文件磁盘等设备数据通常以数据块为单位进行读写l链接文件Linux 中的软链接p管道文件用于进程之间进行数据传输10echo向终端输出内容把指定内容输出到标准输出。echo“hello caige”echo 不是“打印”标准输出不一定非要显示在屏幕上。例如catconcatenate查看文件内容查看内容比较少的文本文件。cattest.txt# 把test.txt里面的内容输出到屏幕上输出重定向不要把程序的标准输出送到终端而是送到指定文件。echohello#输出到屏幕echohellotest.txt# 输出到文件test.txt会清空原文件如果文件不存在创建先创建在写入创建文件或者清空原文件后重新写入。追加重定向在文件末尾继续添加内容输入重定向例如某些支持标准输入的程序可以command命令test.txt把test.txt的内容作为这个程序的标准输入。现在先了解即可两个重定向总结区别写法作用原文件存在时输出重定向覆盖原内容输出追加保留原内容在末尾追加2重定向并不只适用于echo重定向是 Shell 提供的一种通用机制而不是echo专属功能。很多命令都会产生标准输出。例如 ls等等他们默认输出到屏幕但是lsfile.txt# 把ls输出的内容输出到文件file.txt里面可以通过cat来查看pwdpath.txt# 把当前路径保存到输出到path.txt 文件管道|组合命令‘|’把一个命令的输出交给另一个命令|不是把输出保存到文件而是把一个程序的标准输出作为另一个程序的标准输入。查看文件内容10cat查看小文件把文件内容输出到标准输出。cat -n显示行号tac反向查看文件cattest.txt# 把test.txt的内容直接打印到屏幕给我看rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt1file.txt2new.txt3test.txt4file.txt5new.txt6test.txt7/root/caige/test01/test# 测试tac tac没有-n选项只能用管道rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n file.txt | tac7/root/caige/test01/test6test.txt5new.txt4file.txt3test.txt2new.txt1file.txt11more分页查看文件大文件如果文件非常大可能瞬间刷满整个终端。这时候可以使用more命令它会一页一页显示。可以按Space 向后翻页。按Enter 向下移动一行。12less增强版分页查看文件大文件more不能往回翻一般都用less来查看大文件可以使用方向键上下移动也可以进行搜索。1方向键上下移动2/进行搜索3按“n”寻找下一个匹配位置4“q”退出命令适合场景cat小文件快速查看全部内容tac想从最后一行反向查看more较大文件简单分页less大文件需要上下翻页、搜索代码示例创建了一个文件内容是caige01一直到100foriin{1..100};doechocaige$(printf%02d$i);donebig.txtrootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# cat -n big.txt1caige012caige023caige034caige045caige056caige067caige078caige089caige0910caige1011caige11# 中间代码已删95caige9596caige9697caige9798caige9899caige99100caige10013head查看文件头部若干行默认10rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head big.txtcaige01 caige02 caige03 caige04 caige05 caige06 caige07 caige08 caige09 caige1014tail查看文件尾部若干行默认10rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# tail big.txtcaige91 caige92 caige93 caige94 caige95 caige96 caige97 caige98 caige99 caige100head、tail、管道“|”的组合使用rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt # 作用是查看前50行rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# head -50 big.txt | tail -10 # 先查看前50行得到一个结果然后查看这个结果的后10行caige41 caige42 caige43 caige44 caige45 caige46 caige47 caige48 caige49 caige50tail -f实时查看日志——非常重要-f follow持续跟踪文件末尾。Ctrl C退出15grepglobal regular expression print文本过滤搜索grep -i 忽略大小写查找grep -n 显示行号查找grep -r 当前目录递归查找15date显示/设置系统日期时间data格式按照你给的格式输出当前时间代码示例rootiZbp1762zeqzauorez4cw0Z:~/caige/test01/test# date %Y-%m-%d %H:%M:%S # 按照规定格式显示当前时间2026-10-0116:58:25格式含义%Y年%m月%d日%H小时%M分钟%S秒‘%s’时间戳%F日期等价于%Y-%m-%d%T时间等价于%H:%M:%S小知识——时间戳rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# date %s1790846115这个1790846115就是时间戳他表示从 1970 年 1 月 1 日 00:00:00 UTC 开始到当前时间经过了多少秒。date -d 时间戳时间戳转换为普通时间rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d 1790846115Thu Oct105:15:15 PM CST2026rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# date %Y-%m-%d_%H:%M:%S -d 17259747462024-09-10_21:25:46 rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# date -d 0Thu Jan108:00:00 AM CST1970rootiZbp1762zeqzauorez4cw0Z:~/caige/test01#为什么是1970年1月1日8点因为主播在中国是北京时间东八区益智小故事——为什么电脑关机后开机还能知道现在几点有人肯定想是因为网路但是你想想你把网络关了它还是可以正常计时所以肯定是手机或者电脑自己里面带了钟表主板上有专门的实时时钟电路并且通常由主板上的纽扣电池供电。16calcalendar查看日历cal# 查看当前月的日历cal2023# 查看2023年所有日历cal32024# 查看2024年3月的日历cal-3# 查看今年这个月上个月下个月的日历17find文件搜索查找在指定目录及其子目录中查找所有符合条件的文件。find.-nametest.txt# 从当前目录开始递归寻找名字叫 test.txt 的文件。find/-nametest.txt# 从根目录 / 开始寻找 test.txtfind.-name*.cpp# 从这里开始把所有 .cpp 文件找出来。rootiZbp1762zeqzauorez4cw0Z:~/caige/test01find.-nametest.txt./test/test.txt rootiZbp1762zeqzauorez4cw0Z:~/caige/test01find/-nametest.txt/root/test.txt /root/caige/test01/test/test.txt18which查找可执行程序路径之前说过命令就是文件which就可以帮我们找到某个命令文件在哪里rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# which ls/usr/bin/ls rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# which pwd/usr/bin/pwd rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# which find/usr/bin/find19whereis查找命令的二进制、源码、手册位置不仅找命令文件即运行时运行的是哪个文件还会找一些与它相关的文件如帮助文档里面的关于这个命令怎么使用的文件等等rootiZbp1762zeqzauorez4cw0Z:~/caige/test01# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz区别对比whichwhereis主要目的找可执行命令找程序相关文件常见结果可执行文件路径程序、man 等多个位置常见用法which gccwhereis gcc适合场景确认实际执行哪个命令查看程序相关资源20alias设置命令别名给一个命令设置一个更方便的名字。1当前会话有用想要长期有用要修改写到/.bashrc文件2记得加引号把“命令”括起来aliasllls -al# ls -l 起一个方便使用的名字——ll当前会话ll就会执行ls -lalias# 查看当前所有别名命令unaliasll# 删除ll这个别名22top实时查看系统进程资源相当于Windows的资源管理器会进入一个动态变化的界面。它可以查看CPU 使用情况内存使用情况系统负载运行中的进程每个进程的资源占用退出按q23zip/unzipzip格式压缩和解压缩ziptest.zip test.txt# zip 目标文件名 要压缩的文件名ziptest.zip a.txt b.txt c.txt# 压缩多个文件zip-rproject.zip project/# 压缩目录# unzip解压unziptest.zip# 把 test.zip 解压到当前目录。unziptest.zip-doutput# 把 test.zip 解压到 output 目录。24tartape archive打包解压重要这个是打包zip是压缩打包就是相当于封装成一个文件夹大小不变压缩大小减小将多个文件/目录打包成一个归档文件并配合压缩算法进行压缩。tar的重要参数参数含义-ccreate创建归档-xextract解包-vverbose显示详细过程-ffile指定归档文件-z使用 gzip-j使用 bzip2-J使用 xz-C指定操作目录所以一般都是用的组合操作tar-cfproject.tar project/# 普通打包tar-cvfproject.tar project/# 显示打包过程打包tar-xfproject.tar# 解包tar-czvfproject.tar.gz project/# 可视化打包并gzip压缩tar-xzvfproject.tar.gz# 可视化解包并解压gzip包对比ziptar常见环境Windows / Linux 都常见Linux/Unix 非常常见主要作用压缩/解压打包/归档可配合压缩常见文件.zip.tar、.tar.gz、.tar.xz目录处理zip -r天然适合目录归档Linux 软件包相对少见非常常见25rzsz串口传输文件工具rz从本地上传文件到 Linux把本地电脑上的文件传输到 Linux 服务器。rz-C/root/caige/test01/# 上传的Linux指定文件夹sz从 Linux 下载到本地把 Linux 上的hello.cpp发送到本地电脑。sz test.txt# 把 Linux 中的 test.txt 发送到本地。scpsecure copy安全复制通过 SSH 安全地复制文件。可以直接在两台通过 SSH 通信的机器之间复制文件。scp/root/test.txt root192.168.1.100:/root/# scp 源文件 目标用户目标主机:目标路径scp-rcaige root192.168.1.100:/root/# 传递目录scproot192.168.1.100:/root/caige/test.cpp.# 从服务器下载文件对比rz/szscp依赖ZMODEM 终端软件支持SSH常见场景XShell 等终端中快速传文件机器之间复制是否需要交互选择文件rz通常需要通常直接写路径是否适合脚本化不太适合更适合是否需要 SSH不完全等同于 SCP 的 SSH 传输方式是目录传输受工具支持影响scp -rLinux 服务器开发常见度学习/临时传文件方便很常见26bcbasic calculator命令行计算器bc是 Linux 中的一个命令行计算器。直接输入bc即可进入Ctrl D退出27uname -r查看内核版本信息可以查看当前正在运行的 Linux Kernel 版本信息。rootiZbp1762zeqzauorez4cw0Z:~/caige/test01uname-r5.15.0-190-generic下期预告Linux权限结语本文到此结束感谢大家的阅读如果觉得本文对你有所帮助欢迎点赞、收藏、关注也欢迎在评论区一起交流讨论。也欢迎订阅我的深入理解 C系列从语法入门到底层原理系统掌握现代 C算法系列从入门到精通蓝桥杯、ACM、LeetCode 与面试算法全路线快速复习系列知识梳理、查漏补缺考前冲刺必备Linux系列从零带你系统学习Linux系统深入理解计算机组成原理愿每一次敲下键盘都比昨天更进一步愿每一行代码落下都让未来多一种可能
返回列表