一、Linux目录结构
/bin 存放最经常使用的指令
/sbin 存放系统管理员最经常使用的指令(s指super user)
/home 存放普通用户的主目录
/root 系统管理员目录
/lib 系统开机所需最基本的动态连接共享库,类似Windows里的dll文件
/lost+found 这个目录一般情况下是空的,系统非法关机后,储存一些文件(隐藏目录)
/etc 所有系统管理所需要的的配置文件和子目录,比如mysql数据库 my.cnf
/usr 用户的很多应用程序和文件的存放目录,类似Windows的program files
/boot Linux启动的一些核心文件,包括一些连接文件及镜像文件
/proc 一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,系统内存的映射,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息
/srv 存放一些服务启动之后需要提取的数据(service的缩写)(不能动)
/sys 2.6内核中新出现的一个文件系统sysfs(不能动)
/tmp 存放临时文件
/dev 把所有的硬件映射成文件的形式储存,类似Windows的设备管理器
/mnt 外部文件系统挂载目录
/opt 主机额外安装软件文件存放目录
/usr/local 主机额外软件安装目录
/var 存放不断修改的文件的目录(包括各种日志文件)
/selinux SELinux是一种安全子系统,它能控制文件访问特定文件,有三种工作模式,可以自行设置
二、vim快捷键
/ 进入命令行
-
/ 关键字 快捷查找,输入n跳转下一个
- 进入命令行
:qw 写入退出
:q 退出
:q! 强制退出
esc 退出编辑模式或者退出命令行
yy 复制当前行
nyy 复制当前行及以下n行
dd 删除当前行
ndd 删除当前行及以下n行
:set nu 设置行号
:set nonu 取消行号
G 跳转至最末行
gg 跳转至最首行
u 撤销
n+shift+g 光标跳转至指定(n)行
三、关机重启、用户管理
shutdown -h now 立即关机
shutdown -h n n分钟后关机(同时向所有使用者广播)
shutdown -r now 立即重启计算机
halt 立即关机(同上)
reboot 立即重启计算机
sync 将内存数据写入硬盘
四、用户管理
su - 用户名 切换用户
logout 注销当前用户
useradd 用户名 增加一个用户(默认目录/home/用户名)
user -d 路径 指定目录下增加用户
passwd 用户名 修改密码
userdel 用户名 删除用户,但是保留家目录
userdel -r tom 删除用户,同时删除家目录
id 用户名 查看用户信息
whoami 查看当前用户信息
groupadd 组名 增加一个组
groupdel 组名 删除一个组
user -g 组名 用户名 增加用户时将其加入组
usermod -g 组名 用户名 修改现有用户的组为指定组
usermod -d 目录名 用户名 修改现有用户初始登录目录
init n 切换运行级别(0:关机 1:单用户 3:多用户状态有网络服务 5:图形界面 6:重启)
运行级别一共有七种
systemctl get-default 查看当前运行级别
systemctl set-default TAGET.target 修改当前运行级别(multi-user.target 5 graphical.target 3)
用户和组相关文件
/etc/passwd 用户配置文件
/etc/shadow 口令配置文件
/etc/group 组的配置文件
五、文件目录指令
man 命令或配置文件 查看man手册帮助
help 命令 获取shell内置命令的帮助信息
pwd 显示当前工作目录的绝对路径
ls 显示当前目录所有文件和目录
ls -a 显示当前目录所有文件和目录(包括以.开头的隐藏文件)
ls -l 单列输出文件详细信息
ls -lh 按照人更容易看清楚的形式显示
cd 切换到指定目录
cd ~(cd : ) 回到当前用户的家目录
cd …(只有两个点) 回到当前目录的上一级目录
mkdir 创建目录
mkdir -p 创建多级目录
rmdir 删除空目录
rm -rf 递归删除指定目录
touch 创建空文件
cp source dest 拷贝文件到指定目录
cp -r 递归复制整个文件夹
\cp(\cp -r ) 强制覆盖不提示
rm 移除文件或目录
rm -r 递归删除整个文件夹
rm -f 强制删除不提示
mv 移动文件(夹)或重命名
mv oldNameFile newNameFile 重命名(文件在同一个目录下)
mv oldNameFile oldNameFile 移动文件(不在同一个目录)
mv oldNameFile newNameFile 移动文件并重命名(不在同一个目录)
cat 文件路径 查看文件内容
cd -n 查看文件内容并显示行号
more(基于vi的文本过滤器)
space 向下翻一页
enter 向下翻一行
q 立即退出more
Ctrl+F 向下滚动一屏
Ctrl+ B 返回上一屏
= 输出当前行号
:f 输出文件名和当前行的行号
less(类似动态加载,对于大型文件具有较高效率)
less 文件名 查看文件
space 向下翻动一页
[pagedown] 向下翻动一行
[pageup] 向上翻动一行
/字串 向下搜寻;n:向上查找,N:向下查找
?字串 向上搜寻;n:向上查找,N:向下查找
q 离开less这个程序
echo 输出内容 输出内容到控制台
head 文件名 查看文件头10行内容
head -n 数字 查看文件头指定行数的内容
tail 文件名 查看文件末尾10行内容
tail -n 数字 文件名 查看文件末尾指定行数的内容
tail -f 文件名 实时追踪该文档的所有更新(Ctrl+C 退出)
> 输出重定向(覆盖)
>> 追加
ls -l >文件 列表的内容写入文件中(覆盖)
ls -al >>文件 列表的内容追加到文件末尾
cat 文件1>文件2 将文件1的内容覆盖到文件2
echo “内容”>>文件
ln 软连接,主要存放链接其他文件的路径(类似于Windows的快捷方式)
ln -s 原文件或目录 软连接名 创建一个软连接
history 查看已经执行过的历史指令
history 数字 查看已经执行过最近10条历史指令
!数字 执行指定标号的历史指令
六、时间日期类
date 显示当前日期
date +%Y 显示当前年份
date +%m 显示当前月份
date +%d 显示当前是哪一天
date ”+%Y-%m-%d %H:%M:%S“ 显示年月日时分秒
date -s 字符串时间 设置当前时间(date “2021-11-10 11:06:30”)
cal 显示本月日历
cal 年份 显示指定年份日历
七、搜索查找类
find 向下递归遍历子目录(find [搜索范围] [目标])
find 搜索范围 -name 目标文件 根据指定文件名查找文件
find 搜索范围 -user 目标用户 查找指定用户所有文件
find 搜索范围 -size 目标文件大小 根据指定的文件大小查找文件我(+n大于 -n小于 n等于)
locate 快速定位,事先建立数据库,无需遍历整个文件系统
locate 目标文件 搜索文件
updatedb 创建locate文件库
which 指令 查看指令在哪个目录下
管道符号| 表示将前一个命令的输出结果传递给后面的命令处理
wc -l 统计数量
grep 过滤查找
grep [选项] 查找内容 源文件
grep -n 查找内容 源文件 显示匹配行及行号
grep -i 查找内容 源文件 忽略字母大小写
源文件 | grep 查找内容 通过管道命令查找
“^-” 以-开头
gzip 文件 压缩文件(后缀.gz)
gunzip 文件.gz 解压缩
zip 压缩包名.zip 文件 压缩文件
zip -r 压缩包名.zip 目录 递归压缩,压缩目录
unzip 文件.zip 解压缩
unzip -d 目录 文件.zip 解压缩到指定目录
tar(后缀.tar.gz)
tar [选项] 压缩文件名.tar.gz 目录
-c 新建打包文件
-v 显示显示详细信息
-f 指定压缩后的文件名
-z 通过gzip方式压缩或解压
-x 解压文件(-C解压到对应的目录)
八、文件目录所有者
ls -alh 查看所有文件目录及其所有者
chown 用户名 文件名 修改文件所有者
chgrp 组名 文件名 修改文件所在组
文件权限
- 0位
普通文件
d 目录
l 连接
c 字符设备文件(鼠标、键盘)
b 块设备(硬盘)
-
1-3位 所有者对该文件拥有的文件
-
4-6位 所属组对该文件拥有的权限
-
7-9位 其他用户拥有该文件的权限
rwx权限详解
作用到文件
r 可读(read)
w 可写(write,但不能删除,删除文件需要文件所在目录的写权限)
x 可执行(execute)
作用到目录
r 可读
w 可修改(对目录内创建、删除、重命名)
x 可执行:可以进入该目录
修改权限
第一种:通过+ - =
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
chmod u=rwx,g=rwx,o=rwx 文件或目录 修改权限
chmod o+w 增加权限
chmod a-x 减少权限
第二种:通过数字
r=4 w=2 x=1
ch 7(1-3)5(4-6)1(7-9) 文件或目录
修改文件所有者
chown newowner 文件/目录 改变所有者
chown newwoner:newgroup 文件/目录 改变所有者和所在组
chgrp 组名 文件名 修改文件所在组
-R 如果是目录,则使其下所有子文件递归生效
crond任务调度
crontab 周期执行
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
service crond restart 重启任务调度
*/ * * * * *
*号
第一个 第几分钟(0到59)
第二个 第几个小时(0到23)
第三个 第几天(1-31)
第四个 第几月(1-12)
第五个 星期几(0-7,0和7都代表星期日)
***** 代表任何时间
, 表示不连续时间
- 代表连续时间范围
*/n 代表隔多久执行一次
at定时任务
ps -ef 检测当前正在运行的所有进程(| grep atd 检测atd是否在运行)
at [选项] [时间] 一次性定时计划任务
-m 当指定任务完成后,将给用户发送邮件,即使没有标准输出
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q<队列> 使用指定的队列
-f<文件> 从指定文件读入任务而不是从标准输入读入
-t<时间参数> 以时间参数的形式提交要运行的任务
atrm 编号 删除任务
磁盘
lsblk 系统分区挂载情况(-f 更加清楚)
fdisk /dev/sdb(硬盘名) 分区命令
m 显示命令列表
p 显示磁盘分区(同fdisk -l)
n 新增分区
d 删除分区
w 写入并退出
q 不保存修改并退出
mkfs -t ext4 /dev/sdb1 创建一个指定的(-t)文件系统(格式化)
mount /dev/sfb1 目录 将分区挂载到指定目录
umount /dev/sdb1(or umouut 挂载目录) 卸载
修改/etc/fstab 实现永久挂载(mount -a 立即生效)
df 查看文件系统磁盘空间使用情况
-h 用常见格式显示大小
du [选项] [目录] [–max-depth=1] 查询指定目录的磁盘占用情况(未指定,默认当前目录)
-h 用常见格式显示大小
-s 指定目录占用大小汇总
-a 含文件
-c 列出明细的同时,增加汇总值
–max-depth=1 子目录深度
tree 以树状显示目录结构
Linux网络配置
ifconfig 显示当前有效的网络接口(Windows下为ipconfig)
vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改网络配置文件
service network restart 重启网络服务
设置主机名和hosts映射
Windows hosts 路径 C:\Windows\System32\drivers\etc
Linux hosts 路径 /etc/hosts
九、进程管理
ps 查询系统中正在执行的进程
-a 显示当前终端所有进程信息
-u 以用户的格式显示 进程信息
-x 显示后台进程运行的参数
显示信息选项
PID 进程识别号
TTY 终端机器号
VSZ 进程占用虚拟内存空间
RSS 进程占用物理内存空间
TIME 此进程所消cpu时间
STAT 进程状态
START 进程启动时间
COMMAND 启动进程所用的命令或参数
ps -aux | more 分页显示
ps -aux | grep [] 过滤显示
ps -ef 全格式显示当前所有的进程(-e所有进程 -f全格式)
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU用于计算执行的因子(值越大,CPU密集型计算,优先级低;值越小,I/O密集型,优先级高)
STIME 进程启动时间
CMD 启动进程所用的命令或参数
kill [选项] 进程号 终止进程
-9 强迫进程立即停止
killall 进程名称 终止进程(支持通配符)
pstree 树状显示进程
-p 显示进程的PID
-u 显示进程的所属用户
服务管理
service 服务名 [选项](/etc/init.d中查看service管理的服务)
start
stop
restart
reload 重载
status 查询服务状态
init n 切换运行级别(0:关机 1:单用户 3:多用户状态有网络服务 5:图形界面 6:重启)
systemctl get-default 查看当前运行级别
systemctl set-default TAGET.target 修改当前运行级别(multi-user.target 和 graphical.target )
chkconfig 给服务的各个运行级别设置自启动/关闭(chkconfig管理的服务在/etc/init.d查看)
chkconfig --list 查看服务
chkconfig --level 5 服务名 on/off 设置服务在运行级别下自启动
systemctl
systemctl(在/usr/lib/sysytemd/system 查看管理的服务)
start
stop
restart
reload 重载
status 查询服务状态
systemctl list-unit-files 查看服务开机启动状态
systemctl enable 服务名 设置服务开机启动
systemctl disable 服务名 关闭服务开机启动
systemctl is-enabled 服务名 查询某个服务是否自启动
netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 不显示别名,能显示数字的全部转化为数字(直接使用IP地址,而不通过域名服务器)
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名
-a 显示所有连线中的Socket
防火墙
firewall-cmd --permanent --add-port=端口号/协议 打开端口
firewall-cmd --permanent --remove-port=端口号/协议 关闭端口
firewall-cmd --reload 重新载入,使设置生效
firewall-cmd --query-port=端口/协议 查询端口是否开放
firewall-cmd --zone=public --list-ports来查看所有端口
动态监控进程
top [选项] 显示正在执行的进程
-d 指定top每隔几秒刷新(默认3秒)
-i 使top不显示任何闲置或者僵死进程
-p 通过监控进程ID来仅仅监控某个进程的状态
交互操作
P 以CPU使用率排序(默认)
M 以内存使用率排序
N 以PID排序
q 退出top
监控网络状态
netstat [选项]
-an 按一定顺序排列输出
-p 显示那个进程在调用
rpm包的管理
rpm -qa 查询已安装的rpm列表
rpm -q 软件包名 查询软件包
rpm -qi 软件包名 查询软件包信息
rpm -ql 软件包名 查询软件包中的文件
rpm -qf 文件路径 查询文件所属软件包
rpm -e rpm包的名称 卸载rpm包
rpm -e --nodeps rpm包的名称 强制卸载
rpm -ivh rpm包的全路径文件
i 安装
v 提示
h 进度条
yum(指定服务器下载rpm包并安装,自动处理依赖关系)
yum list 查询yum服务器软件列表
yum install yum包名 下载安装