1. 指令操作
1. 文件操作
(1). cd
- 切换指令
-
cd ~ //进入用户家目录 cd ~用户名 //进入用户家目录 cd - //进入上次所在目录
(2). ls
- 显示目录下的文件
参数 含义 la 全部列出,包括隐藏 lR 递归且列表列出 ll 列表列出文件
(3). mkdir/rmdir
- 创建文件夹
-
mkdir -p test1/test2 //如果test1目录不存在,则自动创建 mkdir -m=777 test //赋予test文件夹777权限 rmdir test //删除文件夹
(4). touch
- 创建或修改文件
参数 含义 -a 修改访问时间(数据修改时间会跟随变化) -c 修改时间参数(状态修改时间、访问时间、数据修改时间) -d 后跟预修订的日期(只修改访问时间、数据修改时间,格式:"2024-07-15 12:32:56") -m 只修改数据修改时间 -t 后跟预修订访问时间及状态修改时间(YYMMDDhhmm) -r 复制指定文件的时间戳给新文件 touch -r 1.txt test.txt
(5). stat
- 查看文件状态
-
stat filename.txt
(6). cat
- 查看文件内容
-
cat test1.txt //查看test1.txt内容 cat test1.txt test2.txt > test3.txt //将test1.txt和test2.txt的内容合并且覆盖显示到test3.txt中
(7). rm
- 删除文件或目录
参数 含义 -f 强制删除 -i 提示删除 -r 递归删除
(8). more
(9). head
- 查看文件前几行
参数 含义 -n K 显示前K行,默认10行 -c K 显示前K字节 -v [文件名] 显示文件名
(10). tail(同head)
(11). grep
-
筛选作用
参数 含义 -c 列出包含内容的行数 -w 把包含内容作为字符查找(精确查找) -i 忽略大小写 -l 列出带有匹配行的文件名 -n 列出行号 -v 列出没有匹配的行 grep -r 'pattern' /var/log/ //递归搜索目录中包含指定字符串的文件 find / -type f -newermt 2024-03-18 ! -newermt 2024-03-19 -exec grep -H "flag" {} \;
(12). tar
-
打包及解包
-
tar -vcf test.tar test //将test目录打包成test.tar
参数 含义 -c 将多个文件或目录打包 (打包时用) -C 压缩时能够压缩其他目录下的文件 -f 指定压缩包的文件名 -v 显示打包或解包具体过程(可视化) -t 只查看tar包中有那些文件或目录 -x 解包.tar文件 -z 使用gzip压缩(打包文件常跟后缀.gz) -j 使用bzip2压缩(后跟.bz) -J 使用xz压缩(后跟.xz) --exclude 压缩时排除文件或目录 1. 压缩多个文件或目录并且制定压缩包名 tar -cf archive.tar file1 file2 directory/ 2. 解压压缩包 tar -xf archive.tar 3.查看压缩包内容 tar -tf archive.tar 4. 使用gzip压缩 tar -zf archive.tar.gz file1 5. 如何在压缩文件时添加其他目录的文件 tar -cf archive.tar -C /path/to/directory file1 file2
(13). zip
- 压缩文件或文件夹
-
zip -vr test.zip test //将test目录打包为test.zip
参数 含义 -r 递归 -m 压缩文件后,删除原始文件 -v 可视化 -d 删除压缩包里面的某项文件 -u 往压缩包里面添加新文件 -q 压缩时不显示命令执行过程
(14). unzip
- 解压zip压缩包
-
unzip test.zip //将test.zip解压
参数 含义 -d 指定解压目录 -n 不覆盖已存在文件 -l 显示压缩包内容 -v 显示压缩包更多数据 -t 检测是否损坏 -x a.txt 解压文件,但不解压a.txt文件
(15). find
- 查找文件
-
find / -name "*.txt" //查找.txt文件
参数 命令 ~ 表示$HOME目录 . 表示当前目录 / 表示根目录 参数 命令 -name 按照名字查找 可用通配符*来查找 -operm 安装权限查找 -prune 不在当前指定目录寻找 -user 文件属主来查找 -group 文件所属组来查找 -nogroup 查找无有效所属组的文件(后不跟参数) -nouser 查找无有效属主的文件(后不跟参数) -type 按照文件类型查找(f:文件,d:目录) -exec 指定执行的命令
(16). cp
-
复制文件
参数 含义 -r 递归复制 -i 带有提示的复制 -f 强制复制,直接覆盖 cp file1.txt file2.txt //复制file1.txt文件为file2.txt cp file1.txt file2.txt /home/centos/Desktop //将两个文件复制到指定路径
2. 其他操作
kill -9 [pid] //结束进程
lsof -i:80 //查看80端口的进程
ps -aux //获取Linux上的进程信息 a:所有,u:用户
指令 | 含义 |
---|---|
pwd | 显示当前目录 |
hostname | 显示当前主机名及用户名 |
whoami | 显示当前用户 |
sync | 把内存的数据同步到磁盘 |
halt | 立刻关机(需要root权限) |
poweroff | 立刻关机 |
shutdown | -c:取消前一个关机指令 -h:关机 -r:重启(后可跟24时制,分钟,now) |
init | 0:关机,3:纯文本模式,5:图像模式,6:重新启动 |
3. 系统服务操作
systemctl start httpd //启动httpd服务
systemctl enable httpd //开启httpd服务
systemctl status httpd //查看httpd服务的情况
2. 用户与用户组
1. 用户
(1). 概念
(2). 分类
-
普通用户
-
超级用户
-
虚拟用户:不能登录系统,方便于管理系统,如****bin、adm、nologin、nobody用户等
3. 相关命令
(1). useradd
选项 含义 -m 创建用户主目录 -d 指定用户主目录 -s 指定用户默认shell -g 指定用户主组 -G 指定用户附加组 1. 添加新用户 john,并创建主目录 /home/john,指定默认 shell 为 /bin/bash。 useradd -m -d /home/john -s /bin/bash john 2. 添加新用户 alice,并将其添加到 developers 和 admin 组。 sudo useradd -m -G developers,admin alice
(2). usermod
选项 含义 -s 修改用户默认shell -d 修改用户的主目录 -g [组名] [用户名] 修改用户主组 -G 修改用户附加组 -l 修改用户名 -L 锁定用户账户 -U 解锁用户账户 -e 设置用户账户的过期日期 -c 修改用户的注释 1. 将用户 john 的默认 shell 修改为 /bin/zsh usermod -s /bin/zsh john 2. 将用户mike的主目录从/home/mike修改为/data/mike,并将现有主目录内容移动到新目录 usermod -d /data/mike -m mike 3. 将用户 alice 的主组修改为 developers usermod -g developers alice 4. 将用户 alice 从 developers 组中移除,并添加到 designers 组 usermod -G designers alice 5.将用户 alice 添加到 designers 组,但不从原组删除 usermod -a -G designers alice 6. 将用户 oldname 的用户名修改为 newname usermod -l newname oldname 7. 锁定用户 john 的账户 usermod -L john 8. 解锁用户john的账户 usermod -U john 9. 设置用户 alice 的账户过期日期为 2024 年 12 月 31 日。 usermod -e 2024-12-31 alice 10. 将用户 john 的注释修改为 "John Doe, System Administrator" usermod -c "John Doe, System Administrator" john
(3). userdel
命令 含义 userdel [用户名] 删除用户 userdel -r [用户名] 删除用户包括用户家目录 (4). 其他指令
命令 含义 passwd [用户名] 修改用户密码 gpasswd [用户组] 修改用户组密码 su [用户名] 切换用户身份 id [用户名] 显示用户信息(组名,组编号,用户名,用户编号)
2. 用户组
(1). 概念
- 具有相同权限的一组用户
- 对用户****进行管理及访问控制权限的手段
(2). 相关文件配置
1. /etc/passwd
- 存储当前系统中所有用户的信息
2. /etc/shadow
- 存储当前系统中所有用户组的信息
3. /etc/group
- 存储用户组密码的一类信息
4. /etc/gshadow
- 存储用户组密码的一类信息
(3). 相关命令
①groupadd
命令 | 含义 |
---|---|
groupadd [组名] | 添加用户组 |
groupadd -g [组编号] [组名] | 添加用户组时指定组编号 |
groupadd -r [系统组名] | 创建系统用户组 |
②groupmod
命令 | 含义 |
---|---|
groupmod -n [新组名] [旧组名] | 修改用户组名 |
groupmod -g [组编号] [组名] | 修改用户组编号 |
③groupdel
命令 | 含义 |
---|---|
groupdel [组名] | 删除用户组 |
3. 软件安装方式
1. yum方式
(1). 定义
- 基于RPM包构建的软件更新机制,可以自动解决包之间的依赖关系
(2). 源存放目录
- /etc/yum.repos.d
- 所有源文件以.repo结尾
(3). 常用选项
参数 | 作用 |
---|---|
install | 安装软件 |
update | 升级软件 |
remove | 卸载软件 |
clean | 清除缓存 |
search | 搜索软件 |
yum search [软件名]
yum install [软件名]
yum update [软件名]
yum remove [软件名]
(4). 其他用法
yum info [软件包名] //查看软件详细信息
yum list installed //查看已经安装的所有文件
yum install [软件名] -y //跳过所有选项,默认同意
yum update //更新所有软件(不存在的会与云端同步,存在的会替换下载链接)
yum check-update //检查可更新的软件
(5). 换源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //换源
//换源失败,尝试下面两步
sudo yum clean all
sudo yum makecache
2. rpm软件包
(1). 命名格式
(2). 基本用法
rpm -q[子选项] 软件名
参数 | 作用 |
---|---|
-q | 仅查询是否有安装 |
-qa | 列出已经安装的软件 |
-ql | 列出该软件所有的文件与目录所在的完整文件名 |
-qR | 列出与该软件有关的相依软件所含的文件 |
(3). 安装选项及参数
参数 | 含义 |
---|---|
-i | 安装指定的rpm文件 |
-v | 显示安装过程的详细信息 |
-h | 以 # 显示安装的进度 |
-U | 用指定的.rpm文件升级同名包 |
-e | 卸载软件 |
1. 安装一个RPM包
rpm -i package.rpm
2. 升级一个已安装的 RPM 包,或者安装一个新包(如果尚未安装)
rpm -U package.rpm
3. 更新系统中已安装的 RPM 包,要求包的版本高于现有版本
rpm -F package.rpm
4. 卸载一个已安装的 RPM 包
rpm -e package
5. 查询包是否安装
rpm -q package
6. 显示包的详细信息
rpm -qi package
7. 列出包中包含的文件
rpm -ql package
8. 验证已安装的 RPM 包是否被修改
rpm -V package
//在线安装
rpm -ivh http|ftp://xxx.com/xx.rpm
//本地安装
rpm -ivh xx.rpm
3. 源码安装
(1). 定义
- 通过tar包安装
- 不能直接运行,需编译可执行成二进制文件
(2). 优点
- 获取最新版本,及时修复Bug
- 灵活定制软件功能
(3). 应用场合
- 较新版本的应用程序大都以源码形式发布
- 功能无法满足需求时可自定义
- 便于添加新功能
(4). 安装过程
- 安装前,仔细阅读Readme
- 解压源码,跳转到源码解压目录,输入./configure,配置安装目录
./configure --prefix=/usr/local/webserver
- 使用make进行编译(前提是产生了Makefile文件),作用是生成二进制文件
make
- 安装二进制文件(即将二进制文件复制到相应的目录)
sudo make install
- 启动安装好的服务进行测试
./usr/local/webserver/bin/apachectl start
- 在解压目录删除安装产生的临时文件
make clean
- 在解压目录卸载已安装程序(前提Makefile指定过uninstall)
make uninstall
4. 网站搭建(LAMP)
1. LAMP概述
- 是一种常用来搭建动态网站或服务器的开源软件
2. LAMP组件
- Linux
- Apache:Web服务器
- MySQL
- PHP
3. 搭建过程
- 安装httpd(Apache环境)
1.yum -y install httpd httpd-devel httpd-manual mod_ssl 2.systemctl start httpd //启动httpd服务 3.systemctl enable httpd //开机自启httpd服务 systemctl status httpd //查看httpd服务的情况
- 安装mysql数据库
1.yum -y install mariadb-server mariadb 2.systemctl start mariadb //启动数据库服务 3.systemctl enable mariadb //开机自启数据库服务
- 安装PHP语言环境
1.yum -y install php php-common php-gd php-mbstring php-mcrypt php-devel php-xml 2.systemctl restart httpd //重启httpd服务
- 将源代码放入/var/www/html文件夹中
- 网页输入网址启动服务
5. iptables防火墙
1. 含义
- 不是真正的防火墙,而是客户端代理
2. 结构
-
iptables -> tables -> chains -> rules
-
规则链
链名 说明 input 入站数据过滤 output 出站数据过滤 forward 转发数据过滤 prerouting 路由前过滤 postrouting 路由后过滤
3. 语法
iptables -t filter -I INPUT -p icmp -j REJECT
4. 参数
- -p 指定协议类型,例如tcp、udp、icmp
- -j 数据包常见控制类型| 参数 | 含义 |
| ---------------- | ------------------------------------ |
| ACCEPT | 允许通过 |
| REJECT | 拒绝通过,必要时会给出提示 |
| DROP | 直接丢弃,不予回应 |
| LOG | 记录日志信息 | - -t 指定表
- -I 在链的开头或指定序号,插入一条规则
- -m 表示启用扩展功能,一般与-p配合使用
- -d 指定IP地址
- --deport 知道目的端口
- -D 删除链内指定序号的一条规则
- -F 里清空所有规则
注意:
- 不指定表名时,默认指filter表
- 不指定链名时,默认指表内所有链
- 选项、链名、控制类型使用大写字母,其余小写字母
5. 规则查看
- -L 列出所有规则条目
- -n 以数字形式显示地址、端口信息
- -I 以更详细的方式显示规则信息
- 指令
iptables -t filter -I OUTPUT -p icmp -j REJECT //通过ping命令 iptables -n -L OUTPUT //查看OUTPUT链 iptables -n -L INPUT //查看INPUT链 iptables -D OUTPUT 1 //删除output链第一条规则
6. 防火墙
systemctl status firewalld //查看防火墙服务情况
firewall-cmd --state //显示防火墙服务当前运行情况
systemctl enable/disable firewalld //开启/关闭防火墙服务
firewall-cmd --get-active-zones //查看防火墙活动区域情况
--add-service={服务名} //活动区域允许服务
--add-port={端口号/协议} //活动区域允许端口/协议
--remove-service={服务名} //活动区域禁止服务
--remove-port={端口号/协议} //活动区域禁止端口/协议
--reload #重载
--permanent #永久设置
firewall-cmd --zone=public --add-port=80/tcp --permanent //防火墙公共区域永久允许80端口tcp协议的流量通过
firewall-cmd --reload #重载
firewall-cmd:firewalld命令行工具
--add-port: //允许端口通过
--permanent:表示设置为永久
--zone: //设置防火墙区域
7. 服务
1. 软连接
1. 注意
在/etc/init.d文件夹存放脚本,并在/etc/rc.d/rc[0-6].d中存放该脚本的软连接
2. 步骤
- 先建立shell脚本并写入内容.移入/etc/init.d文件夹
touch filename.sh vim filename.sh mv filename.sh /etc/init.d
- 将该脚本赋予软连接,并放入/etc/rc.d/rc3.d中
ln -s /etc/init.d/filename.sh /etc/rc.d/rc3.d/S100filename.sh //K开头的脚本文件表示运行级别加载时需要关闭的,S开头的代表需要执行,后跟数字越小级别越高
- 重启实现该服务
//laffrex脚本内容 nt_time=$(date +"%Y-%m-%d-%H-%M-%S") file_path="/etc/init.d/$current_time.txt" echo "Current time: $current_time" > "$file_path" echo "File created: $file_path"
2. Service服务
步骤
-
给脚本filename文件可执行权限
chmod +x /etc/init.d/filename
-
添加filename.service并编辑
vim /etc/systemd/system/filename.service
//filename.service文件内容 [Unit] Description=Laffrex Service After=network.target [Service] Type=simple ExecStart=/etc/init.d/laffrex [Install] WantedBy=multi-user.target
-
赋予filename.service开机自启等权限
systemctl daemon-reload //刷新启动项 systemctl enable filename.service //开机自启 systemctl start filename.service //开启服务 systemctl status filename.service //查看服务状态
8. 定时任务(cron)
1. 简介
- 是用于在预定时间执行命令的服务,使用crontab来管理定时任务
- 每个用户都有一个对应的crontab文件
- 在后台运行,默认每分钟持续的检查三个文件、目录,读取并执行
/etc/crontab 文件 /etc/cron.* 目录 /var/spool/cron 目录
- 所有用户创建的crontab文件都保存在/var/spool/cron 目录
2. 使用
1. 查看现有定时任务
crontab -l
2. 编辑定时任务
crontab -e
3. 删除定时任务
crontab -r
4. 重启任务调度
service crond restart
3. cron格式
分钟 小时 日期 月份 星期 命令或脚本
4. 实例
1. 0 3 * * * /path/to/your/script.sh //每天凌晨3点执行脚本script.sh
2. */5 * * * * * //每隔五分钟执行一次
3. 0 5 1,15 * * * //每月1号和15号凌晨5点执行一次
9. 命令行快捷键
操作 | 含义 |
---|---|
ctrl +U | 清空至行首 |
ctrl +K | 清空至行尾 |
ctrl +L | 清屏 |
ctrl +C | 中断执行 |
ctrl +Z | 后台挂起(jobs列出作业,fg %[数字] 开启作业几) |
ctrl +D | 退出Shell |
10. Vim操作
1. 输入模式
- 键入 a、i、o 进入,按ESC退出
按键 | 作用 |
---|---|
Page Up/Page Down | 向上/向下翻页 |
退格键Backspace | 删除光标前一个字符 |
DEL | 删除光标后一个字符 |
Home / End | 移动光标到行首/行尾 |
Insert | 输入/替换模式切换 |
2. 一般模式
- 正常进入vim即为一般模式
(1). 光标移动方法
按键 | 作用 |
---|---|
Ctrl + f | 相当于Page Down |
Ctrl + b | 相当于Page Up |
0 / Home | 移动到行首 |
$ / End | 移动到行尾 |
G | 移动到文件尾 |
gg | 移动到文件首 |
n + Enter | 光标向下移动n行 |
(2). 搜索替换
按键 | 作用 |
---|---|
/word | 向光标下寻找字符"word" |
?word | 向光标上寻找字符“word” |
n | 重复前一个搜寻动作 |
N | 反向进行前一个搜寻动作 |
(3). 删除、复制与粘贴
按键 | 作用 |
---|---|
x / X | 相当于Del / Backspace |
dd | 删除当前行 |
ndd | 删除光标向下n行 |
yy | 复制当前行 |
nyy | 复制光标向下n行 |
p / P | 粘贴在光标下一行 / 上一行 |
u | 复原前一个动作,相当于Windows的ctrl + z |
Ctrl + r | 重做上一个动作,相当于Windows的ctrl + y |
.(小数点) | 重复上一个动作 |
3. 命令模式
- 键入 : 进入,按ESC退出
常用指令
指令名 | 含义 |
---|---|
:wq | 保存并退出 |
:q! | 强行退出且不保存 |
:w | 保存当前修改 |
:q | 退出当前文件 |