Linux简单介绍
Linux的目录结构
/:根目录
/bin:存放着最常使用的命令
/usr/bin:同上
/usr/local/bin:同上
/sbin:存放系统管理员使用的系统管理程序
/usr/sbin:同上
/usr/local/sbin:同上
/home:存放普通用户的主目录
/root:系统管理员用户主目录
/lib:系统开机所需要的最基本的动态链接共享库,几乎所有的应用程序都需要用到这些共享库
/lost+found:一般为空,系统非法关机后,这里就会保存一些文件
/etc:所有系统管理需要的配置文件和子目录
/usr:存放用户很多应用程序和文件
/boot:存放Linux系统开机引导文件
/proc:这是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv:存放一些服务启动后需要提取的数据
/sys:该目录下安装2.6内核中新出现的一个文件系统sysfs
/temp:存放一些临时文件
/dev:硬件转文件形式存储位置
/media:系统自动识别设备,如U盘、光驱,挂载位置
/mnt:方便用户临时挂载别的文件系统
/opt:主机额外安装软件所存放的位置
/usr/local:另一个主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序
/var:这个目录存放不断扩充的东西,习惯将经常被修改的目录放在这个目录下,也包括各种日志文件
/selinux:安全子系统,它控制程序只能访问特定文件
关机&重启操作
shutdown -h now:立即关机
shutdown -h 1:表示 1 分钟后关机
shutdown -r now:立即重启
halt:关机
poweroff:关机
reboot:重启系统
sync:把内存数据同步到磁盘上
当我们关机或重启前,都应该先执行一下sync命令,把内存的数据写入磁盘,放置数据丢失!
用户登录和注销
logout:注销(退出)当前用户
logout注销指令在图形界面下运行无效,在运行级别 3 下有效
用户管理
Linux用户至少要属于一个组,也可以属于多个组。
添加用户
useradd [选项] 用户名
选项:
-d:指定用户家目录位置
-g:指定用户所属的用户组
例子
- 在系统中创建xm用户
useradd xm
- 在系统中创建了一个xm的用户
- 当没有指定新建用户的所属组时,系统会默认创建一个和用户名同名的组,并把该用户放到这个组里面。
/home目录下会自动生成xm文件夹
指定&修改密码
passwd 用户名
删除用户
userdel [选项] 用户名
选项:
-r:连带删除用户的家目录
例子
- 删除用户xm,但保留其家目录
userdel xm
- 删除用户xm,并且一并删除其家目录
userdel -r xm
在实际开发中,删除用户时,一般不会把用户的家目录删除掉。
查询用户信息
id 用户名

