文章目录
前言
从本篇开始正式学习Linux操作系统的知识,接下来将带大家学习Linux的基本指令。
一. Linux简述
Linux 是一个开源、免费、类 Unix 的操作系统内核,由芬兰人 Linus Torvalds 于 1991 年首次发布。它遵循 GNU 通用公共许可证(GPL),允许用户自由使用、修改和分发。Linux 本身只是内核,通常与 GNU 工具链、桌面环境、应用程序等组合成完整的操作系统,称为“Linux 发行版”(如 Ubuntu、Debian、CentOS、Arch 等)。
Linux的主要特点:
- 开源免费:源代码公开,任何人可自由使用、修改、分发,无需支付授权费用。
- 稳定性强:可长时间运行不重启,广泛用于服务器、嵌入式系统、超级计算机。
- 安全性高:权限机制严格,病毒少,社区响应快,补丁更新及时。
- 多用户多任务:支持多个用户同时登录并运行多个任务,资源隔离良好。
- 跨平台:支持x86、ARM、RISC-V、MIPS等多种硬件架构。
- 强大的命令行:Shell 脚本功能强大,自动化、远程管理效率高。
- 丰富的软件生态:支持大量开源软件(如 Python、MySQL、Docker、Nginx),包管理器方便安装。
- 高度可定制:可裁剪为极小系统(如路由器固件),也可构建为完整桌面或服务器系统。
- 社区活跃:全球开发者参与维护,文档丰富,问题响应快。
总结:Linux 是一个自由、稳定、安全、可定制的操作系统内核,是现代互联网基础设施的核心支柱之一。
二. XShell远程登录
XShell的下载官网:https://www.xshell.com/zh/free-for-home-school/
使用ssh 用户名@公网IP进行登录:

输入完密码就登录成功了:

三. Linux的基本指令
ls 指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,列出文件名以及其它信息。
常用选项:
- -a:列出目录下的所有文件,包括以.开头的隐含文件。
- -d:将目录像文件一样显示,而不是显示其下的文件。如:ls -d指定目录。
- -l:列出文件的详细信息。
- -i:输出文件的 i 节点的索引信息。 如 ls ‒ai 指定文件。
- -k:以 k 字节的形式表示文件的大小。如 ls ‒alk 指定文件。
- -n:用数字的 UID,GID 代替名称。
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r:对目录反向排序。
- -t:以时间排序。
- -s:在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R:列出所有子目录下的文件。(递归)
- -1:一行只输出一个文件。
ls -a:

ls -d:

ls -l:

- 在Linux中,任何以
.开头的文件/目录都是隐藏文件/目录;ls -a可以显示所有的隐藏文件/目录。- 在任何目录下,都存在两个隐藏目录.和. .(.是当前目录,. .是上级目录)。
- 在使用
ls -l命令时,如果以-开头的都是文件,以d开头的都是目录。

pwd 指令
语法:pwd
功能:显示用户当前所在的目录。

cd 指令
路径的认识:
- Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
- 其中普通文件一定是目录树的叶子节点。
- 目录可能是叶子(空目录),也可能是路上节点。
- 理解路径存在的意义: 树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以从根目录开始,定位指定文件,路径具有唯一性。
- 绝对路径:一般从/开始,不依赖其他目录的定位文件的方式。
- 相对路径:相对于当前用户所处目录,定位文件的路径方式。
- 绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用。
- 相对路径因为它的便捷性,一般在命令行中使用较多。


语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。

常用选项:
- cd . . :返回上级目录。
- cd ~ :进入用户家目录。
- cd - :回退到最近一次所处的目录。

家目录:这个是用户在系统中的专属目录,普通用户通常在/home下,特权用户在/root下。
touch 指令
语法:touch [选项] … 文件 …
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
- -a:修改文件Access时间。
- -m:修改文件Modify时间。


新建文件:

mkdir 指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为“dirname”的目录
常用选项:
- -p:可以创建一段路径,即一次可以建立多个目录。

