Loading

Linux-韩顺平

基础篇

本套Linux课程内容

Linux分区一般分为:boot分区、交换分区和根分区。

虚拟系统安装好后,它的本质就是文件。

虚拟机克隆:如果你已经安装了一台liux操作系统,你还想再更多的,使用虚拟机克隆即可。方式1,直接拷贝一份安装好的虚拟机文件。然后在VM上点击打开对应的vmx文件即可。方式2,使用vmware的克隆操作,右键点击管理,后选择克隆即可。注意,克隆时,需要先关闭linux系统。

虚拟机快照:如果你在使用虚拟机系统的时候,你想回到原先的某个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。

vmtools安装后可以让我们在Windows下更好的管理VM虚拟机,可以设置Windows和centos的共享文件夹。在设置中开启共享文件夹后,可以在主文件夹->其他位置->mnt->hgfs下找到该文件夹。

Windows和centos就可以共享文件了,但是在实际开发中,文件的上传下载是需要使用远程方式完成的。

使用tab键可以实现自动补全。

在Linux世界里,一切皆文件。

三种网络连接模式:桥接模式:虚拟系统可以和外部系统通讯,但是容易导致IP冲突。NAT模式:网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突。主机模式:独立的系统,不与外部系统通讯。

使用ifconfig查看虚拟机的inet地址,然后使用xshell进行远程连接。

