声明
- 本章节使用的ubuntu 22.04
- 本章节不提供VMware与Linux的安装教程,网上一搜一大把
- Linux安装过程中,遇到“指定磁盘容量”步骤时,请选择“将虚拟磁盘存储为单个文件”选项以提高性能,此选项并不会使您接下来的安装过程受到影响
- 如果您不想让您的Linux系统更新太慢,Linux安装完成之后需要将镜像源换至国内
- 观看此文章之前,希望您对Linux的一些最基础命令有一定的了解
- 此文章不能保证您精通Linux,但可以使您对Linux进一步有一定的了解
- 学习一个命令之后,希望您不要眼高手低,要对命令深刻了解,并且能够熟练操作
- 希望您不要安装第三方库,最基础的GNU命令都不完全了解的话,又怎么能知道第三方库的所有用处呢
- 一定!一定要练习命令
Linux简介
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
详情介绍前往维基百科
Linux一切皆文件
Linux操作系统
- Linux kernel(内核)
- GNU工具
- GUI Desktop环境
- Application
Linux内核:
- 硬件设备 管理使用
- 软件程序(系统)——> 操作软件
- 系统内存
- 文件管理
Linux根目录
Linux目录:
/bin 二进制目录 GNU工具或自带的ls等命令 存放多用户级
/etc 系统的配置文件目录
/lib 库目录/lost+found 文件丢失找回
/mnt 挂载目录 (磁盘,U盘,外在设备)
/run 运行目录
/proc 伪文件目录
/tmp 临时目录
/var 可变目录 (log日志文件)
/boot 启动目录 (Linux启动)
/dev 设备目录(设备管理器)
/media 媒体目录 (媒体信息)
/opt 可选目录 (第三方文件)
/root 管理员主目录
(sudo rm -rf /* 删库命令)
/sbin 系统二进制文件 GNU高级管理员使用的命令工具
/srv 服务目录 (本地服务)
/usr 用户二进制目录 GNU工具(普通用户使用)
/usr/bin/ 用户自己安装的软件
FHS 文件系统层级标准 (Filesystem Hierarchy Standard)
Linux 文件与目录管理
我们知道 Linux 的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
在开始本教程前我们需要先知道什么是绝对路径与相对路径。
• 绝对路径:路径的写法,由根目录 / 写起
例如: /usr/share/doc 这个目录。
• 相对路径:路径的写法,不是由 / 写起
例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法
处理目录的常用命令
处理目录的常用命令
接下来我们就来看几个常见的处理目录的命令吧:
ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
来自:https://www.runoob.com/linux/linux-file-content-manage.html
cd切换目录
语法:cd [相对路径或绝对路径]
cd 进入用户主目录;
cd / 进入根目录
cd ~ 进入用户主目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/”;”..”为上级目录的意思);
cd ../.. 返回上两级目录;
cd – 回到上一次进入的目录
ls进阶用法 文件过滤匹配符
文件扩展匹配符 ? *
- * 多个符号
- ? 一个占位符
- 元字符通配符 []
- ‘ !’ 取反符
ls -l o[a-x]o.txt
ls -l o[!a-x]o.txt
touch创建文件
touch命令 有两个功能:
一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;
二是用来创建新的空文件。
语法:touch [选项] [文件]
绝对路径与相对路径
绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相对于当前路径的写法。
绝对路径(宇宙级的快递,全):
银河系地球村中国江西省九江市XX县
相对路径(地球村的快递,不全):
但是对于我们地球的快递小哥哥来说你一定是在 银河系:/地球村
这个时候快递小哥哥看的地址; /中国/江西省/九江市/xxx
就是相对路径了
如果还不理解,请自行百度
cp文件复制
cp 将源文件或目录复制到目标文件或目录中
若目标文件不存在,则创建新的目标文件
cp 源文件 目标文件或目录(多种方法)
- 文件——文件
- 文件——目录
- 目录——目录
- 目录——文件
- 路径——路径
- …
将text_1.txt的内容复制到文件text_2.txt中
-
cp -i text_2.txt text_3.txt
提示overwrite y/n ?
y(yes) 覆盖
n(no) 不覆盖

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
- 不使用 -r 只会将该目录下的文件复制到目标文件夹
- 使用 -r 连同该目录一起复制到目标文件夹
cp /home/fuck/Documents/Doc/* /home/fuck/Downloads/
cp -r /home/fuck/Documents/Doc/ /home/fuck/Downloads/
lnk链接文件
- 符号链接(软链接)——即快捷方式
【符号链接(symbolic links),软链接(soft links)】 - 硬链接——即副本
ln 用来为文件创建链接
-s, –symbolic 对源文件建立符号链接,而非硬链接(软链接)
在目录/home/fuck/Document/中建立符号链接文件test.java 使它指向/home/fuck/Temp/test.java
ln -s /home/fuck/Document/temp/test.java /home/fuck/Document/
ln -s test.java test_link.java

建立硬链接 (无指向 相当于一个副本)
只能建立在同一个介质里面 (相当于Windows的同一块硬盘)
ln test.java test_linkfile.java
软链接与硬链接区别
原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。
实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;可以对目录创建软连接,可以跨文件系统创建软连接,可以对不存在的文件创建软链接。
优点与缺点
软链接
优点:
- 软连接也叫符号链接,包含要链接到的文件名字,并且在符号链接之前那个文件不一定存在。
- 软连接可以跨越不同的文件系统,并且可以创建目录间的链接
- 即使删除软连接也不会破坏原来的文件
缺点:
- 软连接文件不是一个独立的文件,它的许多属性依赖于原文件,所以给一个软连接文件设置存取权限是没有意义的
- 软链接链接文件建立后,如果删除源文件,则软连接文件将会指向一个空文件,软连接也就会失效
硬链接
优点:
- 对于文件所做的任何修改都是有效的
- 不依赖访问该文件所用的名字
缺点:
- 文件的硬链接不能从最初的目录项区分开来,只能建立在同一介质
- 硬链接不能用于创建目录链接和在不同的文件系统间创建文件链接
mv重命名
mv 移动或重命名文件
将tebiechangdewenjian.txt重命名为file.txt
mv tebiechangdewenjian.txt file.txt
将~/Documents/Temp/test.java移动到~/Documents/Doc/目录里面
mv ~/Documents/Temp/test.java ~/Documents/Doc/
将~/Documents/下的java文件夹移动到~/Project/下
mv ./java ~/Project/
rm 删库跑路了解一下
rm命令 Linux最危险的命令之一
鼠鼠我啊,想坐牢了
sudo rm -rf /*
enter!(狂吼!!!)
rm 删除文件或目录 (非常危险,建议配合-i(交互)选项)
利用匹配过滤符 * 删除./Temp/中的delete_1.txt delete_2.txt文件
rm (-i)delete_*
你甚至可以删除Temp文件夹
rm -rf (-i) ~/Documents/Temp
rm -ri ~/Documents/Temp
删除根目录下的所有文件(删库,蹲牢子)
sudo rm -rf /* (/ 为根目录 * 为匹配过滤符)
文件夹的创建与删除
创建
删除
文件夹的删除:rmdir (remove directories)
只能删除空目录,是个fw命令()
一般删除文件夹使用rm命令
文件类型
Windows上的文件有各种各样的格式
视频格式:MP4,AVI,MOV,WMV…
Linux上也有不同的文件类型,我们可以使用file查看文件类型
file命令 用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
查看文件
打开文本文件的三大命令:cat,more,less
cat:连接多个文件并打印到标准输出。
主要用途:
- 显示文件内容,如果没有文件或文件为-则读取标准输入。
- 将多个文件的内容进行连接并打印到标准输出。
- 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。
来自:https://wangchujiang.com/linux-command/c/cat.html
但文件体积较大时并不方便
more:显示文件内容,每次显示一屏
more名单中内置了若干快捷键,常用的有:
- H(获得帮助信息)
- Enter(向下翻滚一行)
- 空格(向下滚动一屏)
- Q(退出命令)
来自:https://wangchujiang.com/linux-command/c/more.html
less:
-
less命令的作用与more十分相似,都可以用来浏览文字档案的内容
不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
用less命令显示文件时
用PageUp键向上翻页,用PageDown键向下翻页。
要退出less程序,应按Q键。
来自:https://wangchujiang.com/linux-command/c/less.html
这三个命令只能读取而不能编辑,并不常用(但要记住)
有趣命令
- cd !$ 执行上一条命令的最后一条路径
- tail 在屏幕上显示指定文件的末尾若干行(默认末尾10行)
- head 显示文件的开头部分 (默认开头10行)
图中的上一条命令为mv ~/Documents/Temp/test.java ~/Documents/Doc
因此 cd !$ 执行的是 cd ~/Documents/Doc/
tail和head均可以使用-n选项调整行数
tail(head) -n 5 ./test.txt
便捷操作
终端光标移动:
- ctrl + 方向键 快速移动光标位置
- ctrl + a 跳跃至命令首段
- ctrl + e 跳跃至命令末端
- ctrl + u 清空所在命令行
- ctrl + k 清空光标之后的命令
pwd 查看当前所在目录(绝对路径)
危险命令(谨慎操作)
sudo rm -rf /* 删库命令
其他危险命令请自行网上查阅(我是懒狗.jpg)
结语
到此,您已经将最基础的shell命令看完了,您可以在接下来的几天里练习以上命令,也可以在Linux查询网站里学习更多的命令。
同时,更上一层的shell命令将更新。
棒棒哒