现在的服务都是部署在宝塔的基础上,基本是0技术要求,学习Linux,准备在下半年的服务换成原生的linux,不再依赖第三方控制面板。以下学习都是以Centos 7
为基础。
常用命令
init 0
: 关机init 6
: 重启ip addr
: 获取 ip 地址pwd
: 显示当前路径clear
或者ctrl + l
: 清屏history
:查看历史命令! + num
:使用历史命令
用户操作
- 添加用户:
useradd zhangsan
- 设置密码:
passwd zhangsan
- 删除用户:
userdel -rf zhangsan
Linux 常见目录结构
root 目录:linxu 超级权限root 的主目录。*
home 目录:系统默认的用户主目录,如果添加用户是不指定用户的主目录,默认在/home
下创建与用户同名的文件夹。*
bin 目录:存放系统所需要的重要命令,比如文件或目录操作的命令ls、cp、mkdir 等,另外
/usr/bin 也放了一些系统命令。这些命令对应着文件都是可以执行的。*
sbin 目录:存放只有root 超级管理员才能执行的程序*
boot 目录:存放着linux 启动时内核及引导系统程序所需要的核心文件,内核文件和grub
系统引导管理器都位于此目录。
dev 目录:存放这linux 系统下的设备文件,如光驱等。
etc 目录:存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如/etc/fstal
存放系统分析信息。*
mnt 目录: 临时文件挂载目录、也可以说是测试目录
opt 目录: 第三方软件存放目录*
media 目录:即插即用型设备挂载点,光盘默认挂载点,通常光盘挂载于/mnt/cdrom 下。
tmp 目录:临时文件夹。*
usr 目录:应用程序存放目录,安装linux 软件包是默认安装到/usr/local 目录下。*
var 目录:目录经常变动,/var/log 存放系统日志,/var/log 存放系统库文件。*
Linux 文件管理
创建文件:
touch file
删除文件:
rm -rf file
-r: 递归的删除目录下面文件以及子目录下文
-f: 强制删除,忽略不存在的文件,不给出提示
移动文件/修改文件名
mv file1 file2
查看文件内容
cat file
复制文件
cp file1 file2
批量创建文件
touch file{1..10} touch -rd file{1..10}
编辑文件
vi file
管道方式查看文件
cat file | head -3 // 查看前3行 cat file | tail -3 // 查看后3行
文件查找
方法1:
find 目录 -name 文件名
方法2(更快):
// 建立数据库 updatedb // 数据库中查找 locate aa.txt
Linux 目录管理
创建目录
mkdir dir1 dir2 dir3
重命名/移动目录
mv dir 1 dir2
删除目录
rm -rf dir1
复制目录
cp -rf dir1 dir2
显示目录结构
tree(需要安装)
Linux 文件类型
查看文件类型
ll
常见文件类型
-rw-r—r— "-“开头的都是普通文件; drw-r—r— "d"开头的是目录文件; lrw-r—r— "l"开头的文件都是软链接文件;
Linux 打包压缩
Zip
压缩:
zip -r public.zip public
-r 表示将指定的目录下的所有子目录以及文件一起处理
解压:
unzip public.zip -d dir
查看压缩包内容
unzip -l public.zip
gz 压缩包
tar czvf public.tar.gz public // 压缩 tar xzvf public.atr.gz // 解压 tar tf public.atr.gz // 查看 tar cvf public.tar public // 仅打包,不压缩 tar xvf public.tar // 解压无gz的包
Linux 别名管理
// 添加别名
alias aa='cat /etc/httpd/conf/httpd.conf'
// 删除别名
unalias aa
// 查看别名
alias
内存、cup 管理
top
第一行
top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05
依次对应:系统当前时间 up 系统到目前为止i 运行的时间, 当前登陆系统的用户数量, load average 后
面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。
第二行
Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie
依次对应:tasks 表示任务(进程),133 total 则表示现在有133 个进程,其中处于运行中
的有1 个,132 个在休眠(挂起),stopped 状态即停止的进程数为0,zombie 状态即僵尸
的进程数为0 个。top 命令的第三行,cpu 状态:
%Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
只看空闲就可以了:cpu 空闲率为99.3%
依次对应:
us:user 用户空间占用cpu 的百分比
sy:system 内核空间占用cpu 的百分比
ni:niced 改变过优先级的进程占用cpu 的百分比
id:空闲cpu 百分比
wa:IO wait IO 等待占用cpu 的百分比
hi:Hardware IRQ 硬中断占用cpu 的百分比
si:software 软中断占用cpu 的百分比
st:被hypervisor 偷去的时间top 命令的第四行,内存状态:
KiB Mem : 2897496 total, 1995628 free, 191852 used, 710016 buff/cache
总内存:2.76g 空闲:1995628/1024/1024=1.9g 已经使用0.18g 缓存区内存0.67g
缓冲区是从主内存中特地预留出的内存,用来存放特定的一些信息,例如从磁盘中取得的文件表,程序正
在读取的内容等等top 命令第七行,各进程的监控:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
依次对应:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice 值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进程
%CPU — 上次更新到现在的CPU 时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU 时间总计,单位1/100 秒
COMMAND — 进程名称(命令名/命令行)
uptime
uptime
top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05
1.服务器工作时间
2.在线用户
3.平均负载一分钟,五分钟,十五分钟的负载情况
查看登录用户
who
:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间who am i
: 显示出当前终端上使用的用户last
:显示近期用户或终端的登录情况
进程管理
查看进程
pstree # 查看进程树 pstree -ap #显示所有详细(进程、子进程、进程号) pstree | grep httpd pstree -ap | grep httpd
关闭进程
pkill httpd # pkill 进程的名字 kill 2245 # 进程号 kill -9 2245 # 强制杀死进程
查看端口
netstat -tunpl |grep httpd
-t 或–tcp 显示TCP 传输协议的连线状况。
-u 或–udp 显示UDP 传输协议的连线状况。
-n 或–numeric 直接使用IP 地址,而不通过域名服务器。
-p 或–programs 显示正在使用Socket 的程序识别码和程序名称。
-l 或–listening 显示监控中的服务器的Socket。
查看硬盘信息
df
df -h # 以人们易读的方式显示,总共多少g 用了多少g
df /home # 查看该文件夹所在磁盘的使用情况
使用 systemctl 管理服务
systemctl 就是service 和chkconfig 这两个命令的整合,在CentOS 7 就开始被使用了,systemctl
是系统服务管理器命令,它实际上将service 和chkconfig 这两个命令组合到一起。
systemctl start nginx # 启动服务
systemctl stop nginx # 关闭服务
systemctl restart ngonx # 重启服务
systemctl enable httpd # 设置开机自启动
systemctl disable nginx # 停止开机自启动
systemctl list-unit-files|grep enabled # 列出所有自启动服务
systemctl reload nginx # 重新加载配置
Firewakkd 防火墙设置
基本使用
systemctl start firewalld # 启动
systemctl stop firewalld # 关闭
systemctl status firewalled # 查看状态
systemctl disable firewalld # 开机禁用
systemctl enable firewalld # 开机启用
配置
firewall-cmd --state # 显示状态
firewall-cmd --zone=public --list-ports # 查看所有打开的端口
firewall-cmd --reload # 更新规则
firewall-cmd --zone=public --add-port=80/tcp --permanent # 开启80端口,–permanent 永久生效,没有此参数重启后失效
firewall-cmd --reload # 重新载入
firewall-cmd --zone=public --query-port=80/tcp # 查看端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 删除