目录结构

  1. /bin(usr/bin、/usr/local/bin) 是Binary的缩写,这个目录存放着最经常使用的命令。
  2. /sbin (/usr/sbin /usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  3. /home存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。
  4. /root该目录为系统管理员,也称作超级权限者的用户主目录。
  5. /Iib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所 有的应用程序都需要用到这些共享库。
  6. /lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  7. /etc所有的系统管理所需要的配置文件和子目录,比如安装mysq数据库my.conf
  8. /usr这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
  9. /boot存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  10. /poc这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。不能轻易修改,否则会导致系统崩溃。
  11. /srv service缩写,该目录存放一些服务启动之后需要提取的数据。
  12. /sys这是Iinux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs。
  13. /tmp这个目录是用来存放一些临时文件的。
  14. /dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
  15. /media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  16. /mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。例如d:/myshare。
  17. /opt这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空。
  18. /usr/Iocal这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
  19. /var这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
  20. /selinux [security-enhanced linux] SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。

Linux实操篇

vi和vim

vi和vim的三种模式

  1. 正常模式:以vim打开一个档案就直接进入一般模式(这是默认的,模式)。在这个模式中,你可以使用方向按键来移动光标,使用删除字符或删除整行来处理档案内容,也可以使用复制、粘贴来处理文件数据。
  2. 编辑模式:按下i、I、o、O、a、A、r、R等任何一个字母之后才会进入编辑模式,一般是按i。
  3. 命令行模式:输入esc后再输入:。在该模式下,可以提供相关指令完成读取、存盘、替换、离开vim、显示行号等动作。

vi和vim的三种模式

快捷键使用

  1. 拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴(输入P)。 注意不要使用小键盘的数字,否则会进入编辑模式。
  2. 删除当前行dd,删除当前行向下的5行5dd。
  3. 在文件中查找某个单词[命令行下输入/关键字,回车查找,输入n就是查找下一个]
  4. 设置文件的行号,取消文件的行号。[命令行下:set nu和:set nonu) 。
  5. 编辑/etc/profile文件,在一般模式下使用快捷键到该文档的最末行[G]和最首行[gg]。注意是区分大小写的。
  6. 在一个文件中输入"hello”,然后又撤销这个动作u。
  7. 编辑/etc/profile文件,在一般模式下,并将光标移动到,输入20,再输入20行shift+g。

关机、重启和用户登录注销

指令 作用
shutdown -h now 立刻关机
shutdown -h 1 1分钟后关机,shutdown默认结果
shutdown -r now 立即重启计算机
halt 关机
reboot 重启
sync 把内存中的数据同步到磁盘

不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。目前的shutdown/reboot/halt等命令均已经在关机前进行了sync。

登录时尽量少用root帐号登录,因为它是系统管理员,拥有最大的权限,避免操作失误。可以利用 普通用户登录,登录后再用”su-用户名'命令来切换成系统管理员身份.。

在提示符下输入logout即可注销用户,logout注销指令在图形运行级别无效,在运行级别3下有效。

用户管理

指令 作用
useradd milan 添加用户,默认该用户的家目录在/home/milan
useradd -d 指定目录 新用户名 给新创建的用户指定家目录
passwd 用户名 修改用户的密码
pwd 显示当前用户所在目录
userdel 用户名 删除用户,但保留用户主目录
userdel -r 用户名 删除用户及其主目录
id 用户名 查询用户信息
su - jack 切换到jack用户
who am i 查询第一次登录的用户名
whoami 显示当前操作的用户名

使用su切换用户时,从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。当需要返回到原来用户时,使用exit/logout:指令。

在新建用户时,如果没有为其指定组,会默认创建一个与用户名同名的组,并进行绑定。

用户和组相关文件

/etc/passwd文件:用户(user)的配置文件,记录用户的各种信息。每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell。

/etc/shadow文件:口令的配置文件。每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志。

/etc/group文件:组(group)的配置文件,记录Linux包含的组的信息。每行的含义:组名:口令:组标识号:组内用户列表。

实用指令

文件目录类

指令 作用
init [0123456] 切换不同的运行级别
systemctl get-default 查看当前运行级别
systemctl set-default [multi-user.target,graphical.target] 前者类似运行级别3,后者类似运行级别5
man [命令或配置文件] 功能描述,获得帮助信息,使用空格键可以往下翻
help 获得shell内置命令的帮助信息
pwd 显示当前工作目录的绝对路径
ls [选项] [目录或文件] -a:显示当前目录的所有文件和目录,包括隐藏的。-l:以列表的方式显示信息
cd ~ 回到自己的家目录
cd .. 回到当前目录的上一级目录
mkdir 目录名 创建目录,-p创建多级目录
rmdir 目录名 删除空目录
rm 目录名 移除文件或目录,-r:递归删除整个文件夹,-f:强制删除不提示
touch 文件名称 创建空文件
cp 要复制的文件名或文件夹 目录名 拷贝文件到指定目录,-r:递归复制整个文件夹,\cp是强制覆盖不提示
mv oldName newName 重命名文件
mv /temp/movefile /targetFolder 移动文件与目录
cat 文件名 查看文件内容,-n:显示行号
echo 输出内容 输出内容到控制台
head -n 5 文件名 查看文件开头5行
tail 文件名 输出文件尾部的内容默认显示前10行;-n:指定行数;-f:实时追踪该文档的所有更新。使用-f时可以使用ctrl+C退出浏览。
ln -s 原文件或目录 软链接名 给原文件创建一个软链接,相当于快捷方式
history 查看历史命令

基本介绍运行级别说明:0:关机;1:单用户,可以用来找回丢失密码; 2:多用户状态没有网络服务;3:多用户状态有网络服务;4:系统未使用保留给用户;5:图形界面 6:系统重启。常用运行级别是3和5,也可以指定默认运行级别。

在Linux中,隐藏文件是以"."开头。

cat只能浏览文件,而不能修改文件,为了浏览方便,通常加上管道命令 | more。

>输出重定向和>>追加指令,重定向是改变默认的输出位置。

more指令交互

指令 作用
空白键(space) 向下翻一页
Enter 向下翻一行
q 立即离开more,不再显示该文件内容
Ctrl+F 向下翻动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

less指令交互

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。Iess指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

指令 作用
空白键 向下翻动一页
pagedown 向下翻动一页
pageup 向上翻动一页
/字符串 搜寻子串;n:向下查找;N:向上查找
?字符串 搜寻子串;n:向上查找;N:向下查找
q 离开less程序

时间日期类

指令 作用
date 显示当前日期
date -s 字符串时间 设置系统时间
cal 查看日历

搜索查找类

指令 作用
find 搜索范围 选项 从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。有name、user和size三种查找选项。
locate 搜索文件 快速定位文件路径
which 可以查看指令的路径
grep 选项 查找内容 源文件 过滤查找。-n:显示匹配行及行号;-i:忽略字母大小写

locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locatel数据库。由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

管道符号“|”,表示将前一个指令的处理结果输出传递给后面的指令处理。

压缩和解压缩类

指令 作用
gzip 文件名 压缩文件
gunzip 文件名.gz 解压文件
zip 压缩文件或文件夹。-r:递归压缩,即压缩目录
unzip 解压文件或文件夹。-d:指定解压后文件的存放目录-
tar 选项 文件名.tar.gz 打包的内容 将文件夹打包。-c:产生.tar打包文件;-v:显示详细信息;-f:指定压缩后的文件名;-z:打包同时压缩;-x:解包tar文件

组管理和权限管理

指令 作用
ls -ahl 查看文件的所有者
chown 用户名 文件名 修改文件所有者,-R:如果是目录,则使其下所有子文件或目录递归生效
chgrp 组名 文件名 修改文件所在的组,-R:如果是目录,则使其下所有子文件或目录递归生效
groupadd 组名 新增组
groupdel 组名 删除组
useradd -g 用户组 用户名 增加用户的时候直接加上组
usermod -g 用户组 用户名 修改用户的组
chmod u=rwx,g=rx,o=x 文件或目录名 给文件或目录的所有者读写执行的权限,给所在组读执行权限,给其他组执行权限。+增强权限,-减少权限,=赋予权限。u所有者,g所在组,o其他组,a全部用户。
chmod 751 文件或目录名 通过数字变更权限,r=4,w=2,x=1,相加得到数字,u=7=4+2+1=rwx,g=5=4+1=rx,o=1=x。因此相当于chmod u=rwx,g=rx,o=x 文件或目录名。

在linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其它组的概念。

除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。

权限基本介绍

  1. 第0位确定文件类型(d,-,I,c,b):I是链接,相当于windows的快捷方式;-是普通文件;d是目录,相当于windows的文件夹;c是字符设备:文件,鼠标,键盘;b是块设备,比如硬盘。
  2. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。
  3. 第4-6位确定所属组(同用户组的)拥有该文件的权限。
  4. 第7-9位确定其他用户拥有该文件的权限。

rwx作用到文件:[r]代表可读(read):可以读取,查看。[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。[x]代表可执行(execute):可以被执行.

rwx作用到目录:[r]代表可读(read):可以读取,Is查看目录内容。[w]代表可写(write):可以修改,对目录内创建+删除+重命名目录。[x]代表可执行(execute):可以进入该目录。

权限更新会有延时性,系统记录的是你刚开始登录的所在组,需要更新或者重新登录来更新自己的组。

任务调度

指令 作用
crontab -e:编辑定时任务;-l:查询任务;-r:删除所有任务
*/1 * * * * ls -l /etc/ > /tmp/to.txt 每小时的每分钟执行一次后面的指令。
at 选项 时间 一次性定时任务,输入ctrl+d结束at命令的输入
atrm 编号 删除编号的at任务

任务调度是指系统在某个时间执行的特定的指令或程序。

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。 at命令是一次性定时计划任务,执完一个任务后不再执行此任务了。在使用at命令的时候,一定要保证atd程的启动,可以使用相关指令ps -ef | grep atd来查看。

crontab

5个占位符

项目 含义 范围
第一个* 一小时当中的第几分钟 0-59
第二个* 一天中的第几小时 0-23
第三个* 一个月当中的第几天 1-31
第四个* 一年当中的第几月 1-12
第五个* 一周当中的星期几 0-7(0和7都代表星期日)

特殊符号

特殊符号 含义
* 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
, 代表不连续的时间。比如“0 8,12,16 * * *命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令。
- 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令。
*/n 代表每隔多久执行一次。比如“*/10 * * * *命令”,代表每隔10分钟就执行一遍命令。

at命令

at命令选项

选项 含义
-m 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q <队列> 使用指定的队列
-f <文件> 从指定文件读入任务而不是从标准输入读入
-t <时间参数> 以时间参数的形式提交要运行的任务

at时间定义

  1. 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00。
  2. 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
  3. 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm。
  4. 指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1。
  5. 使用相对计时法。指定格式为:now+count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now+5 minutes。
  6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

磁盘分区与挂载

指令 作用
lsblk 查看磁盘分区情况,-f可以查看更详细的信息
fdisk /dev/sdb 对sdb硬盘进行分区
mkfs -t 分区类型 /dev/sdb1 格式化sdb1磁盘
mount 磁盘名 文件夹名 将磁盘挂载到文件夹上
umount 磁盘名或文件夹名 取消挂载
df -h 查询系统整体磁盘使用情况
du -h 目录名 查询指定目录的磁盘占用情况
tree 目录名 以树状显示目录结构,可能需要使用yum install tree安装该指令

增加硬盘的步骤

  1. 虚拟机添加硬盘:在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,直到完成。然后重启系统(才能识别)!
  2. 分区:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
  3. 格式化。
  4. 挂载:用命令行挂载是临时的,重启后会失效。永久挂载通过修改/etc/fstab文件实现挂载,添加完成后执行mount -a立即生效。

网络配置

指令 作用
ifconfig 查看Linux的网络配置
ipconfig 查看Windows的网络配置
ping 目的主机 测试当前服务器是否可以连接目的主机
service network restart 重启网络服务

指定IP地址:直接修改配置文件来指定IP,并可以连接到外网。编辑vim /etc/sysconfig/network-scripts/ifcfg-ens33。修改后重启网络服务或重启系统生效。

通过vim /etc/hostname修改主机名,修改后重启生效。

主机名与hosts映射。Windows端:在C:\Windows\System32\drivers\etc\hosts文件指定。Linux端:在/etc/hosts文件指定。

进程管理

指令 作用
ps 查看目前系统中,有哪些正在执行,以及执行情况。-a:显示当前终端的所有进程信息;-u:以用户的格式显示进程信息;-x:显示后台程序运行的参数。
kill 选项 进程号 通过进程号终止进程。-9表示强制进程立即停止。
killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用。
pstree 选项 查看进程树。-p:显示进程的PID;-u:显示进程的所属用户。
service 服务名 选项 管理服务
setup 查看所有系统服务,带*的会自启动
chkconfig 给服务的各个运行级别设置自启动或关闭,需要重启后生效。
systemctl 选项 服务名 管理服务
firewall-cmd --permanent --add-port=端口号/协议 打开端口,改为--remove=port则是关闭端口
firewall-cmd --reload 重新载入后才能生效
firewall-cmd --permanent --query-port=端口号/协议 查询端口是否开放
top 选项 用于动态更新正在执行的进程
netstat 选项 查看系统网络情况。-an:按一定顺序排列输出;-p:显示哪个进程在调用
ping 对方ip 网络检测工具

ps指令依次显示进程执行用户、进程号、占用CPU的百分比、占用虚拟内存的百分比、占用物理内存的百分比、终端信息、当前运行状态、开始时间、占用的CPU时间和执行该进程的指令。

PPID是父进程ID。

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld,sshd防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。

systemctl指令关闭或者启用防火墙后,立即生效。但这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用systemctl的enable和disable选项。

service管理的指令可以在/etc/init.d查看。

systemctl指令管理的服务在/usr/Iib/systemd/system查看。

使用dism /Online /Enable-Feature /FeatureName:TelnetClient指令在Windows安装Telnet指令。

RPM和YUM

指令 作用
rpm -qa 查询已安装的RPM列表
rpm -q firefox 查询软件是否安装
yum list 查询可以安装的软件
yum install 包名 按照指定的yum包

rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHats软件包管理工具)的缩写,类似windows的 setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

可以在光盘的package文件夹中找需要按照的rpm包。

yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

提高篇

java

安装jdk要注意写入环境变量,并在写入后更新文件。

安装Tomcat要注意打开防火墙的端口。

安装idea要注意在图像界面启动.sh文件,因为安装时需要图形界面。

安装MySQL时,centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。

shell

指令 作用
set 显示当前shell中的所有变量
变量=值 定义变量
unset 变量 撤销变量
readonly 变量 声明静态变量,不能unset
export 变量名=变量值 将shell变量输出为环境变量/全局变量
source 配置文件 刷新配置文件使其生效
echo $变量名 输出变量的值
:<<! 内容 ! 多行注释,注释符号需要分行
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0则证明上一个命令执行不正确。
$((运算符))$[运算式]或expr 运算式 算术运算,expr运算符间要有空格且乘法需要/转义符号
[ condition ] 条件判断,condition前后有空格,非空返回true
read 选项 参数 读取用户的输入。-p设置提示信息;-t设置等待时间。
basename pathname suffix 返回完整路径最后的/的部分,常用于获取文件名,suffix选择是否去掉该后缀
dirname 返回完整路径最后的/的前面的部分,常用于获取路径部分。

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

脚本需要以#!/bin/bash开头,还需要有可执行权限。

Linux Shellr中的变量分为,系统变量和用户自定义变量。系统变量:$HOME、$PWD、$SHELL、$USER等等。

定义变量的规则

  1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200这样是错误的。
  2. 等号两侧不能有空格变量。
  3. 名称一般习惯为大写。
  4. 将命令的返回值赋给变量:A=date反引号,运行里面的命令,并把结果返回给变量A。A=$(date)等价于反引号。

位置参数变量

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。比如:./myshell.sh100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息。

语法 作用
$n|n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
\(*|这个变量代表命令行中所有的参数,\)*把所有的参数看成一个整体。
\(@|这个变量也代表命令行中所有的参数,不过\)@把每个参数区分对待。
$# 这个变量代表命令行中所有参数的个数。

流程控制

if [ $1 -ge 60 ]
then
    echo "及格了"
elif [ $1 -lt 60 ]
then 
    echo "不及格"
fi

case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac

for i in "$*"
do
    echo "num is $i"
done

SUM=0
i=0
while [ $i -le $1 ]
do
    SUM=$[$SUM+$i]
    i=$[$1+1]
done

自定义函数

Ubuntu

指令 作用
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache show package 获取包的相关信息
sudo apt-get source package 下载包的源代码
ssh 用户名@IP 在Linux上远程连接其他Linux

apt是Advanced Packaging Tool的简称,是一款安装包管理工具。在Ubuntu下,我们可以使用apt命令进行软件包的安装、删除、清理等,类似于Windows中的软件管理工具。在/etc/apt/sources.list文件中有服务器地址(美国APT),由于网络问题,通常我们将其改为国内的镜像站。

和CentOS不一样,Ubuntu默认没有安装SSHD服务(使用netstat指令查看:apt install net-tools),因此,我们不能进行远程登录。

日志

指令 作用
cron 系统定时任务相关的日志
lastlog 系统中所有用户最后一次的登录时间的日志
message 系统重要消息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息。如果系统出现问题,首先要检查的应该就是这个日志文件。
secure 记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su的切换用户, sudo的授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。
ulmp 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。这个文件不能用vi查看,而要使用w、who、users等命令查看
journalctl 查看内存日志,重启清空

系统日志文件的保存位置是/var/log/。

在文件/etc/rsyslog.conf在可以查看日志的服务。

由日志服务rsyslog记录的日志文件的格式包含以下4列:事件产生的时间;产生事件的服务器的主机名;产生事件的服务名或程序名和事件的具体信息。

/etc/logrotate.conf记录全局的日志轮替策略,当然也可以单独给某个日志文件指定策略。也可以把某个日志的轮替规则写到/etc/logrotate.d目录上。

定制自己的Linux系统

Linux启动流程

  1. Linux要通过自检,检查硬件设备有没有故障。
  2. 如果有多块启动盘的话,需要在BIOS中选择启动磁盘。
  3. 启动MBR中的bootloader引导程序。
  4. 加载内核文件。
  5. 执行所有进程的父进程、老祖宗systemd。
  6. 欢迎界面。

源码阅读

文件夹 作用
boot 存放与系统引导相关的代码
fs 存放Linux支持的文件系统代码
include 存放Linux核心需要的头文件
init 存放初始化相关的源码
kernel 存放与内核相关的代码
lib 存放库代码
mm 内存管理的代码
tools 工具相关的代码

内核升级

指令 操作
uname -a 查看当前的内核版本
yum info kernel -q 检测内核版本,显示可以升级的内核
yum update kernel 升级内核
yum list kernel -q 查看已经安装的内核

备份与恢复

linux的备份和恢复很简单,有两种方式: 1、把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可。2、使用dump和restore命令。

dump指令在备份分区时,是可以支持增量备份的,如果备份文件或者目录,不再支持增量备份,即只能使用0级别备份。

权限管理

  1. 注意权限分离,比如:工作中,Liux系统权限和数据库权限不要在同一个部门权限最小原则,即在满足使用的情况下最少优先。
  2. 减少使用root用户,尽量用普通用户+sudo提权进行日常操作。
  3. 重要的系统文件,比如/etc/passwd,/etc/shadow etc/fstab,/etc/sudoers等,日常建议使用chattr(change attribute)锁定,需要操作时再打开。
  4. 使用SUID,SGID,Sticky设置特殊权限。
  5. 可以利用工具,比如chkrootkit/rootkit hunter检测rootkit脚本(rootkit是入侵者使用工具,在不察觉的建立了入侵系统途径)。
  6. 利用工具Tripwire检测文件系统完整性。

CentOS7启动

  1. 硬件引导启动
  2. GRUB2启动引导
  3. 内核引导
  4. systemd初始化阶段
posted @ 2023-12-13 10:59  西芹-小汤圆  阅读(49)  评论(0)    收藏  举报