目录
1. linux目录结构
2. linux基本命令操作
2.1 目录操作命令
2.2 文件操作命令
2.3 查看登录用户命名
2.4 文件内容查看命令
2.5 系统管理类命令
3. bash通配符
4. 压缩与解压缩命令
4.1 压缩和解压缩
4.2 测试网络连通性命令 ping
4.3 vi编辑器
4.4 管道操作(常用)
1. linux目录结构
/bin | bin是Binary的缩写,目录中存放着最经常用的命令,有管理员和员工共享 |
boot | boot存放Linux使用的核心文件,比如链接、镜像等 |
dev | dev是device的缩写,目录中存放linux的外部设备 |
/etc | etc中存放重要的系统配置文件,目录类似windows的控制面板中数据 |
/home | home中是普通用户的家目录 |
/lib | lib是库文件 |
/lost+found | lost+found保存故障期间的文件 |
/media | media中是媒体设备,linux中识别U盘、光驱等 |
/mnt | mnt中是外部文件系统的标准挂载,例如光驱或数码相机 |
/opt | opt中是额外的和第三方软件,放置大型应用程序 |
/proc | proc中是虚拟目录,它是系统内存映射,可以通过直接访问这个目录来获取系统信息 |
/root | root是系统管理员 |
/sbin | sbin存放管理员root使用的程序 s: Super User |
/tmp | sbin存放管理员root使用的程序 s: Super User |
/usr | usr包括用户的应用程序和文件,类似windows的program files目录 |
/var | var中是用户创建的所有可变文件和临时文件,如日志文件(/var/log) |
2. linux基本命令操作
2.1 目录操作命令
cd | 切换到另一个目录 |
pwd | 打印当前所在目录 |
ls | 快速查看目录内容 |
ls -lh | 长格式输出的文件字节数转换为K,M,G的形式方便人阅读 |
ls -R | 列出当前目录下的所有文件,如果有目录遍历所有目录和子目录的文件(文件多可装逼,不常用) |
mkdir | 创建目录,使用 -p 选项可以级联创建目录( 场景 1:创建单层目录 场景 2:创建多层嵌套目录 场景 3:批量创建多个目录 ) |
rmdir | 删除空目录,必须是空目录,否则用rm -rf filename删除 |
du | 统计目录下每个文件字节数
|
2.2 文件操作命令
which | which后面的命令接磁盘位置 例如 which cd、which ls、which date |
touch | 创建空文件,例如 创建一个空文件(例如 file.txt) touch file.txt |
cp | 1. cp 复制文件 例如:复制 /root/install.log 文件到 /tmp cp /root/install.log /tmp 例如:复制 /root/install.log 文件到 /tmp并改名为 abc.log cp /root/install.log /tmp/abc.log 2、cp 复制目录 例如:复制整个 /root 目录到 /tmp cp -R /root /tmp 例如:复制整个 /root 目录到 /tmp并改名为 abc cp -R /root /tmp/abc |
mv | 1、mv 移动文件或目录 例如:移动 /root/install.log.bak 文件到 /tmp mv /root/install.log.bak /tmp 2、mv 给文件或目录改名 例如:给/tmp下的root目录改名为root1 mv /tmp/root /tmp/root1 |
rm | 1、rm 删除文件 例如:删除/root/install.log.bak rm /root/install.log.bak 2、rm 删除目录 (root用户操作一定要小心) 例如:给/tmp下的root1目录 rm -rf /tmp/root1 常用选项: -r 级联删除目录下的所有文件 -f 不提示(不用用户键入'y'或'n'进行确认) |
file | file 是 查看文件类型 |
echo | 向文件中写入内容(使用 echo 和重定向 >),例如 echo "Hello, this is my text file." > file.txt |
2.3 查看登录用户命名
who | 当前用户登录的信息 |
w | 当前用户登录的信息,以什么程序登录的 |
2.4 文件内容查看命令
cat | 查看文件内容,例如 cat file.txt |
tac | 倒叙查看文件内容,例如 cat file.txt |
more | 分页显示文件内容,例如:more /root/install.log 默认显示进度百分比 空格往下翻页,b往上翻页,f往下翻页,q退出 |
less | 分页显示文件内容,例如:less /root/install.log 选项 -m 显示进度百分比 可以用“/”后跟关键字搜索文件内容 空格往下翻页,b往上翻页,f往下翻页,q退出 |
tail | 查看文件尾部10行,例如:tail /root/install.log 选项-N (N为正整数)可以指定显示末尾N行内容 例如 tail -n 行数 文件名 tail -n 5 file.txt |
head | 查看文件头部10行,例如:head /root/install.log 选项-N (N为正整数)可以指定显示头部N行内容 例如 head-n 行数 文件名 head-n 5 file.txt |
2.5 系统管理类命令
shutdown | 关机命令 shutdown -h now 立刻关机 shutdown -h +10 "10分钟后关机",每个登录用户收到“10分钟后关机”的消息,并于10分钟后关机 shutdown -c 取消关机 |
reboot | 重启系统 |
lscpu | 查看系统cpu信息 |
2.6 日期时间管理类命令
date | 打印操作系统时钟 date -s 20190101 按照指定日期重新设定日期和时间 |
clock | 打印硬件时钟(主板中依靠纽扣电池保存在芯片中的时钟) clock -s 按照硬件时钟设置操作系统时钟 clock -w按照操作系统时钟设置硬件时钟 |
3. bash通配符
* | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
[] | 匹配指定字符范围内的任意单个字符,简化写法[a-z]不区分大小写 |
[[:upper:]] | 大写字母 |
[[:lower:]] | 小写字母 |
[[:alpha:]] | 大小写所有字母 |
[[:digit:]] | 匹配数字,可以写成[0-9] |
[[:alnum:]] | 字母+数字 |
[[:space:]] | 空格 |
[[:punct:]] | 标点符号 特殊字符 |
[^] | 匹配指定字符范围外的任意单个字符 |
#列出a开头的所有文件
ls a*#列出a开头一共3个字母的文件
ls a??#列出三个大写字母文件名的文件
ls [[:upper:]][[:upper:]][[:upper:]]#列出一个字母后跟三个数字的文件
ls [a-z][0-9][0-9][0-9]#列出不以a字母开头后跟三个数字的文件
ls [^a][0-9][0-9][0-9]
拓展:Bash中的组合键
键或组合键 | 功能 |
Ctrl+A | 将光标移动到命令行开头 |
Ctrl+C | 结束正在运行的程序并返回提示符 |
Ctrl+D | 退出当前shell会话,相当于键入exit或logout |
Ctrl+E | 将光标移动到命令行末尾 |
Ctrl+H | Generate backspace character |
Ctrl+L | Clear this terminal |
Ctrl+R | 查询命令历史记录 |
Ctrl+Z | 暂停一个程序 |
ArrowLeft and ArrowRight | 将光标在命令行上向左或向右移动一个位置,这样就可以在其他位置插入字符,而不仅仅是在开头和结尾 |
ArrowUp and ArrowDown | 浏览历史。转到要重复的行,如果需要编辑详细信息,按Enter键以节省时间 |
Shift+PageUp and Shift+PageDown | 浏览终端缓冲区(查看已“滚屏”的文本) |
Tab | 命令或文件名补全;当有多种选择时,系统会发出声音或视觉铃声,如果选择太多,则会询问你是否都想看 |
Tab Tab | 显示文件或命令补全的可能性 |
4. 压缩与解压缩命令
4.1 压缩和解压缩
1) zip/unzip(兼容 Windows 的 zip 格式)
压缩:
zip archive.zip file1 file2 dir1
解压缩:
unzip archive.zip
查看zip文件内容:
unzip -l archive.zip
2) gzip 压缩(.gz 格式)
压缩文件:
gzip filename # 生成 filename.gz
解压缩:
gunzip filename.gz
或
gzip -d filename.gz
4.2 测试网络连通性命令 ping
ping命令可以用来测试网络的连通性
常用选项
-c | 次数 |
-w | 等待秒数,优先级高于-c |
示例:测试百度网址的连通性,发生4个ping包
ping -c 4 www.baidu.com
示例:测试百度网址的连通性,发生4个ping包,2秒后停止ping
ping -c 4 -w 2 www.baidu.com
4.3 vi编辑器
1)vi三种模式
1.一般模式(normal mode),默认即为一般模式。
2.插入模式(insert mode)。
3.末行模式(last line mode)。
2)三种模式的切换:
1.一般模式 --> 插入模式
i:当前光标处输入内容。
I:在当前光标所在行的行首。
a:在当前光标所在处的后面。
A:在当前光标所在行的行尾输入。
o:在光标所在行的下方新增一行空白行。
O:在光标所在行的上方新增一行空白行。
2.插入模式 --> 一般模式
使用:ESC键
3.一般模式 --> 末行模式
使用:“:”(英文状态下)
4.末行模式 --> 一般模式
使用:ESC键
3)退出编辑器
末行模式下,输入下述内容可退出:
1. q!:强制退出,不保存并退出。
2. wq:保存修改并退出。
3. x:保存并退出。
4)重点! :vi操作流程
1. 新建或编辑文件:vi filename
2. i或insert键,即可进入插入模式。
3. 编辑内容。
4. ESC键,退出到一般模式。
5. 键入英文“:”进入末行模式,按wq(保存并修改)后回车。
6. 查看编辑内容是否正确:cat filename
5)拓展
在一般模式下:
d 删除。dd 删除一行
y 复制。yy 复制一行
p 粘贴
x 清除
g 行跳转;gg 行跳转:如10gg,表示跳转到第10行。
/或? 查找
n/N 上下翻
v 可视化模式。可视化模式中,可移动光标选择文本。键入y复制选中文本,键入d删除选中文本,键入v回到一般模式。
u 撤销之前的操作
4.4 管道操作(常用)
# 查看日志文件并过滤错误信息
cat /var/log/syslog | grep -i 'error'
# 显示文件第10-20行
cat file.txt | head -20 | tail -11
# 查看日志中最近出现的错误(最常用)
tail -100f /var/log/nginx/error.log | grep -i 'error\|fail\|exception'
# 快速搜索历史命令(日常效率提升)
history | grep 'docker' | grep 'run'
# 生成随机密码(安全相关)
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 12 | head -1