切换用户
su - 切换用户名
exit:返回到原来的用户
su 用户名只是简单的切换用户,su - 用户名会自动跳转到切换后用户的家目录
查看当前是哪个用户
whoami
用户组
增加组
groupadd 组名
删除组
groupdel 组名
修改用户组
usermod -g 用户组 用户名
修改用户登录的初试目录
usermod -d 目录名 用户名
用户和组的相关文件
-
/etc/passwd文件用户的配置文件,记录用户的各种信息
![image-20210617120721279]()
每行含义
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
-
/etc/shadow文件口令配置文件
![image-20210617120817070]()
每行含义
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group文件组配置文件,记录Linux包含组的信息
![image-20210617120852452]()
每行含义
组名:口令:组标识号:组内用户列表
实用指令
Linux中的7个运行级别
- 运行级别0:关机
- 运行级别1:单用户【找回丢失密码】
- 运行级别2:多用户状态无网络服务
- 运行级别3:多用户状态有网络服务
- 运行级别4:系统未使用,保留给用户
- 运行级别5:图形界面
- 运行级别6:系统重启
系统运行级别配置文件位置:/etc/inittab
切换到指定运行级别
init 运行级别号
帮助指令
man [命令或者配置文件]help 命令
文件目录类
-
pwd显示当前工作目录的绝对路径
-
ls [选项] 目录或者文件名常用选项
-a:显示当前目录中所有的文件和目录,包括隐藏的文件-l:以列表方式显示信息 -
cd 目录位置切换目录
-
mkdir [选项] 要创建的目录常用选项
-p:创建多级目录 -
rmdir [选项] 要删除的空目录此命令只能删除空目录
-
touch 文件名称创建空文件
-
cp [选项] 资源 位置拷贝文件到指定目录
常用选项
-r:递归赋值整个文件夹\cp指令,强制覆盖文件 -
rm [选项] 要删除的文件或目录常用选项
-r:递归删除整个文件夹-f:强制删除不提示 -
mv 原文件 目标位置移动文件与目录或重命名
-
cat [选项] 要查看的文件查看文件内容,只读不改
常用选项
-n:显示行号cat指令通常会和more指令结合使用cat -n /etc/profile | more -
more 要查看的文件以全屏的方式按页显示文本内容
操作方式
操作 功能说明 空格键(space)向下翻一页 回车键(enter)向下翻一行 q退出more,不再显示文件内容 Ctrl+F向下滚动一屏 Ctrl+B返回上一屏 =输出当前行的行号 :f输出文件名和当前行行号 -
less 要查看的文件以全屏的方式显示文本内容,但是功能上比more要强大,less在显示文件时,不是一次性将整个文件加载后再显示,而是根据显示需要加载内容,对于显示大文件具有较高的效率。
操作方式
操作 功能说明 空格键(space)向下翻动一页 PageDown向下翻动一页 PageUp向上翻动一页 /子串向下搜寻【子串】功能: n:向下查找;N:向上查找?子串向上搜寻【子串】功能: n:向下查找;N:向上查找q退出less -
>&>>>:输出重定向,会覆盖掉原先的内容>>:追加,将内容追加到文件的末尾基本使用
ls -l > 文件 # 列表的内容写入到文件中(覆盖写) ls -la >> 文件 # 列表内容追加到文件末尾 cat 文件1 > 文件2 # 将文件1的内容覆盖到文件2 echo "内容" >> 文件 # 将内容追加到文件中 -
echo [选项] 内容输出内容到控制台
-
head [选项] 文件显示文件的开头部分,默认显示前10行内容
常用选项
-n:显示文件开头特定行数 -
tail [选项] 文件输出文件尾部的内容,默认显示后10行内容
常用选项
-n:显示文件结尾特定行数-f:实时监控追踪文件中所有内容的更新 -
ln-
软链接
ln -s [原文件或目录] [软链接名]:创建软链接rm -rf 软链接名:删除软链接,软链接名后不要加/当我们使用
pwd时,显示的还是软链接的目录位置
-
-
history查看已经执行过的历史命令
history 10:查看最近执行过的10条指令!18:直接执行历史记录中编号为18的这条指令
时间日期类
-
datedate:显示当前时间date "%Y":显示当前年份date "+%m":显示当前月份date "+%d":显示当前是哪一天date "+%H":显示当前小时date "+%M":显示当前分钟date "+%S":显示当前秒数
![显示日期时分秒]()
-
date -s 字符串时间:设置系统日期时间date -s "2020-12-12 11:32:12" # 设置系统时间为2020-12-12 11:32:12
-
cal显示当前月份日历
cal 2020:显示2020年一整年的日历
搜索查找类
-
find [搜索范围] [选项]从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端
选项说明
选项 功能 -name按照指定的文件名查找模式查找文件 -user查找属于指定用户名的所有文件 -size按照指定文件大小查找文件 查找整个Linux系统下大于20M的文件?
find / -size +20M # +表大于、-表小于 -
locate 搜索文件此指令可以快速的定位文件路径。利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。
由于
locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库若没有此指令则需安装mlocate!
-
grep&管道符|grep过滤查找,|表示将前一个命令和处理结果输出传递给后面的命令处理grep [选项] 查找内容 原文件常用选项
-n:显示匹配行及行号-i:忽略字母大小写![grep和管道符]()
压缩和解压类
-
gzip&gunzipgzip 文件:压缩成.gz格式的压缩包当使用
gzip对文件进行压缩后,不会保留原文件gunzip .gz压缩包:解压.gz格式的压缩包 -
zip&unzipzip [选项] .zip压缩包名 文件或目录常用选项
-r:递归压缩,及压缩目录压缩
/home目录下所有文件为mypackage.zipzip -r mypackage.zip /home/unzip [选项] .zip压缩包常用选项
-d:指定压缩后文件的存放目录解压
mypackage.zip文件到/opt/temp目录下unzip -d /opt/temp mypackage.zip -
tar [选项] .tar.gz打包名 文件或目录选项 功能 -c产生 .tar打包文件-v显示详细信息 -f指定压缩后的文件名 -z打包同时压缩 -x解包 .tar文件-
压缩多个文件,将
/home目录下的a1.txt和a2.txt压缩成a.tar.gztar -zcvf a.tar.gz a1.txt a2.txt -
将
/home的文件夹,压缩成myhome.tar.gztar -zcvf myhome.tar.gz /home/ -
将
a.tar.gz解压到当前目录tar -zxvf a.tar.gz -
将
myhome.tar.gz解压到/opt/tmp2目录下tar -zxvf myhome.tar.gz -C /opt/tmp2指定解压路径时,必须保证此目录是存在的,否则会报错
-
组管理和权限管理
文件/目录有3个属性:
- 所有者
- 所属组
- 其它组
查看文件的所有者
ls -ahl
修改文件所有者
chown 用户名 文件名
文件所在组
当一个用户创建了一个文件后,默认这个文件所在的组就是该用户所在的组!
修改文件所在组
chgrp 组名 文件名
其它组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其它组。
权限基本介绍
-rw-rw-r--. 1 tato tato 139 6月 17 21:45 hello.txt
drwxrwxr-x. 2 tato tato 33 6月 17 22:03 aaa
对于上面的-rw-rw-r--这10个字符所表示的意思:
-
第1个字符:文件的类型。
在Linux系统中,有5种文件类型
-:表示普通文件d:表示目录l:表示软链接c:表示字符设备,例如键盘,鼠标b:块文件,例如硬盘
-
第2~4个字符:表示文件所有者拥有的权限
权限说明:
rwx分别占3个字符位置,若缺少其中的相应的权限则在相应的位置用-代替,其中如果
rwx作用到文件上:r:读权限,可以读取查看w:写权限,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录拥有写权限,才能删除该文件!x:可执行权限如果
rwx作用到目录上:r:可以读取,使用ls查看目录内容w:可以修改,目录内创建、删除、重命名目录x:可以进入该目录 -
第5~7个字符:表示文件所属组的用户拥有的权限
-
第8~10个字符:表示文件其它组的用户拥有的权限
对于上面1这个数字所表示的意思:
如果是文件,那么表示此文件硬链接的数目;如果是目录,则表示该目录下的子目录的数目。
子目录:一个目录下的子目录要包含隐藏目录
.和..,其中.
.:当前目录
..:上一级目录
对于上面第一个tato的含义:文件所有者
对于上面第二个tato的含义:文件所在组
对于上面139的含义:文件的大小,如果是目录则显示4096
对于上面6月 17 21:45的含义:文件最后修改的时间
对于上面hello.txt的含义:文件名
修改权限
chmod
通过chmod可以修改文件或者目录的权限,有两种方式:
-
第一种方式
u:所有者;g:所在组;o:其它人;a:所有人(u g o的总和)使用方式:
chmod u=rwx,g=rx,o=x 文件目录名 chmod o+w 文件目录名 chmod a-x 文件目录名 -
第二种方式
规则:
r = 4, w = 2, x = 1所以:
chmod u=rwx,g=rx,o=x 目录文件名相当于chmod 751 目录文件名
修改文件所有者
chown
chown 新的所有者 文件目录名
chown 新的所有者:新的所在组 文件目录名
选项:
-R:如果是目录,则使目录中所有的目录和文件递归生效。
任务调度crontab
crontab [选项]
常用选项
-e |
编辑crontab定时任务 |
|---|---|
-I |
查询crontab任务 |
-r |
删除当前用户所有的crontab任务 |
如果只是简单的任务,可以不用写脚本,直接在crontab中加入任务即可。对于比较复杂的任务,需要写脚本(shell)。
设置一个进程调度文件/etc/crontab,要求每分钟执行ls -l /etc/ > /tmp/to.txt指令
crontab -e- 写入
*/1 * * * * ls -l /etc/ > /tmp/to.txt
- 当保存退出后,就生效了
- 在每一分钟都会自动的调用
ls -l /etc/ > /tmp/to.txt
参数说明
| 项目 | 含义 | 范围 |
|---|---|---|
第一个*占位符 |
一小时当中的第几分钟 | 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分钟就执行一遍指令。 |
crond相关指令
crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart:重启任务调度
Linux磁盘分区、挂载
分区
mbr分区- 最多只支持四个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
mbr最大只支持2TB,但拥有最好的兼容性
gtp分区- 支持无限多个主分区(但操作系统可能有限制,比如Windows下最多128个分区)
- 最大支持18EB的大容量
- Windows7 64位以后支持
gtp
查看系统的分区和挂载情况
lsblk -f

