Linux
话不多说,技术需要不断的学习与实践,下面的内容对于初学者已经足够用了。如果想要深入学习,去看看这本书 《Linux 就该这么学》 ,我就是看这本书学的,由浅入深 ,不断实践才会有提升。
入门:了解Linux
Linux系统内核,套件系统:
- RHEL红帽
- CentOs社区企业系统
- Fedora 桌面版
- openSUS
- Debian
- Ubuntu
安装Linux 环境
虚拟机环境
- 虚拟机VM
- 安装linux 系统
linux系统配置
- 选择定制版SOFTWARE SELECTION
- 选中 Server with GUI
- NETWORK&HOSTNAME 设置hostname
- DESTINATION 分区
- Begin Installation 开始安装
- ROOT PASSWORD
执行命令
命令名称 [命令参数] [命令对象]
–完整选项 和 -字母缩写 区分
命令参数 | 格式示例 |
---|---|
长格式 | man –help |
短格式 | man -h |
系统工作命令
命令 | 作用 |
---|---|
echo | 显示 |
date | 时间 |
reboot | 重启服务 |
poweroff | 关机 |
wget + url | 下载文件 |
ps | 进程 |
top | 运维状态 |
pidof | 查进程pid |
kill、killall | 结束进程、结束服务程序 |
快捷键 Ctrl + C 立即停止正执行的命令
系统状态命令
命令 | 作用 |
---|---|
ifconfig | 网卡配置、状态 |
uname | 内核、版本 |
uptime | 负载状态值越低越好 生产不超过5 |
free -h | 内存使用情况 |
who | 当前登录信息 |
last | 登录记录 |
history | 默认1000条执行过的命令记录!条数 调用用过的命令 |
history -c | 清空当前用户命令记录 |
sosreport | 收集系统信息输出诊断文档 |
工作目录切换命令
命令 | 作用 |
---|---|
pwd | 当前目录路径 |
cd | 切换工作路径 |
ls -a | 全部目录文件 |
ls -l | 展示文件属性、大小 |
ls -ld [文件] | 文件权限、属性 |
文本文件编辑命令
命令 | 作用 |
---|---|
cat | 查看内容较少文本内容 |
more | 查看内容多文本内容 |
head -n 行数 [文件] | 查看前N行代码 |
tail -n 行数 [文件] | 查看最后N行代码 |
tail -f | 持续刷新查看文件内容 |
tr [原始字符][替换字符] | 替换掉文件内容 |
wc | 统计行数、字数、字节数 |
stat | 文件存储信息和时间 |
cut | 按‘列’ 提取文本字符 |
diff | 多文件对比差异 |
diff –brief | 显示比较后的结果 |
diff -c [文件名] | 显示具体不同配合以上命令 |
文件目录管理命令
命令 | 作用 |
---|---|
touch | 创建空白文件或设置时间 |
mkdir -p | 创建递归嵌套叠层目录 |
cp [源][目标文件] | 复制文件 |
mv | 剪切文件 |
rm | 删除文件 |
dd if=输入文件名 of=输出文件名 bs=块大小 count=个数 | 按块复制文件或转换文件 |
file | 查文件类型 |
打包压缩与搜索命令
命令 | 作用 |
---|---|
tar | 对文件打包或解压 |
tar -czvf | x 解压 c 创建压缩文件、z 指定Gzip格式 v 显示解压缩过程 f 解压缩目标文件名 |
grep | 关键词搜索 |
grep -n | 显示搜索行号 |
grep -v | 反向选择关键词以外的信息 |
find | 按指定条件查找文件 |
管道符、重定向、环境变量
输入输出重定向
标准输入重定向(STDIN,描述符0)文件->命令
标准输出重定向(STDOUT,描述符1)命令->文件
重定向符号 | 作用 |
---|---|
命令 > 文件 | 标准输出重定向文件(清空原文件数据) |
命令 2> 文件 | 错误输出重定向文件(清空原文件数据) |
命令 >> 文件 | 标准输出重定向文件(追加原有内容的后面) |
命令 >> 文件2>&1 | 标准与错误共同写入文件 |
管道符 :命令A | 命令B | ..
通配符 :星号*匹配多个、问号?匹配单个、[0-9] 匹配内部中一个
转义符 :
1. 反斜杠\ 变量转字符串
2. 单引号'' 所有变量转字符串
3. 双引号"" 保留不转义
4. 反引号`` 命令执行返回结果
环境变量
自定义命令:alias 别名=命令
取消别名: unalias 命令
PATH 路径组成的变量
变量名 | 作用 |
---|---|
HOME | 用户主目录 |
SHELL | 用户使用解析器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
MALL | 邮件保存路径 |
LANG | 系统语言 |
RANDOM | 生成一个随机数 |
PS1 | Bash解析器的提示符 |
PATH | 定义解析器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |
自定义全局变量 export $变量名 =/路径/..
Vim编辑器 与 Shell 命令脚本
Vim 编辑器使用
输入模式<---->命令模式<--->末行模式--->---->
- 输入模式:控制光标,复制、粘贴、删除、查找
- 命令模式:文本录入
- 末行模式: 保存或退出设置编辑环境
Vim常用命令
命令 | 作用 |
---|---|
dd | 剪切(删除)光标所在行 |
5dd | 剪切(删除)光标开始的5行 |
yy | 复制光标所在行 |
5yy | 复制光标开始的后5行 |
n / N | 配合?/ 字符串查询 上个/下个 |
u | 撤销上一步操作 |
p | 粘贴 复制或剪切的内容到光标后面 |
末行模式常用命令
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:q! | 强制保存 |
:wq! | 强制保存退出 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
:s /one/two | 当前光标所在行第一个one替换two |
:s /one/two/g | 当前光标所在行所有one替换two |
?字符串 | 文本中搜索该字符串 |
/字符串 | 文本中搜索该字符串 |
编写 Shell 脚本
Shell 脚本工作方式:
- 交互式(Interactive):输入一条命令立即执行
- 批处理(Batch):完整的 shell 脚本,一次性执行诸多命令
编写流程
[Docker]vim shell.sh // 创建脚本文件编写 后缀为.sh 标识
基本构造:
#!/bin/bash #用哪种 Shell 解释器执行脚本
#用在目录快速切换 #此行作为注释使用
cd ~ #写入 linux 命令
ls
执行方式:
bash shell.sh // bash 解释器执行脚本
[root@macbookPro ~] bash shell.sh one two three // 脚本传入参数one.. 对应脚本内 $1 $2 $3
条件判断语句
[ 条件表达式 ] // 左右均有空格
&& 与 、|| 或、 ! 非 等同于 取相反值
比较后返回值
echo $? // 1 不成立 false 0 成立 true
- 整数比较运算符
命令 | 作用 |
---|---|
-eq | 是否等于 |
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
-le | 是否等于或小于 |
-ge | 是否大于或等于 |
- 字符串比较运算符
命令 | 作用 |
---|---|
= | 字符串内容是否相同 |
!= | 字符串内容是否不同 |
-z | 字符串内容是否为空 |
条件控制语句【if】
if 条件测试操作 1
then 执行命令序列
elseif 条件测试操作 2
then 执行命令序列2
else
执行命令序列3
fi
条件循环语句【for】
for 变量名 in 取值列表
do
命令序列
done
条件循环语句【while】
while 条件测试操作
do
命令序列
done
条件循环语句【case】
类似于 php switch 条件中的值 执行不同内容
case 变量值 in
模式1) // 一般做判断条件、值范围
命令序列1
;;
模式2)
命令序列1
;;
...... // 此处省略
*)
默认命令序列
esac