tree命令是一个递归以树状结构显示指定目录的命令,如果没有安装可以使用命令:yum install -y tree 来安装(仅限root用户)。
rmdir 指令和 rm 指令
rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除目录。
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者。
功能:删除空目录。
常用选项:
rmdir -p:当子目录被删除后如果父目录也变成空目录的话,就连带父目录也一起删除。
rm命令可以同时删除文件或目录
语法:rm [-f -i -r -v] [dirName/dir]
适用对象:所有使用者。
功能:删除文件或目录
常用选项:
rm -f:强制删除文件。rm -r:删除该目录下极其子目录下的所有文件(递归删除)。rm -i:删除前逐一询问确认。
rm删除普通文件。

mkdir递归删除空目录时,遇到非空目录mydir1则删除不了,怎么解决这个问题?

可以使用强制删除该目录以及该目录下所有子目录和文件的命令:rm -rf

递归删除一个目录时逐一询问确认。

man 指令
Linux的命令有很多参数,很难全部记住,可以通过查看联机手册获取帮助。
语法:man [选项] 命令
常用选项:
-k:根据关键字搜索联机帮助。num:只在第num章节查找。-a:将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下:man手册分为九章(不同系统可能会有差别)
- 是普通的命令
- 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
- 是库函数,如printf,fread是特殊文件,也就是/dev下的各种设备文件
- 略
- 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义
- 是给游戏留的,由各个游戏自己定义
- 是附件还有一些变量,比如像environ这种全局变量在这里就有说明
- 是系统管理用的命令,这些命令只能由root使用,如ifconfig
- 略
可以使用man手册查自己:man man

可以使用man 3 printf命令查看C语言库里有关printf的函数。

cp 指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
说明:
- cp指令用于复制文件或目录
- 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
常用选项:
-f或–force:强行复制文件或目录,不论目的文件或目录是否已经存在-i或–interactive:覆盖文件之前先询问用户-r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
拷贝普通文件:

拷贝目录:

mv 指令
mv命令是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或者目录。
语法:mv [选项] 源文件或目录 目标文件或目录
功能:
- mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各种参数指定的源文件均移至目标目录中。
常用选项:
-f:force是强制的意思,如果目标文件已经存在,不会询问而直接覆盖。-i:若目标文件(destination)已经存在,就会询问是否覆盖。

echo 指令
默认向显示器文件写入数据,也可以向其它文件写入数据。
>:输出重定向,可以重定向输出的文件,如果文件不存在就创建。>>:追加重定向,与输出重定向不同的是:它不会清理文件本来就存在的内容。

cat 指令
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
-b:对非空输出行编号,空行不做编号-n:对输出的所有行编号-s:不输出多行空行(多行空行压缩成一行空行)
如果有以下文件:

cat -b

cat -n

cat -s

more 指令
语法:more [选项]
功能:类似于cat,都是查看文件内容,与cat不同的是:当读取的文件非常大时,cat会刷屏,more只显示满一个屏幕就停止。
常用选项:
-n:指定输出行数q:退出more

缺点:more只能向下翻阅(按空格键向下翻阅),不能向上翻阅。
less 指令
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性,在 more 的时候,我们并没有办法向前面翻, 只能往后面看。
- 但若使用了 less 时,就可以使用
[pageup] [pagedown]、j k等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。 - 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法:less [参数] 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
常用选项:
-i:忽略搜索时的大小写-N:显示每行的行号/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n:重复前一个搜索(与/或?有关)N:反向重复前一个搜索(与/或?有关)q:停止查看

head 指令
head 与 tail 就像它的名字⼀样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。
语法:head [参数]… [文件]…
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
常用选项:
-n:显示的行数


tail 指令
tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
语法:tail 必要参数 [文件]
功能:用于显示指定文件末尾的内容(默认打印末尾10行),不指定文件时,作为输入信息进行处理。常用来查看日志文件。
常用选项:
-f:循环读取-n:显示行数

如果想要打印中间行的信息,比如打印180到200行的信息,应该怎么办?这个时候就可以借助管道来解决了。