lsblk

为系统添加一块硬盘
-
虚拟机添加硬盘
-
对硬盘进行分区
fdisk /dev/sdb -
对硬盘进行格式化
mkfs -t ext4 /dev/sdb1 -
挂载
mount /dev/sdb1 /home/newdisk此时,当系统重启后,挂载关系就会消失,因为这里只是临时挂载!
-
可以设置永久挂载
vim /etc/fstab # 写入: /dev/sdb1 /home/newdisk ext4 default 0 0 # 立即生效 mount -a此时,重启机器后依然保持着挂载!
/etc/fstab文件内容

磁盘情况查询
df -h
查询整个系统的磁盘使用情况

du -h 目录
查询指定目录的磁盘占用情况
-s:指定目录占用大小汇总
-h:带计量单位
-a:含文件
--max-depth:子目录深度
-c:列出明细的同时,增加汇总值

实用指令
-
统计/home文件夹下文件的个数
ls -l | grep "^-" | wc -l -
统计/home文件夹下目录的个数
ls -l | grep "^d" | wc -l -
统计/home文件夹下文件的个数,包括子文件夹里的
ls -lR | grep "^-" | wc -l -
统计/home文件夹下目录的个数,包括子文件夹里的
ls -lR | grep "^d" | wc -l -
以树状显示目录结构
tree没有则使用指令
sudo yum install tree安装即可
网络配置
指定固定的ip地址
直接修改/etc/sysconfig/network-scripts/ifcfg-xxxx



