Linux基础篇
2022-02-26 16:12:28 33 举报
AI智能生成
登录查看完整内容
一篇Linux笔记。记录几个Linux操作系统的模块,命令等。
作者其他创作
大纲/内容
语法:cat fileName [ | more ]
-n:对查看的文件信息进行编号(一行一个编号)
tac:和cat功能相同,只不过tac是反着输出文件信息
连接文件:cat filename1 filename2:把文件2追加到文件1后,连接起来输出所有信息
tail/head -n x:查看文件末尾/开头 x 行的内容。
tail -f 文件:实时追踪该文档的所有更新
head:显示文件开头前10行内容tail:显示文件末尾10行的内容
单独使用:more fileName 来查看文件
less:按页显示文件信息,与more类似。但是比more更强大、支持各种显示终端根据显示需要加载内容,对于大型文件具有较高的效率。
cat :查看文件或连接文件命令一般会带上管道命令 | more
语法:cd directory:回到directory的位置。
cd .. :回到当前目录的上一层目录
cd ~:回到此用户的家目录
cd:切换目录
语法:echo [选项] [输出内容]
echo:输出内容到控制台
-a:显示这个目录所有的文件信息(包括隐藏的文件)隐藏文件是以 . 开头
-l:显示这个目录的文件的详细信息(长格式显示)还显示文件的类型信息、权限、硬链接个数、当前用户名、当前用户组、文件大小(单位为字节)、修改时间等详细信息
-t:按修改信息时间排序
-R:递归子目录查看(把子目录的文件也查出来)
ls:查看当前目录的信息
tree 目录名:以树状的形式显示目录结构注:如果没有tree,需要安装。
-a:尽可能的将文件模式、所有者时间标签、链接等信息按原状予以复制、并且递归的复制子目录中的文件
-r:若原文件中含有目录,则递归地将目录下的文件也依序复制至目的地
如果想强制覆盖不让系统提示。在cp前加\\,其他格式不变。语法:\\cp ....
cp:复制一个文件至另外一个文件或者将一个或多个文件复制至另一个目录语法:cp [选项] <当前文件的位置> <新文件的位置>
选项:-a:只改变文件的访问时间记录-m:只改变文件的修改时间记录-c:如果文件不存在、不创建新的文件-r<参考文件或目录>:使用参考文件或目录的时间记录修改指定文件-d<datestring>:根据datestring设定文件的时间与日期datestring可以使用各种不同的日期和时间格式-t<stamp>:设定文件的时间记录,stamp的格式--no-create::与-c功能一样
语法:touch [选项] <filel> [file2..]说明:修改指定文件的访问时间和修改时间记录默认修改为当前时间。如果文件不存在则创建文件
touch:创建、改变文件或目录时间的命令
硬链接(hard link):一个文件是另一个文件的别名它们是不可区分的,是同一个实体文件。创建硬链接必须在同一个文件系统中
软链接(符号链接、symbolic link):是一个特殊的文件,它的内容不是真正的数据而是指向另一个文件(链接目标)的路径名。类似指针。软链接可以跨越文件系统创建、不仅可以对文件创建、还可以对目录创建。
相同点:都不会将原本的文件再复制一份。所以占用的内存非常少。
区别:https://blog.csdn.net/q610098308/article/details/104389596
选项:-f:链接时先将与dest同名的文件删除-d:允许系统管理员创建对目录的硬链接默认情况下不允许对目录创建硬链接-i:在删除与dest同名的文件时先进行询问-n:在进行软链接时,将dest视为一般文件-s:创建软链接。默认不写是硬链接-v:在链接之前显示每一个文件的文件名-b:在链接时将可能被覆盖或删除的文件进行备份
语法:ln [选项] <source> <dest>说明:产生一个从dest到source的链接、是硬链接还是软链接由 选项 决定
ln:链接
ls -l > 文件:查询到的结果覆盖放入到文件中(如果文件不存在则会自动创建)cat 文件1 > 文件2 :将文件1的内容覆盖到文件2中echo \"内容\" > 文件:将内容覆盖放入到文件中。
>>:追加>:输出重定向区别:>>:是把新的信息追加到文件原来的信息后面>:则是会覆盖文件原来的信息
<:输入重定向
输入输出重定向
常用选项:-p :创建多级目录当你想创建的此目录的上一层目录还未创建时,使用-p可以同时创建。
语法:mkdir [选项] 要创建的目录
如果想要删除的目录非空非要执行删除则使用rm -rf需要谨慎使用。
语法:rmdir [选项] 要删除的空目录
mkdir:创建目录
选项:(常用)-r :递归删除整个文件夹-f :强制删除不提示
语法:rm [选项] 要删除的文件或目录
rm:删除文件或目录
语法:(重命名)mv oldNameFile newNameFile (移动文件)mv oldDirectory newDirectory
mv:移动文件或重命名
从/目录开始显示
pwd:查看当前所处文件的路径
文件目录类
所有查询命令集合:https://www.cnblogs.com/klb561/p/9157569.html
查看系统版本:cat /etc/redhat-release
作用:可以把一大堆文件和目录打包成一个文件这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。既可以压缩文件,也可以解压文件。
-c:创建新的备份文件。如果用户想备份一个目录或一些文件就要选择这个选项
-x :与-c相反,从备份文件中释放文件
-v:详细报告tar处理的文件信息。没有要这选项则不报告信息。
-f:指定备份文件或设备,如果选了这选项那么其后必须要有备份文件名
-z:用gzip来压缩/解压缩文件,加了该选项后可以将备份文件进行压缩,但还原时也必须使用该选项进行解压缩。(解压后压缩包还在)
主选项可选值
语法:tar <主选项> [辅助选项] <生成文件或目录> 源文件
tar:备份命令
作用:对文件进行压缩和解压缩的命令
-d:将压缩文件解压。默认不选的情况下是压缩(解压后压缩包消失)
-v:列出压缩文件或解压文件的详细信息。
-l:对每个压缩文件显示下列字段,即压缩文件的大小未压缩文件的大小、压缩比、未压缩文件的名字
-r:递归的查找指定目录并压缩其中的所有文件夹或者解压缩
-t:测试、检测压缩文件的完整性
选项
语法:gzip [选项] 源文件注:把源文件变成一个压缩包,解压后恢复成压缩之前的文件不可对目录压缩,如果压缩了,则是对目录中的文件变成压缩包,如果有目录之中还有目录,则无法压缩。
gzip:压缩命令
语法:gunzip 文件名.gz
gunzip:解压命令
选项:(常用)-r :递归压缩。即压缩目录
语法:zip [选项] 文件名.zip 源文件
zip:压缩文件
作用:用于解压扩展名为.zip的压缩文件
(常用)-d <目录> :把压缩文件解压到指定目录下,默认解压到当前目录下。
-v:查看压缩文件,但不解压
-n:不覆盖已经存在的文件
-o:覆盖已存在的文件且不要求用户确认
-j:不重建文档的目录结构,把所有文件解压到同一目录下
-t:测试压缩文件的完整性、不解压
语法:unzip [选项] <压缩文件名>
unzip:解压命令
压缩解压缩命令
进入官网下载:rarlabhttps://www.rarlab.com/download.htm
rar a abc.rar /home/ab :把home目录下的ab文件夹打包成abc.rar文件
rar x(e) abc.rar /home:把abc.rar文件解压到home目录下。
rar语法
解压rar文件
压缩解压类
-s:设置当前日期信息(需要root权限)语法:date -s 日期格式(要以字符串的形式)date + %Y:显示当前年份date + %m:显示当年月份date + %d:显示当前是哪一天date \"+ %Y-%m-%d %H:%M:%S\":显示年月份时分秒
date:查看当前的日期信息
-y:显示今年的日历信息语法:cal -y 某年 :显示某年的日历信息
cal:显示当前这个月的日历
日期类
语法:find 【path】【expression】在path下开始递归向下寻找文件(不只是path这个目录中的所有文件,它们的子目录都文件也会去找。)将符合expression的文件全部找出来。
-empty :内容为空的文件
注:文件名称是个字符串类型,需要双引号自动补全符号*,\"D*\":表示D开头的文件
-name <文件名称>:按指定的名字查找
-user <用户名称>:按指定用户名查找它所属的文件
-size (+大于、-小于、不写是等于)(单位:k、M、G):按指定的文件大小查找
expression可选择的操作
and/-a/ 空格:与-or :或! /-not:非语法:exp1 逻辑表达式 exp2
可以用逻辑表达试连接两个操作
find:搜索文件
简介:利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,locate指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻
语法:locate 搜索文件
特别说明:locate指令用于数据库进行查询所以第一次运行前,必须使用updatedb指令创建locate数据库
locate:可以快速定位文件路径
选项:-n:显示匹配并且显示行号-i:忽略字母大小写,
查找内容支持正则表达式
语法:grep [选项] 查找内容 在选定文件名查找
grep:过滤查找
语法:which 指令名称
which:可以查看某个指令在哪个目录下
例子:cat /home/hello.txt | grep -n \"yes\"在home目录下,查出hello.txt的内容,然后交给grep查找里面是否有yes,并显示行号。
语法:命令1 | 命令2含义:将命令1输出的结果交给命令2处理。
|:管道符
选项:-l:统计行的个数
语法:wc [选项]
wc:统计个数
env:显示系统中所有的系统变量
搜索查找类
0:关机1:单用户(找回丢失密码),root权限,用于系统维护,禁止远程登录2:多用户状态没有网络服务3:多用户状态有网络服务,登录后进入控制台命令模式4:系统未使用保留给用户5:图形界面, 登录后进入图形GUI模式6:重启(系统正常关闭并重启)
systemctl get-default:获取默认运行级别systemctl set-defalut 表示运行级别的文件名:设置默认运行级别
init:切换运行级别
help:查看操作的简单命令与man的区别:help比较简洁只写出了常用的man则比较完整。列出了所有信息
man(manula:说明书):显示一个操作的说明书(里面包含这个操作的所有信息)
clear:清除屏幕上的信息
-h n:hello,n分钟后会关机了h是halt:停止、停下、阻止、暂停
-r now:现在重新启动计算机r是reboot:重新启动
shutdown -h now:立即关机
halt :关机、作用跟上面一样
reboot :现在重启计算机
sync :把内存的数据同步到磁盘
1.不管是重启系统还是关闭系统首先要执行sync,把内存中的数据写到磁盘中
2.目前的shutdown/reboot/halt等命令均已经在关机前进行了sync。以防数据丢失
shutdown:关机
history:查看所有历史命令history 10:查看最近10条命令!5:曾经执行的第5条指令
history:查看已经执行过历史命令也可以执行历史命令
常用命令
简介:Vim是各种类Linux系统中普遍使用的一款文本编辑器。可以执行输出、删除、查找、替换块操作等众多本文操作。基本使用键盘操作。
启动:vim 文件名或者它的路径
view:以只读的方式打开文件阅读
o:文件以上下窗打开
O:文件以左右窗打开
h:左
j:上
k:下
l:右
可选选项
Ctrl + w + [选项]
o/O模式下切换窗口
切换窗口:gt(向右),gT(向左)
p:标签页形式打开文档
语法:vim/vi [选项] <file1> <file2> ...
同时打开多个文件命令
编辑模式
i:转换成输入模式
a:转换成输入模式,光标往后移一个位置
o:转换成输入模式,光标另起一行。与shift + Enter类似
按a、i、o键:↑按Esc键:↓
连按两次大写字母<Z>(不常用)
保存文件
V:选取光标所在的那一整行
ggvG:选取一整个文件
选取对象命令
yl:复制光标后的一个字符
[n]yl:复制光标后的n个字符
yw:复制光标后的同类字符。遇到其他类字符停止。如数字、汉字、字母、字符是不同类的字符。
yy:复制光标所在那行的内容。
[n]yy:复制光标所在行开始往下数到n行的内容。
复制命令
p:从光标前开始粘贴
P:从光标后开始粘贴
粘贴命令
dl:删除光标后的一个字符
[n]dl:删除光标后的n个字符
dw:删除在光标所在的行,从光标后的一个字符开始的同类的字符。比如:ing你好 光标在i的前面,会把ing全部删掉。只剩你好。在你前面则会把你好删掉,剩ing
dd:删除光标所在那行的内容
[n]dd:删除包括光标那行,往下数到n行的内容。 比如n为3.就是删除3行从光标在的那行开始计算。
注:删除操作也是剪切操作,删除后再按p就粘贴出来。
删除/剪切命令
u:可以一直返回到文件修改前
U:只能撤销一次,撤销到上次使用U时的样子。按第二次则是还原成撤销前的样子。
撤销上次操作
重复命令:.
gg:跳转到文件开头
[n]G:跳转到n行开头的第一个字母
G:跳转到文件末尾
跳转到指定行
PgUp:向上翻页PgOn:向下翻页
Ctrl +b/f/PgUp/PgOn:设置文件分页
文件分页
Ctrl + g:显示文件名、光标所在的行数、文件总行数
查看文件状态命令
操作
命令行模式
命令执行完:↑按:键:↓
w:保存文件
w<file>:文件另存为
w!<file>:强制文件另存为
q:正常退出
q!:强制退出
qa:退出一起打开的所有文件
wq:保存并退出。(常用这种)
x:与wq功能一样。
退出Vim返回到Shell
set nu/number:为文本设置行数
/:以光标当前位置为起始点、往后查找(不从光标本身所指的字母开始找,而是找下一个)
?:以光标当前位置为起始点,往前查找
语法:/ or ?要找的字符串
N:向前继续查找
n:向后继续查找
配合N、n命令可继续查找
查找命令
注:范围不写默认只替换光标所在行的第一个被替换对象。
vim中的特殊符号%:是通配符,匹配所有行^: 选取第一个$:表示定位到最后一行
替换命令
tabnew filename:打开新文件
末行模式
Vim操作
Vim编辑器
Linux无论有几个分区,分给哪个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来这时要载入的一个分区将使它的存储空间在一个目录下获得
将一个具体的分区挂载到一个文件目录下
原理介绍
IDE硬盘:驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型这是是指IDE硬盘。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区和扩展分区,从5开始就是逻辑分区。例:hda3:第一个IDE硬盘上的第三个主分区或扩展分区,hdb2:第二个IDE硬盘上的第二个主分区或扩展分区
SCSI硬盘:标识符为”sdx~“,SCSI硬盘是用\"sd\"来表示分区所在设备的类型的其余则和IDE硬盘的表示方法一样。
Linux硬盘分IDE硬盘和SCSI硬盘。目前基本上是SCSI硬盘
当磁盘使用到80%,就该新增硬盘或者清理空间
硬盘说明
UUID:分区建立需要格式化,格式化后系统分配的40位的字符串,作唯一标识符。
lsblk或lsblk -f:查询磁盘信息
blkid:查询磁盘的UID信息
m:显示命令列表
p:显示磁盘分区 同fdisk -l
n:新增分区
d:删除分区
w:写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并推出。若不保存退出则输入q。
fdisk:分区命令
-t:指定格式
mkfs:格式化磁盘
语法:mount 设备名称 挂载目录例:mount /dev/sdb1 /newdisk
mount:挂载命令注:用命令行挂载重启后会失效
语法:umount [挂载点或设备名]
umount:卸载命令
df -h:查询系统整体磁盘使用情况
-h:以人的习惯使用计量单位
-s:指定目录占用大小汇总
-a:把文件的大小也列出(默认只列出目录的大小)
--max-depth = 1 :子目录深度
-c:列出明细的同时,增加汇总值
语法:du [选项] 要查询的目录
du :查询指定目录的磁盘占用情况(默认为当前目录)
操作命令
1.在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一直【下一步】,中间只有选择磁盘大小的地方需要修改,至完成。然后重启系统(才能识别到新硬盘)!
常规n:添加一个新的分区d:删除分区F:列出未分区的空闲区l:列出已知分区的文件系统类型(需要记住相应文件类型的id)t:更改分区类型v:检查分区表i:打印某个分区的相关信息
保存并退出w:将分区表写入磁盘并退出q:退出而不保存更改
分区类型:p:主分区e:扩展分区(逻辑分区的容器设置完后,需要再添加逻辑分区放进容器中。)e不算实际分区。
扇区设置:刚开始的大小是显示最小的可用分区用默认即可,结束分区可以写 +10G。(表示可用大小为10G)
2.分区命令 fdisk /dev/sdb(磁盘目录):开始对/sdb分区
需要格式化后才可挂载
格式化后硬盘的分区会有一个UID
3.格式化磁盘,分区命令:mkfs-t ext4 分区目录输入完命令回车即可。注:其中ext4是分区类型 FAT32在linux中的类型:vfat分区目录必须是完整目录/dev/sdb1
语法:mount 设备名称 挂载目录卸载:umount 设备名称 或 挂载目录注:最好在想卸载的挂载目录外面卸载
4.挂载:将一个分区与一个目录联系起来注:分区必须是完整目录,/dev/sdb1用命令行挂载的方式,重启后会失效
在fstab文件里面:语法格式:硬盘名称 or UUID 挂载的目录 文件类型 default 硬盘分区序号序号:有两个数字,第一个是开机是否要备份选择(备份:1,不要备份:0)第二个数字 是否要检查
5.永久挂载:通过修改/etc/fstab 实现挂载添加完成后,执行mount -a 即刻生效
虚拟机增加硬盘
Lniux磁盘分区与挂载
守护进程:
批处理进程:
交互进程:
进程
在Linux中,每个执行的程序都被称为一个进程每一个进程都分配一个ID号(pid,进程号。可以通过pid号来找到对应的进程)注:当程序被传入到内存中执行,就成为了进程
每个进程都可以以两种方式存在。前台与后台:前台进程就是用户目前的屏幕上可以进行操作的后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
一般系统的服务都是以后台进程的方式存在而且常驻在系统中,直到关机才结束
父进程(PPID):如果有一个进程P1创建了子进程P2P1就是P2的父进程,当把P1关掉,它所有子进程也会关闭。
语法:service 服务名 [start|stop|restart|reload|status]
在CentOS7.0后,很多服务不再使用service,而是systemctl
service指令管理的服务在 /etc/init.d 查看
服务(service):本质是进程,是运行在后台的通常都会监听某个端口,等待其他程序的请求。如:(mysqld,sshd 防火墙等),因此又称为守护进程。
基本介绍
选项:-a:显示当前终端的所有进程信息-u:以用户的格式显示进程信息-x:显示后台进程运行的参数-e:显示所有进程-f:全格式
语法:ps -[选项](一般与管道符|使用)
USER:进程执行用户
PID:进程识别号(进程号)
%CPU:占用cpu的百分比
%MEM:占用实际物理内存的百分比
VSZ:占用虚拟内存的大小(单位:KB)
RSS:占用物理内存的大小(单位:KB)
TTY:终端机号(终端信息)
S:进程正在休眠
s:表示该进程是会话的先导进程
N:表示进程拥有比普通优先级更低的优先级
R:进程正在运行
D:短期等待
程序已经停止,但是内存没有被释放。需要定时清除僵死程序
Z:僵死进程
T:被跟踪或者被停止等待
STAT:运行状态
START:进程执行的开始时间
TIME:此进程使用CPU的总时间
COMMAD:执行该进程的指令或进程名如果过长会被截断。
ps显示的信息选项
ps:用来查看目前系统中,哪些进程正在执行以及他们执行的状况。可以不加任何参数(静态监控)
选项:-d 秒数:每隔多少秒刷新检测的进程数据默认是3秒。-i:不显示任何闲置或者僵死程序-p:通过指定监控进程ID来仅仅监控某个进程的状态
语法:top [选项]
14:16:36:当前系统的时间
2:45:系统运行了多长时间
4 users:系统中的用户个数
如果它的三个值之和超过70%说明系统负载比较大。需要对系统性能进行提升。
load average:负载均衡(负载值)
top-
241 total:系统当前总任务个数
1 running:系统当前只有一个任务在运行
240 sleeping:有240个任务在休眠
0 stopped:有0个任务停止
0 zombie:有0个僵死进程
Tasks
0.0 us:用户占用的CPU大小
0.1 sy:系统占用的CPU大小
99.8 id:目前空闲的CPU大小
%CPU
3942.1 total:内存的总共大小
3150.9 free:空闲的内存大小
247.2 used:已使用的内存大小
544.0 buff/cache:用来作缓存的内存大小
MiB Mem:当前系统内存使用情况
4096.0 total:内存总共大小
4096.0 free:空闲的内存大小
0.0 used:已使用的内存大小
3467.2 avail Mem:可获取的内存大小
MiB Swap:Swap分区内存使用情况
PID、USER等信息介绍在ps有记录。
top查询到的信息说明
P:以CPU使用率排序,默认是此项
M:以内存的使用率排序
N:以PID大小来排序
u:监视特定用户的进程输入u,再输入用户名,回车即可。
k:关掉指定PID的进程输入k,再输入PID,回车(强制关闭输入9)
q:退出top
交互操作说明
top:与ps命令相似,都是用来显示正在执行的进程的最大的不同之处在于top在执行一段时间后可以更新正在运行的进程。(动态监控进程)
选项:-an: 按一定顺序排列输出-p:显示哪个进程在调用
语法:netstat [选项]
Proto:端口监听使用的网络协议
0.0.0.0:22 :本地地址(0.0.0.0)有个程序在监听22号端口
:::22 :是以IPV6的形式,来监听22号端口
22号端口既可以接受Ipv4的地址连接,也可以接受Ipv6的地址连接
local Adderss:本地地址(linux地址)
如果用的是Xshell连接Linux,这个地址就是window的ip号
Foreign Address:外地地址
ESTABLISHED:连接建立LISTEN:监听TIME_WAIT:超时等待
State:连接状态
查到的数据情况说明
netstat:查看系统网络情况
简介:是一种网络检测工具,它主要是用来检测远程主机连接是否正常,或是两部主机之间的往闲或网卡故障
语法:ping 对方ip地址
ping:检测主机连接
选项:-p:显示进程的PID-u:显示进程所属用户
语法:pstree [选项]
pstree:可以更加直观的来看进程信息
介绍:若是某个进程执行一半需要停止时或是已消耗了很大的系统资源时此时可以考虑停止该进程。
选项:-9(常用):强迫进程立即停止
语法:kill [选项] 进程号通过进程号杀死进程,此进程的所有子进程也会被杀死
语法:killall 进程名称通过进程名称杀死进程,也支持通配符这在系统因负载过大而变得很慢时很有用
实践操作
kill和killall:终止进程
查看服务名:1.使用setup->系统服务,就可以看到全部。2./etc/init.d 看到service指令管理的服务
开机流程说明:开机->BIOS->/boot->systemd进程1->运行级别->运行级别对应的服务
语法:chkconfig --list :查看所有服务在所有运行级别中的开关情况chkconfig 服务名 --list:列出这个服务名在所有运行级别中的开关情况chkconfig --level 5 服务名 on/off :设置该服务名在运行级别5是开或关。注:重设设置服务后,需要重启机器(reboot)生效。
chkconfig:在各个运行级别中给服务设置自 启动/关闭(fedora好像不支持使用。)
基本语法:systemctl [start|stop|restart|status] 服务名:对该服务执行开启、关闭、重启、查看状态操作。注:这些操作设置只是临时生效,重启后服务该保持什么状态是依据设置好的自启动来设定。
systemctl指令管理的服务在 /usr/lib/systemd/system 查看
语法:systemctl list-unit-files :查看所有服务开机启动状态(可用grep过滤)systemctl enable 服务名:设置服务开机启动。systemctl disable 服务名:设置服务开机关闭。systemctl is-enabled 服务名:查询该服务名开机启动时,是开启还是关闭的。
systemctl设置服务的自启动状态自启动:开机启动时,服务应该保持什么状态
systemctl管理指令:管理Linux中的服务。
简介:在真正的生产环境中,往往需要把防火墙打开当我们想使用某个端口时,而在防火墙中它是关闭的这时候就需要在防火墙中把这个端口打开。
https://blog.csdn.net/weixin_45890130/article/details/107098888:防火墙基础命令
netstat -anp:查看系统端口情况(Proto列就是协议)
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入:firewall-cmd --reload注:开启和关闭后,需要重新载入才能生效。
查询端口是否开放:firewall-cmd --query-port=端口号/协议
firewall指令
防火墙打开或关闭指定端口
服务(service)管理
语法:df [选项] 文件系统
df:磁盘空间用量查看命令
语法:free[选项]
free:内存查看命令
选项:-c:统计显示内存总用量-h:内存大小单位以K显示-d n:按所选n层目录展示内容
语法:du [选项] 目录路径
du:查看目录所占空间用量命令
Ctrl + z:把当前进程挂起
fg %number:可以指定任务号为n的任务放到前台执行。
fg :把后台的任务放到前台执行
bg :将在后台暂停的任务放到后台继续执行
jobs:查看当前终端后台运行任务
进程挂起和恢复命令
系统日志文件目录:/var/log
选项:-e:从结尾开始阅读文件-x:让信息显示的更详细
语法: journalctl [选项] [匹配]
查看工具:cat、tail、less、vim等journalctl 命令(Fedora专有)
日志查看
进程管理(重点)
/bin【常用】:是Binary的缩写这个目录存放着最经常使用的指令例如:cd tough 等等
/sbin:s就是Super User的意思这里存放着的是系统管理员使用的系统管理程序
/home【常用】:存放普通用户的主目录在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账户名命名
/root【常用】:该目录为系统管理员也称超级权限者的用户主目录。
/etc【常用】:所有的系统管理所需要的配置文件和子目录比如安装mysql数据库 my.conf
/usr【常用】:这是一个非常重要的目录存放Lniux中的应用程序的所有文件用户的很多应用程序都放在这个目录下,类似与windows下的program files目录。
/boot【常用】:存放的是启动Linux时使用的一些核心文件包括一些连接文件以及镜像文件
/media【常用】:Lniux系统会自动识别一些设备专门处理Linux外部接入设备信息的目录。例如U盘、光驱等等,当识别后,Lniux会把识别的设备挂载到这个目录下
/mnt【常用】:系统提供该目录是为了让用户临时挂载别的文件系统的我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
/proc【不能动】:这个目录是一个虚拟的目录它是系统内存的映射,访问这个目录来获取系统信息
/srv【不能动】:service缩写,该目录存放一些服务启动之后需要提取的数据
/sys【不能动】:这是Linux2.6内核的一个很大变化该目录下安装了2.6内核中新出现的一个文件系统sysfs
/opt:这是给主机专门放安装包的目录如安装Oracle数据库就可放到该目录下。默认为空。
/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
/lost + found:这个目录一般情况下是空的当系统非法关机后,这里就存放了一些文件
/temp:这个目录是用来存放一些临时文件的
/dev:类似于window的设备管理器把所有的硬件用文件的形式存储
/目录
基本介绍:登录尽量少用root账号登陆,因为它是系统管理员。最大的权限、避免操作失误,可以利用普通用户登录,登录后再用su - 用户名 命令来切换成系统管理员身份。
使用细节:1.logout 注销命令在图形运行级别无效,在运行级别3下有效2.使用Xshell连接时,用logout只会退出Xshell的连接,Linux用户则不受到影响。但是关机可以通过Xshell来关闭Lniux。
在提示符下使用logout即可注销用户注:这是Xshell中的指令,在Linux下使用无效、Lniux中使用的是exit。
用户登录
添加用户
指定/修改密码
因为有的人就算辞职了,他所写的东西还有价值。不急着去删。区别:1.保留家目录 2.不保留家目录。
删除用户
选项:用户的各种属性。-g 、-G、uid、gid等
-g 新组名 用户名:修改用户所在组
-d 新目录名 用户名:修改用户登录初始目录(用户名一定要有进入新目录名的权限,否则修改后,用户无法进去目录,就会无法登录。)
语法:usermod [选项] username
修改用户属性
id 用户名:查询用户的详细信息。
查询用户
切换用户
第一次登录的时候,以哪个用户名登录,查出来就是哪个用户名。
whoami:查看当前用户的名称
who:查看所有用户信息
w:查看所有用户信息(最详细)
groups 用户名:查看该用户名的所属组
查看最初的登录用户
Shell类似编译器的作用。
用户组
重置Root密码
用visudo修改/etc/sudoers文件
文件格式例子:root ALL = (ALL1) ALL2root:允许谁ALL:在哪里ALL1:命令所在的文件位置ALL2:使用什么命令
普通用户要使用sudo的基本方法
用户管理
简介:在Linux中每个用户都必须要属于一个组文件有三个要素:所在组、所有者、其他组对文件而言,要素不同,用户对此文件的权限也不相同。
其他组:除了文件所有者和文件所在的组的用户之外,系统的其他用户都是其他组。
ls -alh:查看文件所有者
当创建文件的时候,文件默认属于创建者所在的组中。
chgrp 组名 文件名:修改文件所在的组
chfn 用户名:修改用户详细信息
finger 用户名:显示用户详细信息(需要下载)
d:目录,相当于window的文件夹
-:普通文件
l:链接,相当于window的快捷方式
c:字符设备文件,鼠标、键盘。
b:块设备,比如硬盘
第0位确定文件的类型(d、-、l、c、b)
rwx作用到文件 rwx数字表示:r = 4,w = 2, x = 1r(read):可读,表示可以读取、查看。w(write):可写,表示可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件x(excute):可执行,表示可以被执行
rwx作用到目录r(read):可读,表示可以读取、ls查看目录内容。w(write):可写,表示可以修改,对目录内容创建+删除+重命名目录x(excute):可执行,表示可以进入该目录
1-3位 确定所有者(该文件的所有者)拥有该文件的权限 --User
4-6位 确定所属组(同用户组的)拥有该文件的权限 --Group
7-9位 确定其他用户拥有该文件的权限 --Other
文件说明:0-9位说明
文件:表示硬连接数
目录:表示子目录数
3:对于文件和目录有区别
T:只能出现在其他用户的x位上
详解:https://www.cnblogs.com/wuxinmengyi/p/11782709.html
特殊权限:S、T
umask:可以查看文件创建默认权限值。如:umask = 011创建一个文件的默认权限是(777 - umask的值)777 -11 = 766(rwxrwrw)语法:umask 0033:更改umask的值为0033
drwxrwxr-x. 3 wjt2019101362 wjt2019101362 [29] [Apr 12 18:19] homework文件说明 看说明 用户名 用户组 文件大小 文件最后修改日期 文件名
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o)的总和
第一种方式:+、-、=变更权限+:增加权限=:赋予权限-:移除权限
第二种方式:通过数字变更权限r = 4;w = 2;x = 1 rwx = 4+2+1 = 7chmod u=rwx,g=rx,o=x 文件/目录名等价于:chmod 751 文件/目录名
chmod:可以修改文件或者目录的权限
chown 新用户 文件名/目录:修改文件/目录所有者(只修改所有者,所有组不变。)
chown 新用户:新组名 文件名/目录 :改变所有者和所在组
-R 如果是目录,则其下所有子文件或目录递归生效
chown:修改文件/目录所有者
chgrp 新组名 文件名/目录:修改文件/目录所在组
chgrp:修改文件/目录所在组
权限的基本介绍
Lniux的组
选项(常用):-e:编辑crontab定时任务-l:列出当前有哪些crontab任务-r:删除当前用户所有的crontab任务
语法:crontab [选项]
service crond restart:重启任务调度
crontab:进行定时任务的设置
五个占位符的说明 项目 含义 范围 第一个“*”:一小时当中的第几分钟 0-59第二个“*”:一天当中的第几个小时 0-23第三个“*”:一个月当中的第几天 1-31第四个“*”:一年当中的第几个月 1-12第五个“*”:一周当中的星期几 0-7注:(0和7都代表星期日)
参数细节说明
* :代表任何时间,比如第一个“*”就代表一小时中每分钟都执行一次的意思
- :代表连续的时间范围,比如“0 5 * * 1-6”命令,代表星期一到星期六的凌晨五点0分执行命令
*/n :代表每隔多久执行一次,比如“*/10 ****”命令,代表每个十分钟就执行一遍命令
特殊符号说明
45 22 * * * 命令:在22点45分执行命令
0 17 * * 1 命令:在星期一的17点0分执行命令
40 4 * * 1-5 命令:在星期一到星期五的4点40分执行命令
*/10 4 * * * 命令:每天的凌晨四点,每隔10分钟执行一次命令
特定时间执行任务的例子
atd:每过60s检测一次job队列是否有作业有的话就执行,会检查作业的运行时间,如果设置时间与当前时间匹配,就执行这个作业,然后把这个作业从job队列中移除。
ps -ef | grep atd:检测atd是否在后台运行的语句
需要有守护进程atd负责检测和执行
atq:查看系统中有没有执行的工作任务
atrm 序号:将job队列中指定序号的任务删除(移出队列)
at命令是一次性定时计划任务,执行完一次就不再执行。
-m:当指定的任务被完成后,将给用户发邮件,即使没有标准输出到界面。
-l:atq的别名
-d:atrm的别名
-v:显示任务将被执行的时间
-c:打印任务的内容到标准输出
-V:显示版本信息
-q<队列>:使用指定的队列
-f<文件>:从指定文件读入任务而不是从标准输入读入
-t<时间参数>:以时间参数的形式提交要运行的任务
选项:
1.接受在当天的hh:mm(小时:分钟)式的时间执行。假如该时间已过去,那么就放在第二天执行。例如:04:00
2.使用midnight(深夜),noon(中午),teatime(饮茶时间,一般来说是下午四点)等比较模糊的词语来指定时间
3.采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午,例如:12pm
4.指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定日期必须跟在指定时间的后面。例如:04:00 2021-03-1
6.直接使用today(今天)、tomorrow(明天)来指定完成命令的时间
时间:
如果在写指令不小心写错了,需要用Ctrl + backspace删除
语法:at [选项] [时间]Ctrl + d:结束at命令的输入(需要执行两次才结束)
at:一次性定时任务
设置定时任务
crond 任务调度
NAT网络配置原理
route:列出默认网关信息
查看网关
windows还可以在控制面板中的网络和共享中心,点击更改适配器设置,找到想查看的网络,右键点击属性。点击IPV4可更改ip地址Linux环境中是用ifconfig来查看网络配置
查看网络IP
语法:ping 目标主机作用:测试当前服务器是否可以连接目标主机
ping:测试主机之间网络连通性
查看网络IP和网关
第一种方法(自动获取):登录后,通过界面的设置来自动获取ip特点:linux启动后会自动获取ip缺点:每次自动获取的ip地址可能不一样
DEVICE = eth0 #接口名(设备、网卡)HWADDR = 00:0C:2x:6x:0x:xx #MAC地址TYPE=Ethernet #网络类型(通常是Ethernet)UUID=926a57ba-92c6-6231-bacb-f27e5e6a9f44 #随机id#系统启动的时候网络接口是否有效(yes/no)ONBOOT=yes#ip的配制方法[none|static|bootp|dhcp](引导时不适用协议|静态分配IP|BOOTP协议|DHCP协议)BOOTPROTO=static(改动加粗的地方、之后的文件没有要自己加)#IP地址IPADDR =192.168.200.130#网关GATEWAV=192.168.200.2#域名解析器DNSI=192.168.200.2
ifcfg-ens33文件说明
编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
Linux网络配置更改后,vmnet8的ip地址也需要更改。主机位可以不一样,前面三个要一样。(网关ip在NAT设置中)vmnet8可以在编辑点击虚拟机网络编辑器,修改子网IP和网关IP
改动完成后:重启网络服务或者重启系统生效service network restart、reboot
第二种方法(指定ip):直接修改配置文件来指定ip,并可以连接到外网。(程序员推荐)
linux网络环境配置
为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
hostname:查看主机名
修改文件在/etc/hostname指定(不可以设置中文,否则无法生效)
修改后重启生效
设置主机名
widows在C:\\Windows\\System32\\drivers\\etc\\hosts文件指定即可 如:192.168.200.130 主机名hosts文件:记录主机和IP的关系(把主机名替换成对应的IP)
linux在/etc/hosts 文件指定如:192.168.200.1 主机名
设置hosts映射
Hosts:一个文本文件,用来记录IP和Hostname(主机名)的映射关系
DNS(Domain Name System):域名系统是互联网上作为域名和IP地址相互映射的一个分布式数据库是很多台分级的服务器
主机名解析过程分析(Hosts、DNS)
ipconfig /displaydns :显示DNS域名解析缓存ipconfig /flushdns :手动清理dns缓存
设置主机名和hosts映射
网络配置
简介:rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中它生成具有.RPM扩展名的文件,RPM是RedHat Package Manger(Redhat软件包管理工具)的缩写,类似Windows的setup.exe,这一文件格式名称虽然打上了Redhat的标志、但理念是通用的。Linux的分发版本都采用(suse、centos、redhat等等),可以算是公认的行业标准。
名称:vim
版本号:8.2.587-1
noarch:表示系统通用(32、64都可以用)
如果是i686、1386:32位系统
x86_64:64位系统
如:vim-filesystem-8.2.587-1.fc30.noarch
rpm包名基本格式
rpm -qa:查询系统中所安装的所有rpm软件包
rpm -q 软件包名:查询该软件是否安装注:需要是rpm安装的软件包才查得到
rpm -qi 软件包名:查询软件包详细信息
rpm -qf 文件路径名:查询该文件是属于哪个软件包的
注:如果你想删除的软件包中的某些文件被另外一个软件包使用,它会产生错误信息阻止你删除因为怕另外那个软件包无法正常运行。所以一般不推荐删除。
如果非要强制删除,需要使用参数 --nodeps如:rpm -e --nodeps firefox
rpm -e(erase) RPM包的名称:卸载该rpm包
dnf/yum:是应用于Fedora、RedHat和SUSE等Linux中的Shell前端软件包管理器。dnf/yum基于rpm。
最常用的方法:在/etc/yum.repos.d目录下添加开源站的.repo文件
需要配置dnf/yum源,将下载源改为国内的开源站点不然下载速度很慢,因为下载源在国外。
方法:安装dnf/yum包应用软件
dnf list installed 程序名:显示该程序是否为已安装的
dnf list 程序名:显示yum源中是否有该程序
dnf info 程序名:显示该程序名的详细信息
dnf install 程序名:安装该程序
dnf update 程序名:升级该程序
dnf downgrade 程序名:降级该程序(把程序版本降低)
dnf deplist 程序名:列出该程序的依赖关系
dnf remove 程序名:删除该程序(包含依赖程序)
用dnf进行软件包管理时的常用命令
软件安装
RPM包全路径名称:你想要安装的软件的安装文件如果没有安装文件,是无法安装这个软件的。
i(install):安装
v(verbose):提示
h(hash):进度条
rpm -ivh RPM包全路径名称
rpm包的简单查询指令
rpm包的管理
简介:Yum是一个Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
yum list:自动到yum服务器查看有哪些可安装的RPM包注:一般会列出很多软件包,所以最好搭配 |grep使用。
yum list installed 程序名:显示该程序是否为已安装的
yum list 程序名:显示yum源中是否有该程序
yum info 程序名:显示该程序名的详细信息
yum install 程序名:安装该程序
yum install --downloadonly --destdir=xxx 程序名:把程序名的安装包下载到xxx目录,还未安装。
yum remove 程序名:删除该程序(包含依赖程序)
yum update 程序名:升级该程序,不删除旧版本
yum upgrade 程序名:升级该程序,删除旧版本
yum包的基本指令
yum包的管理
2.运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包
3.运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
5.运行 rpm-e --nodeps marriadb-libs,卸载两个数据库。注:还有一个略去不写。
6.然后开始真正安装mysql,依次运行以下几条rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64rpmrpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpmrpm -ivh mysql-community-client-5.7.26-1.el7.x86_64rpmrpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
8.然后开始设置root用户密码Mysql自动给root用户设置随机密码,运行grep \"password\" /var/log/mysqld.log可看到当前密码
9.运行 mysql -u root -p,用root登陆,提示输入密码,用上一步查看到的密码成功进入mysql命令行
10.设置root密码,对于个人开发环境,可以设置比较简单的密码(如果是服务器环境要设置复杂的密码)可以运行set global validate_password_policy=0;提示密码设置策略。(validate_password_policy默认值为1)
11.set password for 'root'@'localhost'=password('你要设置的新密码');
mysq下载步骤
配置编程环境
RPM与YUM
Linux基础篇-目录结构
0 条评论
回复 删除
下一页