head -200 log.txt查到的200行信息借助管道给tail -20,然后就可以查到180到200行的信息。
date 指令
指定格式显示时间:date +%Y:%m:%d
用法:date [OPTION]… [+FORMAT]
- 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %H:小时(00…23)
- %M:分钟(00…59)
- %S:秒(00…59)
- %X:相当于%H:%M:%S
- %d:日(01…31)
- %m:月份(01…12)
- %Y:完整年份(0000…9999)
- %F:相当于%Y-%m-%d
- 在设定时间方面
- date -s :设置当前时间,只有root权限才能设置,其他只能查看。
- date -s 20080523 :设置成20080523,这样会把具体时间设置成空00:00:00
- date -s 01:01:01 :设置具体时间,不会对日期做更改
- 时间戳
- 时间 → \rightarrow →时间戳:date +%s
- 时间戳 → \rightarrow →时间:date -d@时间戳(1508749502)
- Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

cal 指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
格式:cal 参数 [年份]
功能:用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。
常用选项:
-3:显示系统前一个月,当前月,下一个月的月历-j:显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)-y:显示当前年份的日历
cal -3

cal -y

cal -j

cal 年份

find 指令
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法:find pathname -options
功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name:按照文件名查找文件
查找该目录下所有文件名为log.txt的文件。

which 指令
功能:搜索系统指定的命令。

whereis 指令
功能:用于找到程序的源、二进制文件或手册。

alias 指令
功能:设置命令的别名。

grep 指令
语法:grep [选项] 搜索字符串 文件
功能:在文件中搜索字符串,将找到的行打印出来。
常用选项:
-i:忽略大小写的不同,所以大小写视为相同-n:顺便输出行号-v:反向选择,即显示出没有’搜索字符串’内容的那一行



top 指令
功能:实时查看系统资源使用情况和进程状态。
常用选项:
-d:刷新的时间间隔-n:刷新的次数q:退出

zip/unzip 指令
语法:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式
常用选项:
-r:递归处理,将指定目录下的所有文件和子目录一并处理。-d:将压缩文件解压缩到其它目录下。
先创建一个目录dir,方便打包压缩演示

因为打包压缩的是目录,所以应该加个选项-r

unzip解压缩文件至lesson1目录下,使用-d选项

tar 指令
打包/解包,不打开它,直接看内容。
语法:tar [-cxtzjvf] 文件与目录 …
常用选项:
-c:建立一个压缩文件的参数指令(create的意思)-x:解开一个压缩文件的参数指令-t:查看tarfile里面的文件-z:是否同时具有 gzip 的属性?即是否需要用 gzip 压缩?-j:是否同时具有 bzip2 的属性?即是否需要用 bzip2 压缩?-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程-f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数-C:解压到指定目录
tar压缩

tar解压缩

如果压缩和解压缩结合管道就非常简单了。

rz/sz 指令
这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。安装完毕之后可以通过拖拽的方式将文件上传过去。
以下是安装这两个指令的命令,CentOS系统是yum,Ubuntu系统是apt。
sudo yum/apt install -y lrzsz
rz:将Windows文件传给Linux系统


sz:将Linux文件传给Windows系统


bc 指令
bc 指令可以说是Linux下的计算器,可以方便的进行浮点运算。

uname 指令
语法:uname [选项]
功能:uname用来获取电脑和操作系统的相关信息。
说明:uname可显示Linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
-a或‒all:详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称-s:显示内核名称-r:显示内核版本号
注意:若不带任何选项,uname默认只显示内核名称(等价于-s选项)

重要的几个热键
- [Tab] 按键:具有命令补全和档案补齐的功能
- [Ctrl]+c 按键:让当前的程序停掉
- [Ctrl]+d 按键:通常代表着:『键盘输⼊结束(End Of File, EOF 戒 End OfInput)』的意思;另外,它也可以用来取代exit
关机
语法:shutdown [选项]
常见选项:
-h:将系统的服务停掉后,立即关机-r:在将系统的服务停掉之后就重新启动-t sec:-t 后面加秒数,即过几秒后关机的意思
最后
本篇关于Linux基础指令的讲解到这里就结束了,其中还有很多细节值得我们去探究,需要我们不断地学习。如果本篇内容对你有帮助的话就给一波三连吧,对以上内容有异议或者需要补充的,欢迎大家来讨论!
6907

被折叠的 条评论
为什么被折叠?