修改后重启服务即可
service network restart
进程管理
基本介绍
- 在Linux系统中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个id号。
- 每个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如:www服务器。
- 每个进程都可能以两种方式存在:前台和后台。所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
显示系统执行的进程
ps
查看目前系统中有哪些进程正在执行,以及它们的执行情况。
常用选项
-a:显示当前终端的所有进程信息
-u:以用户的格式显示进程的信息
-x:显示后台进程运行的参数

属性介绍
USER:用户名
PID:进程id
%CPU:占用cpu
%MEM:占用内存
vsz:使用的虚拟内存
RSS:使用的物理内存
TTY:使用的终端
STAT:进程的状态
S:睡眠
s:此进程是会话的先导进程
N:此进程拥有比普通进程优先级更低的优先级
R:正在运行
D:短期等待
T:被跟踪或者被停止
Z:僵死进程
START:启动时间
TIME:占用cpu总时间
COMMAND:进程执行时的命令行
查看进程的父进程
ps -ef
PPID:当前进程的父进程的id号

终止进程
kill [选项] 进程号
通过进程号杀死进程
常用选项
-9:强迫进程立即停止
killall 进程名称
通过进程名称杀死进程,也支持通配符
使用案例
-
踢掉某个非法登录用户
Jack- 使用
ps -aux | grep sshd指令找到Jack远程连接的进程号xxxx kill xxxx
- 使用
-
终止远程登录服务sshd,在适当的时候再次重启sshd服务
-
使用
ps -aux | grep sshd指令找到远程连接sshd的进程号xxxx -
kill xxxx -
service sshd start启动sshd服务
-
-
终止多个gedit编辑器
killall gedit -
强制杀掉一个终端
-
ps -aux | grep bash找到对应的终端进程号 -
kill -9 xxxx
-
进程树pstree
pstree [选项]
可以更加直观的看到进程信息
常用选项
-p:显示进程的PID
-u:显示进程的所属用户



服务管理
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如MySQL,sshd,防火墙等。因此我们又称为守护进程。
service 服务名 [start | stop | restart | reload | status]
在CentOS7.0以后,不再使用service,而是使用systemctl
查看服务名
方式一:setup -> 系统服务
CentOS下可以使用nmtui指令
方式二:/etc/init.d/服务名称
服务运行级别
见上Linux中的7个运行级别
Linux系统开机流程
- 开机
- BIOS
- /boot
- init进程1
- 运行级别
- 运行级别对应的服务
chkconfig指令
通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
基本语法
chkconfig --list | grep xxx
查看服务
chkconfig 服务名 --list
查看某个具体的服务
chkconfig --level 5 服务名 on/off
设置服务在某个级别下的启动和关闭
动态监控进程
top [选项]
top和ps命令很相似。它们都是用来显示正在执行的进程。top与ps最大的不同在于top在执行一段时间可以更新正在运行的进程。
选项说明
| 选项 | 功能 |
|---|---|
-d 秒数 |
指定top每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令 |
-l |
使top不显示任何闲置或者僵死进程 |
-p |
通过指定监控进程ID来仅仅监控某个进程的状态 |
交互操作说明
| 操作 | 功能 |
|---|---|
P |
以cpu使用频率排序,默认就是此项 |
M |
以内存的使用率排序 |
N |
以PID排序 |
q |
退出top |
监控网络状态
netstat [选项]
选项说明
-an:按一定顺序排列输出
-p:显示哪个进程在调用

RPM包和YUM包
RPM包的管理
介绍
一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.rpm扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写。
查询已安装的RPM列表
rpm -qa | grep xx
其它查询指令
rpm -qa:查询所有安装的rpm软件包
rpm -qa | more
rpm -qa | grep xx
rpm -q 软件包名:查询软件包是否安装
rpm -q firefox
rpm -qi 软件包名:查询软件包信息
rpm -ql 软件包名:查询软件包中的文件
rpm -qf 文件全路径名:查询文件所属的软件包
卸载RPM包
rpm -e RPM包名
rpm -e --nodeps RPM包名:忽略依赖,强制删除
安装RPM包
rpm -ivh RPM包全路径
选项含义
-i:安装
-v:提示
-h:进度条
YUM管理
YUM是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并一次性安装所有依赖软件包。
查询yum服务器是否有需要安装的软件
yum list | grep xxx软件列表
安装指定yum包
yum install xxx包





浙公网安备 33010602011771号