admin 管理员组文章数量: 887019
Linux
一、Linux背景知识
1、什么是linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2、为什么要学linux
- 在服务器端,在开发领域linux倒是越来越受欢迎,很多程序员都觉得不懂点linux都觉得不好意思,linux在开源社区的地位依然岿然不动。
- 作为一个后端程序员,是必须要掌握Linux的,这已经成为了我们找工作的基本门槛了
3、linux的各个发行版本
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
4、linux的应用领域之广袤
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
-
巴西联邦政府由于支持 Linux 而世界闻名。
-
有新闻报道俄罗斯军队自己制造的 Linux 发布版的,做为 G.H.ost 项目已经取得成果。
-
印度的 Kerala 联邦计划在向全联邦的高中推广使用 Linux。
-
中华人民共和国为取得技术独立,在龙芯处理器中排他性地使用 Linux。
-
在西班牙的一些地区开发了自己的 Linux 发布版,并且在政府与教育领域广泛使用,如 Extremadura 地区的 gnuLinEx 和 Andalusia 地区的 Guadalinex。
-
葡萄牙同样使用自己的 Linux 发布版 Caixa Mágica,用于 Magalh?es 笔记本电脑和 e-escola 政府软件。
-
法国和德国同样开始逐步采用 Linux。
5、Linux是自由的
linux是自由的,包括它的名字,无论怎么说都是对的
6、一切皆文件
Linux的一切都是由文件组成的,任何操作实际上都是在对文件进行操作
二、运行环境和linux基础知识
1、运行环境
本文所使用的Linux运行环境如下:
- 使用shell工具(如:xshell、finalshell)连接阿里云服务器,远程操作系统
- 使用CentOS7.8版本的linux系统
2、基础知识
- root账户是最高权限账户
- 进程在Windows下叫做服务service,而在linux中则叫做守护进程daemon(不要与多线程中的守护线程概念混淆)
- 用户登录有三种方式:命令行登录(本地,无图形界面),ssh登录(远程,使用ssh工具,如:xshell、finalshell),图形界面登录(本地,有图形界面)
三、Linux的文件结构和基本命令
linux系统中:当你使用命令行输入命令后,系统没有任何回复则代表命令行使成功,若出现报错则代表失败
1、文件结构
Linux跟Windows一样也是树形目录:(Linux的一切资源都挂载在 / 根节点下)
根节点的下一级目录都分别有着自己的作用:
/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
/tmp:这个目录是用来存放一些临时文件的。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
2、基本命令
辅助命令:man + 命令名称,可以查看该命令的使用文档
1.关机命令
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
PS1:无论什么时候,在使用关机或重启命令的时候,都需要先运行sync命令,将数据从内存同步到硬盘中,在进行关机或者重启。
PS2:如果是使用云服务器的话,最好不要使用关机或重启命令,因为我们的服务是需要一直运行的,一般都不需要关机。
2.目录管理命令
hostname命令:可以更改主机名称
如:hostname xiafan 则现在的主机名称为xiafan
ls命令:直接使用可查看当前文件夹的文件结构(也就是当前文件夹的目录)
参数:
- -a:可查看当前文件夹的所有文件,包括隐藏文件
- -l:可查看当前文件夹的所有文件,但不包括隐藏文件,查询出的信息除了文件名外还有文件的属性(如文件权限等信息)
- -al:在可以查询所有文件包括隐藏文件的基础上,还可以查询出文件的属性(如文件权限等信息)
pwd命令:返回当前用户所在的目录
cd命令:切换目录
知识补充:关于绝对路径和相对路径
绝对路径:与目前的所在的目录无关,无论何时路径都不会发生改变,如:C:\TENCENT
相对路径:与目前所在的目录有关,是基于目前所在的目录产生的路径,如:…/user
常见的相对路径: ./ 当前目录、…/ 上一级目录、/根目录
参数:
- ~:cd ~,可以回到当前的用户目录,使用后搭配pwd命令可以得到当前用户所在的目录
mkdir命令:创建文件夹
参数:
- -p:由于mkdir命令本身不能递归创建(也就是不能直接 mkdir dir1/dir2/dir3,无法直接创建这种多层目录),所以需要使用-p参数。使用后就可以递归创建文件夹,如:mkdir -p dir1/dir2/dir3
rmdir命令:删除空文件夹
参数:
- -p:若文件夹下存在子文件夹,我们又想删除它,则可以使用-p参数递归删除多个文件夹,如存在dir1/dir2/dir3文件树,而我们想删除dir1,则可以使用mrdir -p dir1/dir2/dir3
cp命令:复制文件
命令语法:cp 要复制的文件 目的路径
若重复复制同一个文件名的文件到同一个目的路径,系统会提示你是否要覆盖文件。输入y代表yes,输入n代表no。
rm命令:删除文件或目录
参数:
- -f:忽略不存在的文件,不会出现警告,即强制删除
- -r:自动递归的删除目录
- -i:互动参数,查询是否删除
关键命令:奥义之删库跑路
rm -rf / 和rm -rf /*
/代表根目录 /*代表根目录下的所有文件
如果使用了这种命令,则会直接导致系统瘫痪,慎用!除非想念牢饭的味道了
mv命令:1.移动文件或目录 2.重命名文件
-
移动文件或目录
命令语法: mv 要移动的文件或目录 目的路径
-
重命名文件
命令语法: mv 要重命名的文件或目录名 想要更改的文件或目录名
参数:
- -f:强制移动
- -u:只替换更新过的文件
PS:关于文件属性的补充知识
在我们使用ls -ll命令后会出现如下的文件信息(不包含隐藏文件的信息),下面,我们来解读这些信息代表什么(以第一行为例)
- 文件类型和文件操作权限
这一列信息,对应了以下的表
第一个字符是文件类型:
-
d:代表是一个目录
-
-:代表是一个文件
-
l:代表是一个链接文档(可以理解成Windows中的快捷方式)
-
b:代表装置文件里面的可供储存的接口设备(可随机存取装置)
-
c:代表装置文件里面的串行端口设备,例如键盘、鼠标( 一次性读取装置)
其中d、-、l比较常见
之后每三个字符代表一个权限组:
从左到右为:属主权限、属组权限、其他用户权限
- r代表可读
- w代表可写
- x代表可执行
- 如果为 - 则代表没有响应权限
- 子目录个数
这个属性非常好理解,多少个子目录就是多少个
-
标识文件创建者和其所在的组
第一个为文件创建者,第二个为文件创建者所在的用户组
-
文件大小
表示文件占用的空间大小(不包括子文件),单位为B(即字节)
-
最后访问时间
记录最后一次访问该文件的时间
-
文件名
文件名为bin,后面的->usr/bin表示它是一个链接文档(可以理解成Windows中的快捷方式),也就是打开它会自动指向->后面的目录
3.文件属性管理命令
chgrp命令:更改文件的属组(不加参数时只改变指定文件,并不改变其下的文件)
命令语法:chgrp 新的属组名 文件名
参数:
- -R:递归更改文件属组,即该文件下的所有文件的属组都会被改变
chown命令:更改文件属主,也可以同时更改文件属组(不加参数时只改变指定文件,并不改变其下的文件)
命令语法:
- chown 新的属主名 文件名
- chown 新的属主名:新的属组名 文件名
参数:
- -R:递归更改文件属组,即该文件下的所有文件的属组都会被改变
chmod命令==(重要)==:更改文件的九个属性
命令语法:chmod xyz
参数:
- -R:递归更改文件属组,即该文件下的所有文件的属组都会被改变
这里的xyz,每一个字母都代表了一个权限组的权限(顺序和文件属性中的权限组一样,从左往右为:属主权限、属组权限、其他用户权限)
这里的输入的xyz应该是三个数字,数字的说明如下:
可读r的权重为4,可写w的权重为2,可执行x的权重为1
假设本来是0,表示不可读不可写不可执行,如果要设置为可读,则要设置为4,如果要设置为可读可写,则要设置为6,如果要可读可写可执行,则要设置为7
例如:
命令 chmod 777 代表将该文件设置为所有用户均可读可写可执行的状态,以此类推
4.文件内容查看命令
cat命令(常用):由第一行开始从上往下显示文件内容,适合用来读配置文件或者文章
tac命令:顾名思义,是cat反过来,也就是由最后一行开始从下往上显示文件内容
nl命令(常用):和cat命令相同,但是会显示行号,适合查看代码
more命令:显示的内容只会填满当前页面,如果要阅读剩下的内容,按下空格代表阅读下一页,按下回车代表阅读下一行
less命令:与more命令类似,但是它不止能有more的功能,还能用↑键和↓键进行上下翻动
PS:more和less在查询的过程和查询完毕后并不会退出到终端控制台
与more和less搭配使用的命令:
q命令:有些查看命令在查看完毕后不会跳出到控制台,需要使用q命令跳出
/命令:/+所要查找的字符串,可以在当前的文件查看位置向下查询想要的字符串,对其标亮
?命令:?+所要查找的字符串,可以在当前的文件查看位置向上查询想要的字符串,对其标亮
head命令:从上往下查看几行
参数:
- -n:控制查看多少行
tail命令:从下往上查看几行
参数:
- -n:控制查看多少行
head和tail命令的语法:head/tail -n 查看的行数 查看的文件
5.网络配置相关命令
PS:/etc/sysconfig/network-scripts 是网络配置目录
ping命令:查看与相关IP网络是否连通,和windows的ping一样
ifconfig命令:相当于windows的ipconfig,查看当前系统的网络情况
6.硬链接和软链接相关命令
关于硬链接和软链接的释义:
硬链接:源文件和链接文件的内容相同。如果删除了源文件,则链接文件并不会失效,还会保存着原来的信息。源文件更新了,链接文件会同步更新。相当于一个同步更新的复制文件,在重要的文件上可以使用硬链接,防止不小心删除源文件。其本质还是一个文件(d),而不是一个链接文件(l)
软链接:就是我们前面提到的链接文件(l),类似于Windows的快捷方式,源文件被删除则链接文件会直接失效。
touch命令:创建文件
命令语法:touch 创建的文件名
echo命令:输入字符串,可以输入到文件中
ln命令(重要):创建一个硬链接
参数:
- -s:如果加上-s参数创建,则创建的是一个软链接
命令语法:
- 硬链接:ln 源文件名 硬链接文件名
- 软链接:ln -s 源文件名 硬链接文件名
四、Vim编辑器
1、什么是Vim编辑器
演化历史:Vi->Vim
使用过Unix的用户应该都有接触过VI编辑器,这是Unix最初的编辑器,使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。当然它的复杂化让人厌恶,但是其大量特性支撑着Unix系统,而在Linux中vi得到改进,也就是接下来要讲的vim编辑器。
Vim是从vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说,vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具。
通过一些插件,可以使Vim跟我们平时使用的IDE拥有一样的功能来编辑代码
2、Vim编辑器的使用
Vi或Vim都有三种模式:分别为命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
Vim的工作模式如图所示:
3、Vim编辑器相关的命令
Vim 文件名:创建一个新文件或打开一个已存在的文件进行编辑
通过该命令进入文件后,我们处于命令模式中,各模式常用的命令和键盘按键作用如下:
命令模式:
-
i命令:切换到输入模式
-
x命令:删除当前光标所在的字符(防止输错命令后无法更改)
-
:命令:进入底线命令模式
输入模式中比较常用的键盘按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式:
- q命令:退出程序文件,返回到终端
- w命令:保存当前文件
常用用法::wq可以保存文件并返回终端
- set nu命令:可以显示行号,方便文本编写或代码编写
- set nonu命令:取消行号显示
其他按键的说明(无需记忆,需要用到的时候再查表就可以):
第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等。
第二部分:一般模式切换到编辑模式的可用的按钮说明。
第三部分:一般模式切换到指令行模式的可用的按钮说明。
五、账号管理
1、为什么有账号管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
2、账号管理需要的功能
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
●用户账号的添加、删除与修改。
●用户口令的管理。
●用户组的管理。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录ShelI等资源。
3、账号管理相关命令
这里可以通过参数来帮助指定用户的属组等属性,但不作演示,请有兴趣的朋友自行了解
1.useradd 添加用户
该命令有多个参数,这里只给最常用的-m和-g参数
-m:其作用是:创建用户,并自动创建该用户的主目录,对其他参数感兴趣的话可以自行搜索了解
-g:其作用是:设置用户的用户组,并自动创建该用户的主目录,对其他参数感兴趣的话可以自行搜索了解
如:useradd -m xiafan 则会创建一个xiafan用户,并在/home目录下自动创建一个/xiafan的用户主目录
2.userdel删除用户
该命令有多个参数,这里只给最常用的-r参数,其作用是:删除用户,并自动删除该用户的主目录,对其他参数感兴趣的话可以自行搜索了解
如:userdel -r xiafan 则会删除一个xiafan用户,并在/home目录下自动删除一个/xiafan的用户主目录
3.usermod修改用户
该命令有多个参数,这里只给最常用的-d参数,其作用是:修改用户的主目录
如:usermode -d /home/xf xiafan
4.切换用户
root用户和其他用户的区别:root用户在终端时,命令最前面会是#符号,二其他用户则是$符号
- 密码设置
passwd命令:有关密码的设置(密码要超过8位,而且不能过于简单)
命令语法为:passwd 用户名或直接用passwd
PS:在Linux中,密码是不会显示的,并不是系统不响应键盘输入
如果是root用户:
密码设置过程如下:
passwd xiafan //(设置密码命令)
new password://(输入用户密码)
re password: //(验证密码)
如果是普通用户:
密码设置过程如下:
passwd
(current)UNIX password: //(输入你当前用户的密码)
new password: //(输入用户新密码)
re password: //(验证密码)
- 冻结账号(root权限下)
命令1:passwd -l 用户名,冻结用户
如:passwd -l xiafan,会将xiafan用户锁定冻结,无法再登录
命令2:passwd -d 用户名,用户密码清空(用户没有密码是无法登录的,算是曲线救国式的冻结)
如:passwd -d xiafan,则xiafan用户无法再登录
5.账号管理的本质
我们在第一章就提过了,Linux中的一切都是以文件形式存在的,所以所谓的账号也是以文件的形式存在的,当我们创建账户的信息的时候,实际上是在/etc/passwd文件下“注册”了一个用户,而所谓的增删改,就是在对该文件中与该用户有关的信息进行更新,并以此实现了账号的管理
关于/etc/passwd文件:
如:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JYLcCPdf-1637138663490)(C:\Users\利姆鲁\AppData\Roaming\Typora\typora-user-images\image-20211116221418642.png)]
其含义为:用户名:口令(登录密码,我们不可见) :用户标识号:组标识号:注释性描述:主目录:登录Shell
各用户加密后的密码存储在/etc/shadow文件中
六、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理和我们上面所说的账号管理其实是相当类似的,都有增删改的操作
1、groupadd 添加用户组
命令语法:groupadd 用户组名
如:groupadd xiafan,会增加一个名为xiafan的用户组
如果不指定用户组的id的话,一般Linux系统会从1000开始自动递增赋值
该命令有多个参数,这里只给最常用的-g参数,其作用是:指定用户组id
如:groupadd -g 369 xiafan 则会创建一个xiafan用户组,且id为369
2、groupdel删除用户组
命令语法:groupdel 用户组名
如:groupdel xiafan 则会删除一个xiafan用户组
3、groupmod修改用户组
命令语法:groupmod 参数 修改后的信息… 原用户组名
参数-g可以修改用户组id,参数-n可以修改用户组名称
如:groupmod -g 666 -n xf xiafan,则会把xiafan用户组改名为xf,并将用户组id改为666
4、newgrp更改用户的用户组
先登录用户,再使用newgrp命令更改用户组
更改命令为:newgrp 更改后的用户组
如:newgrp root
5、用户组管理的本质
同账号管理的本质一样,用户组管理的本质也是在一个文件中“注册”了用户组的信息,而这个文件就是/ect/group文件,增删改的操作也就是更新这个文件的相应内容
七、磁盘管理
1、df命令:列出文件系统整体的磁盘使用量
直接使用df就可以列出文件系统整体的磁盘使用量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aw7xhdzB-1637138663492)(C:\Users\利姆鲁\AppData\Roaming\Typora\typora-user-images\image-20211116222933647.png)]
使用-h参数,会将内存单位设为M
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvGlcdrV-1637138663493)(C:\Users\利姆鲁\AppData\Roaming\Typora\typora-user-images\image-20211116222939523.png)]
2、du命令:检查磁盘空间使用量
du命令可以直接查看当前目录下的磁盘空间使用量(不包括隐藏文件)
使用-a参数可以查看出包括隐藏文件的当前目录下的磁盘空间使用量
八、进程管理
1、什么是进程
- 在Linux中,每个程序都有自己的一个进程和一个进程号(类似Windows的PID)
- 每个进程都存在一个父进程
- 进程有两种存在方式:前台运行和后台运行
- 一般服务类进程都是后台运行,基本的业务程序则是前台运行
2、进程管理相关命令
ps命令:查看当前系统上正在运行的各种进程信息
参数:
- -a:显示当前终端运行的所有进程的信息
- -u:以用户的信息显示进程
- -x:显示后台运行进程的参数
- -ef:可以查看父进程的信息,一般会搭配grep命令来使用(但我们有pstree命令这种更好的选择)
常用命令: ps -aux 可以查看当前所有的进程,一般会搭配grep命令来使用
补充:在Linux系统中 | 符号被当作管道符,如A|B,所谓管道符就是把A查询到的信息,传入到B中进行操作,|相当于一个管道
grep命令:查找符合条件的字符串,常与ps命令搭配查找想要查看的进程信息
如:ps -aux|grep mysql,则可以查看与mysql相关的进程信息
pstree命令:可以查看进程树结构目录
参数:
- -u:显示用户组
- -p:显示父id
常用命令:pstree -up
kill命令:强制结束进程
命令语法:kill -9 进程id,-9参数是固定的,必须要有
版权声明:本文标题:Linux系统的基本使用指南(速成,帮助快速上手使用Linux系统) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727393987h1113939.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论