文章目录
个人桌面系统:Windows、macOS
服务器操作系统:Linux
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cb628f090ff50de74b0d39181f3418aa.png)
计算机:软件+硬件
软件:是用户和 计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。
操作系统:就是软件一类,作为用户和计算机硬件之间的桥梁,协助用户调度硬件工作。
常见的操作系统:
PC端:windows、Linux、MacOS
移动端:Android 、IOS、鸿蒙系统
Linux创始人:林纳斯 托瓦兹
Linux内核
Linux系统:由Linux 系统内核+系统级应用程序两部分组成。
内核提供系统最核心的功能,如:调度CPU、调度内存、调度文件系统、调度网络通讯、调度IO等。
系统级应用程序:文件管理器、任务管理器、图片查看、音乐播放等。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a04968a080c385ecb56f430df71c4019.png)
内核是Linux操作系统最核心的所在,Linux发行版就是获得并修改内核,并自行集成系统级程序。例如ubuntu、CentOS等都是Linux发行版。
对操作系统的使用有两种类型:1、图形化页面使用操作系统。2、以命令的形式使用操作系统。
为什么Linux操作系统要选择命令行的形式呢?
- Linux操作系统的图形化不好用且不稳定;
- 使用命令行的形式操作更加高效其稳定资源占用低;
Linux目录
Linux的目录结构是一个树型结构,Windows系统可以有多个盘符,如C盘、D盘。Linux没有盘符概念,只有一个根目录/。
windows系统路径之间的层级关系使用\来表示。而Linux系统中,路径之间的层级关系用/表示,在Linux路径中开头的/表示根目录,出现在后面的/表示层次关系。
命令
一个命令就是一个Linux程序。
Linux命令的通用格式:
语法:command [-options] [parameter]
command:命令本身
-options:可选,非必填,是命令的一些选项,可以通过选项控制命令的行为细节。
parameter:可选,非必填,是命令的参数,多数用于命令的指向目标等。
ls命令
作用是列出目录下的内容:
语法:ls [-a -l -h] [Linux路径]
当不使用选项和参数时,直接使用ls命令本体表示以平铺的形式列出当前工作目录下的内容。
命令行会默认加载当前登录用户的home目录作为工作目录,home目录是每个Linux用户在Linux系统的个人账户目录,路径在/home/用户名
1、-a选项,表示all的意思,即列出全部文件(包含隐藏的文件或文件夹 ),Linux系统中以.开头的文件是隐藏文件,可通过-a选项查看。
2、-l选项,表示以列表的(竖向排列)的形式展示内容,并展示更多的信息,如下:
3、-a和-l可以结合使用,写法:ls -l -a、ls -la、 ls -al,表示将以列表的形式将全部内容展示出来。
4、-h选项,表示以易于阅读的形式列出文件的大小,如K、M、G。且必须与-l选项一起使用。
cd/pwd命令
cd(change Directory)作用是更改当前所在工作目录
pwd(Print work Directory)作用是查看当前的工作目录
语法:cd [Linux路径]
cd 命令无须选项,只有参数,表示切换到哪个目录下,如果不写参数,表示回到用户的home目录。
pwd命令无选项无参数
相对路径:以当前目录为起点描述路径,路径描述无须以/开头。
绝对路径:以根目录为起点描述路径,路径描述以/开头。
特殊路径符:
1、.表示当前目录,比如cd ./Desktop和cd Desktop效果一致。
2、… 表示上一级目录,比如cd … 即可切换到上一级目录,cd …/…表示切换到回退两级到上二级目录。
3、~表示home目录,比如cd ~即可切换到home目录或cd ~/Desktop即可切换到home内的Desktop目录。
mkdir命令
mkdir(make Directory)命令的作用是创建新的目录和文件夹
语法: mkdir [-p] [Linux路径]
参数必填,表示要创建的文件夹的路径。
-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录,如下,一次性创建多个层级的目录不添加-p选项会报错。
文件操作命令(touch、cat、more)
- touch命令的作用是创建文件
- cat命令的作用是查看文件的内容
- more命令的作用是查看文件的内容
语法:touch/cat/more [Linux路径]
touch命令无须选项,参数必须,表示要创建文件的路径
cat/more命令无须选项,参数必须,表示要查看的文件的路径
more与cat不同的是cat将内容全部展示出来,而more支持翻页(空格翻页,q退出查看)
文件操作命令(cp、mv、rm)
- cp(copy)命令复制文件或文件夹
- mv(move)命令移动文件或文件夹
- rm(remove)删除文件或文件夹
语法: cp [-r] 参数1 参数2
-r 选项可选,复制文件夹使用,表示递归;
参数1表示被复制的文件或文件夹;
参数2表示要复制去的地方;
语法: mv 参数1 参数2
没有选项
参数1表示被移动的的文件或文件夹;
参数2表示要移动去的地方(如果目标不存在,则进行改名,确保目标存在)
语法:rm [-r -f] 参数1 参数2…参数N
-r选项表示删除文件夹;
-f (force)表示强制删除(不会弹出提示确认信息,用于root用户);
参数N表示要删除的文件或文件夹路径,按照空格隔开;
rm支持通配符*,用来做模糊匹配,例如:
- 符号 * 表示通配符,即匹配任意内容(包含空):
test* 表示匹配任何以test开头的内容;
* test表示匹配任何以test结尾的内容;
*test*表示匹配任何包含test的内容。- rm -rf / 等同于c盘格式化,谨慎!
查找命令(which,find)
which命令的作用是查看所使用一系列的命令的程序文件放在哪里
find命令的作用是按照文件名查找文件
语法:which 要查找的命令
无须选项;
find有两种查找方式:
1、find 起始路径 -name “被查找的文件名”(按照文件名查找)
2、find 起始路径 -size +|-n [kMG](按照文件大小查找)
+、-表示大于和小于;
n表示大小数字;
kMG表示大小单位,k(小写)表示kb,M表示MB、G表示GB;
eg:从根目录开始查找小于10kb大小的文件:find / -size -10k;
eg:从根目录开始查找大于10kb大小的文件:find / -size +10k;
grep 、wc和管道符|
grep命令的作用是从文件中通过关键字过滤文件行;
wc命令的作用是统计文件的行数、单词数量等;
管道符:| 含义是将管道符左边命令的结果,作为右边命令的输入
语法: grep [-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号;
参数:关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“ ”将关键字包围起来。
参数:文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
语法: wc [-c -m -l -w] 文件路径
选项可选,无选项默认第一个为行数,第二个数为单词数量,第三个数为字节数
选项-c ,统计bytes数量
选项-m,统计字符数量
选项-l,统计行数
选项-w,统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
echo、tail和重定向符
echo命令的作用是在命令行内输出指定的内容;
tail命令的作用是查看文件尾部的内容,跟踪文件的最新更改;
echo 输出的内容
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用“ ”包围;
输出内容带有空格或/等特殊符号,建议使用双引号包围,否则容易识别为参数2;
反引号‘’的作用,将‘’包围的内容作为命令执行,而不是普通的字符;
重定向符:>和>>
>表示将左侧命令的结果覆盖写入到符号右侧的指定文件中;
>>表示将左侧命令的结果追加写入到符号右侧指定的文件中;
语法:tail [-f -num] Linux路径
选项-f、表示持续跟踪文件的最新更改;
选项-num、表示查看尾部多少行,不填默认10行;
参数、Linux路径,表示被跟踪的文件路径;
vi/vim编辑器
一种在命令行模式下的文本编辑器,用来编辑文件,vim是vi的升级版,一般使用vim,vim包含vi全部功能。
vi/vim 文件路径
如果文件路径表示文件已经存在,那么此命令会用于编辑已有文件;
如果文件路径表示文件不存在,那么此命令会用于编辑新文件。
运行模式:命令模式:默认的模式,可以通过键盘快捷键控制文件内容;
输入模式:通过命令模式进入,可以输入内容进行编辑,按esc退回命令模式;
底线命令模式:通过命令模式进入,可以对文件进行保存、关闭等操作。
命令模式常见快捷键:
底线命令模式:
Linux用户和权限
root用户(超级管理员用户):Linux系统中拥有最大权限的账户名
su和exit命令
su(Switch User)命令的用于切换用户的系统命令
sudo命令为普通的命令授权,临时以root身份执行
su [-] [用户名]
-符号是可选的,表示是否切换用户后加载环境变量,建议带上
参数:用户名,表示要切换的用户,用户名也可以省略,则表示切换到root;
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d;sudo 其他命令
在其他命令之前,带上sudo即可为这一条命令临时赋予root授权;
不是所有的用户都有使用sudo的权利,需要为普通用户配置sudo认证。为普通用户配置sudo认证
切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers;
在文件的最后添加:用户名 ALL=(ALL) NOPASSWD:ALL;其中最后的NOPASSWORD:ALL表示使用sudo命令,无需输入密码;
最后通过wq保存;
用户、用户组管理
Linux系统中可以配置多个用户、配置多个用户组、用户可以加入多个用户组中;
关于权限的管控级别有2个级别,分别是:(1)针对用户的权限控制;(2)针对用户组的权限控制。
用户组管理
以下命令需要在root用户执行;
创建用户组:groupadd 用户组名
删除用户组:groupdel 用户组名用户管理
以下命令需要在root用户执行;
创建用户:useradd [-g -d] 用户名选项-g:指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g;
选项-d:指定用户的HOME路径,不指定则默认在:/home/用户名;删除用户:userdel [-r] 用户名
选项-r:删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留。
查看用户所属组:id [用户名]
参数:用户名,被查看的用户,如果不提高则查看自身
修改用户所属组:usermod -aG 用户名 用户组
将指定的用户加入指定的用户组
passwd命令
passwd命令用来修改用户密码,可以直接输入“passwd”进行修改密码。
getent命令
语法:getent passwd
可以查看当前系统中有哪些用户
查看的每一行用户包含七份信息:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)语法:getent group
可以查看当前系统中有哪些用户组
包含3份信息:组名称:组认证(显示为x):组ID
查看权限控制
一列表的形式查看文件信息如下:
第一列表示文件或文件夹的权限控制信息:
其中权限r、w、x分别为读、写、执行
第三列表示文件或文件夹所属的用户
第四列表示文件或文件夹所属的用户组
修改权限控制-chmod
chmod命令可以修改文件、文件夹的权限信息,只有文件、文件夹的所属用户或者root用户可以修改。
语法: chmod [-R] 权限 文件或文件夹
选项-R:对文件夹内的全部内容应用同样的操作eg:chmod u=rwx,g=rx,o=x hello.txt,将文件的权限修改为rwxxr-x–x
其中:u表示user所属用户权限,g表示group组权限,o表示other其他用户权限。eg: eg:chmod -R u=rwx,g=rx,o=x hello.txt,将文件夹test以及文件夹内的全部内容权限设置为rwxxr-x–x。
除此之外,还有快捷写法:chmod 751 hello.txt,将hello.txt权限修改为751
修改权限控制-chown
chown命令的作用是修改文件、文件夹的所属用户和用户组。
语法: chown [-R] [用户] [:] [用户组] 文件或文件夹
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行;
选项-R:对文件夹内全部内容应用相同的规则;
选项用户:修改为所属用户;
选项用户组:修改为所属用户组;
:表示用于分隔用户和用户组;
Linux实用操作
快捷键:
ctrl+c:强制停止某些正在运行的程序;
ctrl+d:退出账户的登录,或者退出某些特定的程序的专属页面,不能用于退出vi/vim;
历史命令:
history命令:可以查看历史输入过的命令,可以通过语法:history | grep 关键字,过滤出某些特定的命令。
!命令前缀:自动执行上一次匹配前缀的命令 ;
ctrl+r:输入内容去匹配历史命令;
ctrl+a:跳到命令的开头;
ctrl+e:跳到命令的结尾;
ctrl+键盘左键:向左跳一个单词;
ctrl+键盘右键:向右跳一个单词;
ctrl+l:清空终端内容,或者clear得到同样的结果;
软件安装
Linux命令行内的“应用商店”;
CentOs系统使用yum管理器,软件安装包格式为rpm、yum;
Ubuntu使用apt管理器:deb、apt;
yum命令
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题;
语法:yum [-y] [install | remove | search] 软件名称
选项-y:自动确认,无需手动确认安装或卸载过程;
install:安装;
remove:卸载;
search:搜索
yum命令需要root权限;
apt命令
语法:aot [-y] [install | remove | search] 软件名称
用法与yum一致,同样需要root权限
systemctl命令
很多软件(内置或第三方)均支持使用sysemctl命令控制:启动、停止、开机自启,能被systemctl管理的软件,一般都称为:服务。
语法:systemctl [start | stop | status | enable | disable] 服务名
软链接
在系统中创建软链接,可以将文件、文件夹链接到其他位置,链接只是一个指向,并不是物理移动。
语法: ln -s 参数1 参数2
选项-s:创建软链接;
参数1:被链接的文件或文件夹;
参数2:要链接去的目的地;
日期和时间
date命令
通过date命令可以在命令行中查看系统时间
data [-d] [+格式化字符串]
选项-d:按照给定字符串显示日期,一般用于日期计算;
语法:date -d “+1 day” +%Y-%M-%d 表示后一天的日期;
date -d “-1 day” +%Y-%M-%d 表示前一天的日期;
date -d “+1 month” +%Y-%M-%d 表示下个月的日期;
date -d “+1 year” +%Y-%M-%d 表示下一年的日期;
格式化字符串:通过特定的字符串标记,来控制显示的日期格式;
修改时区
使用root权限,执行如下命令,CST表示中国东八区时间,:
语法: rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
手动校准时间(需要root权限):
语法:ntpdate -u ntp.aliyun.com
IP地址、主机名
IP地址:
每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯
IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,可以通过ifconfig,查看本机的ip地址(192.168.17.213)
特殊IP地址
127 0.0.1:表示用于代指本机,用于与自己通信;
0.0.0.0:
- 用于代指本机;
- 可以在端口绑定中用来确认绑定关系;
- 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0表示允许任意IP访问。
主机名
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名,可以给系统设置主机名,用hostname命令查看;
在Linux中修改主机名语法:hostnamectl set-hostname 主机名
需要在root下修改
域名解析
通过主机名找到对应计算的IP地址
先看本机记录,再联网去DNS服务器
网络传输
ping命令
可以通过ping命令检查指定的网络服务器是否是可联通状态
语法: ping [-c num] ip或主机名
选项-c:检查的次数,不使用-c选项,将无限次持续检查
参数:被检查的服务器ip或主机名地址
wget命令
wget命令是非交互式的文件下载,可以在命令行内下载网络文件
语法:wget [-b] url
选项-b:可选,后台下载,会将日志写入当前工作目录的wget-log文件,可以通过tail查看
参数url:下载链接
curl命令
curl命令可以发送http网络请求,可用于:下载文件、获取信息等;
语法:curl [-O] url
选项-O:用于下载文件,当url是下载链接时,可以使用此选项保存文件;
参数:url,要发起请求的网络地址;
端口
端口是设备与外界通讯交流的出入口。可以分为物理端口和虚拟端口两类
- 物理端口:又称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等;
- 虚拟端口:是指计算机内部的端口,是不可见的,用来操作系统和外部进行交互使用的,计算机程序之间的通讯依靠IP+端口号进行锁定。
查看端口占用
查看指定IP对外暴露的端口
语法: nmap 被查看的IP地址
查看指定端口的占用情况
netstat -anp | grep 端口号
如图,当前系统6000端口号无人使用;22端口被进程1135占用,0.0.0.0:22表示端口绑定在0.0.0.0(代指本机)这个IP地址上。
进程管理
PS命令查看进程
ps命令可以查看进程信息
语法:ps [-e -f]
选项-e:显示出全部的进程
选项-f:以完全格式化的形式展示进程的全部信息
可以配合管道符和grep过滤想要的进程信息
kill命令关闭进程
语法: kill [-9] 进程ID
选项-9:表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
主机状态
查看系统资源占用
top命令
通过top命令查看CPU、内存使用情况,类似windows的任务管理器
默认每5秒刷新一次,直接输入top即可,按q或者ctrl+c退出
磁盘信息监控
df命令查看文件系统的磁盘的使用情况
语法: df [-h]
选项-h:以更加人性化的单位显示
iostat命令查看CPU、磁盘的I/O等相关信息
语法:iostat [-x] [num1] [num2]
选项-x:显示更多信息
num1:数字,刷新间隔;
num2:数字,刷新几次
网络状态监控
sar命令
sar命令查看网络的相关统计
语法:sar -n DEV num1 num2
选项-n:查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结果)
num2:查看次数(不填无限次数)
环境变量
环境变量是操作系统在运行时,记录的一些关键信息,用以辅助系统运行,是一种KeyValue型的结构(名称=值);
env命令
env命令可以查看当前系统中记录的环境变量
环境变量:PATH
eg:无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,就是借助于环境变量中:PATH这个项目的值来做到的,PATH记录的系统执行任何命令的搜索路径,如下图(路径之间用:隔开)。当执行任何命令都会按照PATH中顺序,从这些路径中搜索要执行的程序的本体。
我们可以自己创建一个命令文件,通过将该文件的路径添加到PATH中去,则可随意切换工作目录执行。
$符号
在Linux系统中,$符号被用于取“变量”的值。如果我们想要取得变量的值可以通过如下语法:** $环境变量名**来取得。
eg:echo $PATH
自行设置环境变量
临时生效:export 名称=值
永久生效:
- 针对当前用户生效:配置在当前用户的~/.bashrc文件中;
- 针对所有用户生效:配置在系统的/etc/profile文件中;
- 并通过语法:source 配置文件,进行立刻生效,或者重新登录;
上传、下载
rz命令进行上传,sz命令进行下载
语法:
上传文件:rz
下载文件:sz 要下载的文件
压缩、解压
tar命令
Linux和mac系统常用有两种压缩格式,后缀名分别为:
- .tar,称为tarball,归档文件,即简单的将文件组装到一个.tar的文件中,并没有太多的文件体积的减少,仅仅是简单的封装;
- .gz,也是常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积。
tar命令均可以对上述两种命令进行压缩和解压。
语法:tar [-c -v -x -f -z -C] 参数1 参数2 … 参数N
- 选项-c:创建压缩文件,用于压缩模式;
- 选项-v:显示压缩、解压过程,用于查看进度;
- 选项-x,解压模式;
- 选项-f,必须在所有选项中位置处于最后一个,因为f选项后紧跟的参数是要创建的文件,或要解压的文件;
- 选项-z,gzip模式,不使用-z就是普通的tarball格式,一般处于选项位的第一个;
- 选项-C,选择解压到的目的地,用于解压模式,单独使用,和其他所需参数分开;
eg:压缩文件:tar -cvf test.tar 1.txt 2.txt 3.txt(将1.txt 2.txt 3.txt压缩到test.tar文件内)
eg:解压文件:tar -xvf test.tar -C /home/feifanyulu (解压test.tar,将文件解压至指定 /home/feifanyulu 目录中)
zip命令
语法:zip [-r] 参数1 参数2 …参数N
选项-r:被压缩的包含文件夹的时候,使用-r选项。
eg:zip test.zip a.txt b.txt c.txt (将a.txt b.txt c.txt压缩到test.zip文件内)
unzip命令解压文件
语法:unzip [-d] 参数
选项-d:指定要解压去的位置,同tar的-C选项;
参数:被解压的压缩包文件
eg:unzip test.zip -d /home/feifanyulu (将指定的压缩包解压到指定目录中)