👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++和算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍
一、简要概括Liunx
Linux
最初由Linus Torvalds(林纳斯·托瓦兹)
在1991年发布。它是一个开源的操作系统,意味着其源代码对任何人都是可用的,并且可以被自由地使用、修改和分发。
那么开源有什么好处呢?开源不是更加危险吗?为什么大部分企业还使用Linux
操作系统呢?
【Linux
的特点和好处】
- 如果一款操作系统能被企业所使用,又由于开源,那么第一个好处一定是 【成本低】
- 由于开源的特性,Linux系统的安全漏洞往往能够得到快速修复,同时也有众多安全工具和技术可用于保护系统免受恶意攻击。【安全】
- 你也许会听到
Windows
服务器长时间运行而突然宕机,但你绝不会听到Linux
系统服务器因为长时间不关机会卡死,在Linux
上几乎是不会出现这种情况的。Linux
服务器可以无休止的运行下去不宕机,因为它继承了Unix
卓越的稳定性和高效性。【好用、快、稳定】
二、简述操作系统的概念
- 概念:操作系统是一款做软硬件管理的软件
以下是操作系统在计算机中所处的层次图:
最底层就是硬件(眼睛能看的到,摸得着),早期计算机是通过硬件电路来控制的,需要用户手动进行硬件控制。随着科技的发展,硬件变得越来越完善,所以就要有一款软件对硬件进行管理,我们称为操作系统。而硬件也随之变得复杂,功能也越来越多,因此在操作系统和硬件之间还有一个设备驱动。而有这些还是不够的,比如一个电脑,买回来仅仅是铁疙瘩,但是安装操作系统后,就可以开机(应用软件)。因此,在操作系统之上,我们还需要各种不同的应用软件,来满足用户的不同应用场景。
因此,操作系统的【核心工作】(为什么会有操作系统):对下管理好软硬件资源的手段,以达到对上(应用软件)提供良好的(稳定、快速、安全)操作/使用环境
那么如何理解我们在计算机上的所有操作?
注意:我们在计算机上的行为都会转化为硬件行为(比如我们在文件(软件)上写东西,最后都会被保存在磁盘(硬件)中),这种转换全部都要自定向下 贯穿 计算机软硬件结构。因此,几乎所有的软件行为,都和操作系统有直接或间接关系。
三、Linux操作特点
-
Linux
操作特点:更多的是命令行。(也有图形界面) -
Windows
操作特点:也有命令行(powershell
:win + x
),但更多是图形化界面,主要是面向用户。
四、基本指令
4.1 whoami
【功能】 查看当前操作用户
【说明】 在Linux
中,用户分为普通用户和超级用户,超级用户只有一个,就是root
;而普通用户可以通过指令创建很多个(具体指令可以查看往期博客:点击跳转)
4.2 ls
【语法】:
ls [命令选项] [目录或文件]
【功能】该命令会显示该目录下的所有文件
4.2.1 常用选项1:-l
【功能】 查看当前目录下文件的详细信息,包括大小和权限信息(统称为文件属性)
【说明】 此命令等价于ll
(小写的英文字母L
)
【补充】 文件 = 文件内容 + 文件属性(类型、大小、创建时间)
4.2.2 常用选项1:-a
【功能】 查看当前目录下的所有文件,包括隐藏文件(以
.
开头)
【补充:隐藏文件的概念】
Linux
任何一个目录下面有有两个隐藏文件分别是.
和..
4.2.3 补充:当前路径和上级路径
不知道大家有没有仔细看.
和..
的文件类型:目录。
我们能进入一个文件夹(目录),那就必定可以退出来
..
表示上级路径
.
表示当前路径
.
看似很鸡肋,其实它最大的用途是:执行可执行文件
4.3 clear
【功能】 清屏
【说明】 这是一个绝对高频使用的命令,Linux
的操作都是以命令行的方式完成的,指令给多后,屏幕就被占满了,很不舒服,于是clear
这个指令能快速帮我们清屏
4.4 pwd
【功能】 显示用户当前所在的目录
注意:超级用户root
和普通用户的结果会有所不同
- 超级用户
root
- 普通用户
4.5 cd
【语法】
cd [命令选项] [目录或路径]
【功能】 改变当前路径,进入到指定目录
【补充】Linux
的整个目录结构一定是一颗多叉树,所以我们对文件的增删查改,本质就是对这颗多叉树的增删查改。
- 如果是单单输入
cd
,结果默认返回家目录
4.5.1 常用选项1:cd …
这个已经讲过了,点击跳转查看
4.5.2 常用选项2:cd 当前目录下的目录名
【功能】 切换至当前目录下的指定目录中,前提是目录存在
4.5.3 常用选项3:~
【功能】 返回家目录,单独
cd
也是默认返回家目录
4.5.4 常用选项3:-
【功能】 可以在最近访问的某个路径和当前路径之间反复横跳
4.5.5 补充知识1:家目录
这个在上面讲过了。点击跳转
4.5.6 补充知识2:绝对路径和相对路径
- 绝对路径:由根目录(
/
)开始写起的文件名或目录名称。例如:/home/dmtsai/.bashrc
(常用于配置文件) - 相对路径:通过引用上一级目录
..
或当前目录.
来构建路径。相对路径更简短,依赖于当前环境的上下文。
例如,考虑以下文件结构:
假设当前工作目录是文件夹A,文件C的绝对路径是/文件夹A/文件夹B/文件C
,而相对路径可以是./文件夹B/文件C
4.5.7 补充知识3:路径分隔符
-
/
是Linux
的路径分隔符,而\
是Windows
的路径分隔符
4.6 tab键
【语法】
tab
【功能】可以补全命令和文件名,如果补全不了快速按两下tab
键,可以显示备选选项
4.7 tree
【语法】
tree [目录]
【功能】 将指定目录中的所有文件以树状结构展开。如果不加目录,默认展开当前所有目录
【说明】tree
是一个扩展应用,如果指令失效,说明还没有安装这个应用。需要在 root 账户下输入yum install -y tree
下载该应用
4.8 touch
【语法】
touch [选项] file
【功能】 新建文件
4.8 nano
【语法】
nano [文件]
【功能】相当于记事本
【说明】如果指令失效的话,说明没有安装此应用,需要在root
账户下输入yum intall -y nano
进行下载
退出的话可以根据以下提示,其中^
代表Ctrl
键
4.9 mkdir
【语法】
mkdir [选项] dirname
【功能】 在当前目录下创建名为dirname
的目录(文件夹)
4.9.1 常用选项1:-p
【功能】一次可以建立多个目录
4.10 rm
【语法】
rm [选项] [文件名或目录名]
【功能】rm
命令可以删除文件或目录
-
rm
后面不跟任何选项只能删除文件。并且如果是用root
账号操作,它会提示是否需要删除.
4.10.1 常见选项1:-r
【功能】 删除目录
4.10.2 常见选项2:-i
【功能】删除前逐一询问确认
以下是在普通用户下实验,因为超级用户默认会询问
4.10.3 常见选项3:-f
【功能】 强制删除,不提示
4.10.3 补充知识:通配符
通配符:
*
— 表示所有
4.11 man
【语法】
man [选项] 命令
【功能】 查看命令的详细信息
【说明】
Linux
的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助man
手册的选项有八个:1普通命令(重点 )、2系统调用(重点)、3库函数、4特殊文件、5文件格式、6游戏、7附件及一些变量、8系统管理用的命令
如果man
出现以下情况,在超级用户下输入此指令:yum install -y man-pages
4.12 echo(输入输出重定向)
echo 字符串
- 打印字符串到屏幕上
echo 字符串 > 文件
- 先打开文件,再清空文件内容,最后将字符串写入文件中
因此,如果想要清空文件的命令:>文件名
echo 字符串 >> 文件
- 将字符串追加到目标文件中(追加重定向)
以上现象称为输出重定向(>
、>>
等等):将命令的输入或输出从一个位置转向到另一个位置的操作
注意:如果重定向的目标文件不存在,会自动创建。
因此,除了touch
可以创建文件以外,重定向也可以
- 输入重定向
<
:本应该从键盘文件读取,现在从指定的文件读取
4.13 cp
【语法】
cp [选项] 源文件或目录 目标文件或目录
【功能】 复制文件或目录
- 拷贝文件。
cp src dest
或者还可以复制到别的目录下:
注意:同一个目录下,不能出现同名文件(常识)
- 拷贝目录。必须带
-r
选项
注意:无论是删除目录还是拷贝目录,都要有-r
选项
4.14 mv
【语法】
mv [选项] 源文件或目录 目标文件或目录
【功能】 1. 重命名 2. 剪切
【说明】mv
对目录操作是不需要-r
选项的
- 重命名
- 剪切
- 对目录操作
4.15 alias + which
首先看以下两个问题:
-
你是如何看待指令的? — 指令和可执行程序都是可以被执行的,因此指令就是可执行程序,和我们自己写的代码编译好的程序没有区别。
-
我们在执行指令之前,应该先做什么? — 先在系统中查找对应的指令,因此指令一定系统的在某一个特定位置(
/user/bin
)存在的 -
Linux
下一切皆文件
接下来解释alias
:
【语法】
alias 重命名目标指令='源指令'
【功能】为比较长的指令起别名
【说明】相当于重命名
在前面我们说过,ls -l
是等价于ll
的,我们可以使用 which
来查看ll
的系统所在路径:
从上图可以得出:ll
是ls -l
的别名
因此,alias
的功能就是为指令进行重命名
若要删除别名:alias 别名=’’
4.16 cat
【语法】
cat [选项] [文件]
【功能】 查看目标文件的内容
【说明】它不适合看大文件(多行),只适合小文本
4.16.1 常用选项1:-n
【功能】 查看内容时,输出对应行号(包括空白行)
4.16.2 常用选项2:-b
【功能】 查看内容时,输出对应行号(不包括空白行)
4.16.3 常用选项2:-s
【功能】 出现多行空格时,只显示一行(不输出行号)
4.17 more(了解)
【语法】
more [选项][文件]
【功能】 类似cat
,但它比cat
指令更适合看大文本
【说明】按enter
进入下一页,按q
退出,而它不能回翻看,因此比较鸡肋。而less
可以做到
4.17.1 常用选项1:-n
【功能】 显示到
n
行就停下来
4.17.2 常用选项1:/num
【功能】 搜索
4.18 less(查看文件内容 - 推荐)
【语法】
less 文件
【功能】查看长文档
【说明】可以依靠方向键控制查看(前翻 + 后翻)。注意:按q
键退出
4.18.1 常见功能1:/关键字
【功能】向下搜索关键字
4.18.2 常见功能1:?关键字
【功能】 向上搜索字符串
这里就不演示了,读者可以自己做实验
4.19 head
【语法】
tail [选项] [文件]
【功能】 不跟选项默认显示开头的前10`行内容。
4.19.1 常见选项:-n
【功能】 显示文件内容的前
n
行
4.20 tail
【语法】
tail [参数] [文件]
【功能】 不加选项默认显示指定文件末尾10
行内容
4.20.1 常见选项:-n
【功能】 可以查看文档的指定后
n
行
4.21 管道 |
【语法】
|
【功能】 将|
左侧的指令的输出作为右侧指令的输入
假设借助管道,读取到文档的30行~50行
4.22 wc
【语法】
wc [文件]
【功能】 查看文件信息,依次显示包括【行数、词数、文件名】
4.22.1 常用选项1:-l
【功能】 仅统计指定文件中的行数。
4.22.2 常用选项1:-w
【功能】 仅统计指定文件中的字符串的个数。
4.22.3 常用选项2:-m
【功能】 统计指定文件中的字符个数。
4.23 date
【语法】
date [选项]
【功能】 获取当前的时间
4.23.1 常见选项1:格式化输出时间
【语法】
date +%Y-%m-%d-%H-%M-%S
【打印顺序】 年月日时分秒
【说明】 中间的符号-
可以根据自己的喜欢来修改
4.23.2 补充知识:时间戳(重点)
【如何获取时间戳】
date +%s
【说明】 时间戳是指从1970年1月1日0时0分0秒
到现在所经过的时间,是计算机中的一个重要概念
将时间戳转化对应的时间:date -d @时间戳
也可以格式化
注意: 对于中国的时间来说,时间戳0
不表示1970年1月1日0时0分0秒
,因为我们在东八区,多八个小时
4.24 find -name
【语法】
find [路径] [选项] [文件]
【功能】 可以在指定的路径下进行查找文件
以下是在家目录中,查找test.c
文件
【区分】
find
可以在任意指定的路径下查找which
只能在指令所在的路径/usr/bin
搜索
4.25 whereis
【语法】
whereis [目标]
【说明】 在系统特定的路径下查找,既可以找到可执行程序,也可以找到手册、安装包、压缩包等之类的
4.26 grep
【语法】
grep [选项] [搜寻字符串] [文件]
【功能】 在文件中搜索字符串,将字符串所在的行打印出来(行文本过滤指令)
4.26.1 常用选项1:-v
【功能】 反向过滤,过滤搜索字符串的那一行
4.26.2 常见选项2:-n
【功能】 打印搜索字符串所在的行,并附加所在行号
4.26.3 常见选项3:-i
【功能】 忽略搜索字符串的大小写
4.27 zip + unzip
【
zip
语法】zip [选项] 压缩文件.zip 目标文件或目录
【zip
选项】-r
递归压缩,用于压缩目录
【zip
功能】 将目录或文件打包成zip
格式,不容易造成文件丢失
【
unzip
语法】zip 打包文件
【unzip
常用选项】-d
解压到某个目录(路径)
【unzip
功能】 默认解包到当前目录
【说明】大家的云服务器可能没有zip
和unzip
指令。解决方法:以root
方式登入并输入指令:yum install -y zip unzip
4.28 tar
【语法】
tar [选项] 文件或目录
【常见选项】
-czf
可以打包文件,后缀为tgz
-xzf
解压文件-tzf
在不解包的情况下,查看压缩包内的文件【功能】集解压缩为一体
【说明】默认都是解压到当前路径下,可以通过-C
到指定路径
- 查看压缩包里面的文件:
4.29 bc
【语法】
bc
【功能】 就是一个Linux环境下的计算器
【说明】 输入quit
退出
一般是配合echo
和管道|
使用
4.30 uname
【语法】
uname [选项]
【功能】uname
用来获取电脑和操作系统的相关信息,可显示Linux
主机所用的操作系统的版本、硬件的名称等基本信息。
4.30.1 常用选项1:-a
【功能】详细输出所有信息。依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
4.30.2 常用选项1:-r(面试)
【功能】 显示内核版本号
4.31 yum(软件安装)
4.31.1 什么是yum
yum
其实就是我们Linux
中的一个可执行程序,相当于手机里的应用商店,我们可以使用yum
去进行各种软件的安装。
一般而言,yum
安装软件都是需要联网的,而我们使用的云服务器登录前就需要联网。因此可以不用在意。
那如何在Linux
中查看自己有没有联网?
有一个ping
指令,后面跟上一个网站即可
4.31.2 rz和sz指令
有时候Linux
和Windows
之间需要交互,比如说上传文件等。
- 如果想要将文件从
Windows
到Linux
,就需要使用rz
指令,或者可以将文件拖拽到Linux
窗口
- 如果想要将文件从
Linux
到Wiindows
,可以使用sz [文件/目录]
指令。
回车后会弹出以上类似的窗口。这里就不演示了
4.31.3 yum实例:rzsz软件的安装与卸载
如果输入rz
指令没有反映,说明你的服务器就没有此软件,则要进行安装。
通过yum list
命令可以罗列出当前一共有哪些软件包。由于包的数目可能非常之多(大家可以试一试)
这里我们需要使用grep
命令只过滤出我们关注的包。(注意:安装软件一定要在root
用户下安装)
通过yum
, 我们可以通过很简单的一条命令完对lrzsz
软件的安装
当然也可以卸载软件,指令如下:
yum remove -y [软件名]
这里就不演示了
4.31.4 一些好玩的Linux软件
我们知道yum
一定是有自己的下载链接的。那么它的下载链接在哪呢?
其实是在下面的这个路径中的
ls /etc/yum.repos.d
其下载链接就在文件CentOS-Base.repo
。它也叫 yum
源,其实也叫做官方 yum
源,里面的东西都是经过官方认定的(就像你手机应用商店里安全的软件),非常可靠。
当然我们有时候也会自己下载的东西在官方里面没有。因此这里就需要扩展yum
源,也就是epel.repo
文件。
在此之前,你需要安装扩展源
yum install -y epel-release
然后就可以下载一些比较好玩的软件了
- 小火车。安装指令:
yum install -y sl
,后输入sl
- 牛说。安装指令:
yum install -y cowsay
后,输入cowsay “你要说的内容”
4.32 重要的几个热键
-
Ctrl + c
:终止因为程序或者指令异常,而导致无法进行指令输入。 -
Ctrl + d
:退出 -
history
查看历史命令
五、简单理解shell命令以及运行原理
首先大家必须要有以下概念
Linux
严格意义上说的是一个操作系统,我们称之为“核心kernel
”。
我们所有的指令,最终都要在操作系统内部运行,但是操作系统使用难度比较高。我们用户不能直接和操作系统打交道。因此,用户和操作系统之间有一个媒介叫命令行解释器(bash
命令行)。
它的工作原理是这样的:用户将指令给命令行解释器,命令行解释器主要的功能是将其命令解析给操作系统,然后操作系统同样会把结果反馈给命令行解释器,命令行解释器再将结果翻译给使用者。这命令行解释器有点类似于生活中的媒婆hh文章来源:https://www.toymoban.com/news/detail-622741.html
因此,命令行解释器存在的意义有两点:文章来源地址https://www.toymoban.com/news/detail-622741.html
- 进行命令行解释
- 变相保护操作系统,对于用户的非法请求直接拦截。
到了这里,关于【Linux】常用的基本指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!