preloader

曾梦想仗剑走天涯,后来 bug 多没去!

Liunx-基础学习笔记

Menu

Linux

话不多说,技术需要不断的学习与实践,下面的内容对于初学者已经足够用了。如果想要深入学习,去看看这本书 《Linux 就该这么学》 ,我就是看这本书学的,由浅入深 ,不断实践才会有提升。

入门:了解Linux

Linux系统内核,套件系统:

  • RHEL红帽
  • CentOs社区企业系统
  • Fedora 桌面版
  • openSUS
  • Debian
  • Ubuntu

安装Linux 环境

  1. 虚拟机环境

    1. 虚拟机VM
    2. 安装linux 系统
  2. linux系统配置

    1. 选择定制版SOFTWARE SELECTION
    2. 选中 Server with GUI
    3. NETWORK&HOSTNAME 设置hostname
    4. DESTINATION 分区
    5. Begin Installation 开始安装
    6. 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 脚本工作方式:

  1. 交互式(Interactive):输入一条命令立即执行
  2. 批处理(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
  1. 整数比较运算符
命令 作用
-eq 是否等于
-ne 不等于
-gt 大于
-lt 小于
-le 是否等于或小于
-ge 是否大于或等于
  1. 字符串比较运算符
命令 作用
= 字符串内容是否相同
!= 字符串内容是否不同
-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