文章目录
-
- [Linux 目录结构](#Linux 目录结构)
- 常用命令
-
- ls:查看目录内容
- pwd:查看当前目录绝对路径
- cd:切换目录
- mkdir:创建目录
- rm:删除文件/目录
- touch:创建空文件
- mv:移动和重命名文件/目录
- cp:复制粘贴
- cat:查看文件内容
- more:查看文件
- ps:进程状态
- kill:杀死
- ifconfig:查看虚拟机网络配置信息
- [clear: 清屏命令](#clear: 清屏命令)
- shutdown:关机
- which:查看命令位置
- hostname:查看主机名称
- tar:压缩、打包、解包、解压命令
- grep:查询文件内容,全文检索
- [| :管道符](#| :管道符)
- which:查看执行命令的位置
- [vi:vi 编辑器](#vi:vi 编辑器)
- useradd:添加用户
- chmod:权限管理
- 小结
Linux 目录结构
Linux的目录结构是一个树型结构,只有一个根目录/
, 所有文件都在它下面。
系统的文件不要动!避免坏掉。
Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘,而Linux 没有盘符 这个概念,。
目录 | 作用 |
---|---|
/bin | 二进制命令所在的目录 |
/boot | 系统引导程序所需要的文件目录 |
/dev | 设备软件目录,磁盘,光驱, |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录 |
/mnt | 临时挂载储存设备的挂载点 |
/opt | 额外的应用软件包(可删) |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录 |
注:配置的时候可以给大一点磁盘空间,如果磁盘不够,需要临时挂载到其他地方。可以加磁盘空间用于创建集群。
常用命令
命令格式:command [-options] [parameter]
。
说明:
- command:命令名,相应功能的英文单词或单词的缩写
- [-options]:选项,可用来对命令进行控制,也可以省略
- parameter:传给命令的参数(限制),可以是 零个、一个、多个。
注:
- 敲几个字符之后,按 tab 键可以自动补全(唯一目录)。如果有多个目录字符一致,则会提示,需要多敲几个字符,直到唯一才可以 tab 补全。
- 相对路径不以
/
开头,以/
开头的都是被解读为绝对路径。 - 不在根目录下操作,新建一个个人目录操作,避免删除重要内容。任何路径下都可以使用绝对路径查看其他路径下的内容。
ls:查看目录内容
ls
:list,查看目录下的内容。ls [选项] [路径]
,可以多个选项多个路径混用,选项和路径没有先后顺序。
shell
ls #查看当前目录内容 (缺点: 隐藏文件看不到,以 .开头的文件)
ls /home #查看绝对路径 /home 目录下内容,可以同时查看多个目录,如 ls /home /lib
ls -l #list,以列表方式显示文件的详细信息,大小都是字节
ll #等价于ls -l
ls -a #all,查看当前目录所有内容,包括隐藏文件
ls --al #以列表方式查看目录内容的详细信息(查看文件类型、权限、大小等)
ls -h #必须配合 -l 以人性化的方式显示文件大小
ls -lh #查看目录内容的详细信息,较大的文件以 K、M、G 方式显示文件大小,或 ls -l -h
- 使用 Linux 风格,一般文件夹是蓝色、文件是白色,二者颜色不同。隐藏文件前面带
.
。 - 第一个字母的含义:
d
表示 directory 目录,-
表示文件
pwd:查看当前目录绝对路径
cd:切换目录
cd
:change directory,切换命令。
shell
cd #回到用户主目录,root 用户就是 /root,aa 用户则是 /home/aaa
cd test #切换到当前目录下的test目录(相对路径)
cd /root/test #切换到指定目录(绝对路径)
cd .. #回到上一级目录
cd ../.. #回到上上一级目录
cd ../dir #回到上一级的dir目录
cd - #在最近的两个目录切换
cd / #切换到根目录
cd ~ #切换到用户主目录
mkdir:创建目录
mkdir
:make directory,创建目录。
shell
mkdir test1 #在当前目录下创建文件夹test3,相对路径
mkdir /dir1/test1 #在指定目录 /dir1 下创建文件夹 test1,绝对路径
mkdir dir #创建单级目录
mkdir -p dir1/dir2/dir3 #创建多级目录,相对路径,先检查再创建,没有目录就创建;
#在当前目录下,检查是否有 dir1,没有则创建;然后再 dir1 中检查是否有 dir2,没有则创建;然后在 dir2 中检查是否有 dir3,没有则创建。
rm:删除文件/目录
rm
:remove,删除文件/目录
shell
rm file1 #删除文件
rm -r dir1 #recursive,递归删除目录下内容,会一个个目录/文件询问是否删除
rm -f file1 #force,强制删除文件, 无需提示,忽略不存在的文件
rm -rf dir1 #强制删除目录, 无需提示,忽略不存在的目录,可以写成 rm -fr dir1/rm -f -r dir1/rm -r -f dir1
touch:创建空文件
touch a.docx b.xlsx
创建的两个文件不是 Windows 常见的 Word 和 Excel 文件,而是 Linux 的静默文件。
如果通过 Windows 上传 .docx 和 .xlsx,则是真正的 Word 和 Excel 文件。
shell
touch a b c #创建 a、b、c 三个文件,没有后缀
touch test1/a.txt #在当前路径下的 test1 目录下新建 a.txt
mv:移动和重命名文件/目录
mv
:move,移动文件/目录和重命名。类比剪切+粘贴。
mv 原文件/原路径 目标文件/路径
shell
mv a.txt dir1 #dir1 已存在,移动,将 a.txt 移动到 dir 目录
#dir1 不存在,重命名,将 a.txt 重命名为 dir
mv dir2 dir1 #dir1 已存在,移动,将dir2目录移动到dir1目录
#dir1 不存在,重命名,将dir2目录重命名为dir1
mv a.txt b.txt #b.txt 已存在,会提示是否覆盖
#b.txt 不存在,重命名,将a.txt重命名为b.txt
cp:复制粘贴
cp
:copy,复制粘贴
shell
cp a.txt b.txt #b.txt 不存在,新建 b.txt,将 a.txt 拷贝过去
#b.txt 已存在,会提示是否覆盖
cp dir2 dir1 -r #dir1 不存在,新建 dir1,将 dir2 目录及内容拷贝过去,dir1 和 dir2 同级
#dir1 已存在,将 dir2 目录及内容拷贝到 dir1 目录下,变成 dir1/dir2(上下级)
cp a.txt dir1 #将 a.txt 拷贝一份到 dir1
cat:查看文件内容
shell
cat a.txt
more:查看文件
- enter:多查看一行数据
- 空格:向下翻一页,查看新的一屏幕数据
- ↑:向上翻一页
- PgUp:向上滚动一行
- PgDn:向下滚动一行
- q:退出 more
shell
more a.txt #打开分页视图显示文件内容
ps:进程状态
ps
:process status,进程状态
- -e:execute(执行)
- -f:format(格式化)
shell
ps -ef #查看当前正在运行的进程
- UID:user_id,启动进程的用户
- PID:process_id,进程 ID
- PPID:parent process_id,进程 ID 的父级 ID
kill:杀死
shell
kill 37922 #终止进程37922,有时候不一定会终止进程(有保护进程机制)
kill -9 37949 #杀死进程37949,一定会杀死进程
kill -l #查看kill命令的所有信号,可以查看各个代码的含义
ifconfig:查看虚拟机网络配置信息
类似 Windows 的ipconfig
shell
ifconfig #查看网络
clear: 清屏命令
快捷键:ctrl + l
shell
clear #清屏
shutdown:关机
shell
reboot #重启
shutdown -h now #立马关机
halt #不断电关机
which:查看命令位置
shell
which apt #显示执行命令的绝对位置
hostname:查看主机名称
shell
hostname
tar:压缩、打包、解包、解压命令
.tar
有格式的文件,固定的格式会占用一定的内存,适合大文件,小文件打包可能还会比原来大。
- c : 打包
- v : 看过程 view
- f : 打包成哪个文件 file
- z : 打包成压缩格式的文件,gzip格式
- x : 解包、解压缩
- -C :解到指定的位置
shell
# 要求:-f 放命令最后,跟文件名,指定文件名称
tar -cvf test1.tar test1 #打包,将 test1 目录打包为 test1.tar 文件
tar -czvf test1.tar.gz test1 #打包+压缩,将 test1 目录打包并压缩为 test1.tar.gz 文件
tar -xvf test1.tar #解包,将 test1.tar 文件解包到当前目录
tar -xvf test1.tar -C dir #解包,将 test1.tar 文件解包到 dir 目录
tar -xzvf test1.tar.gz -C dir #解压缩包,将 test1.tar.gz 文件解压到 dir 目录
grep:查询文件内容,全文检索
Grep(Globally search a Regular Expression and Print)命令可以对文件进行文本查询,内容查询。
返回整行的内容。
- -i:不区分大小写
- -r:递归
shell
grep [key] [filename] #在文件 [filename] 中查找包含 [key] 的内容
grep [key] [filename] --color #高亮显示内容,后面版本自带高亮
grep -ir [key] [dir] #在目录 [dir] 中递归查找包含 [key] 的内容
| :管道符
前一个命令的输出当做下一个命令的输入。
ps -ef
返回的内容作为下一个命令查找的对象。
shell
ps -ef | grep [key] #查找包含 [key] 的进程
ll | grep [key] #查找包含 [key] 的文件
which:查看执行命令的位置
shell
which pwd #查看当前命令的位置
vi:vi 编辑器
vi
是visual interface
的简称, 是Linux中最经典的文本编辑器。vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有编辑操作。
vi 的特点:
- 只能是编辑文本内容,不能对字体段落进行排版
- 不支持鼠标操作
- 没有菜单,只有命令
shell
vi [filename] #打开文件,进入命令模式
i/o/O/a/s #命令模式 -> 编辑模式,鼠标没用了
Esc #编辑模式 -> 命令模式
Delete #末行模式 -> 命令模式
shift+: #命令模式 -> 末行模式,只有命令可以进入该模式。可以退出
w #保存
q #退出,没有修改或者已经保存才可退出
q! #强制退出
wq #保存退出
注:编辑模式和末行模式无法切换。
命令模式相关命令:
命令 | 功能 |
---|---|
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置向下连续删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置向下连续复制n行 |
p | 粘贴 |
u | 撤销上一次命令 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str | 查找str,按 n(next) 查找下一个 |
底行模式
命令 | 功能 |
---|---|
:w 文件 | 另存为 |
:w | 保存(ctrl + s) |
:q | 退出, 如果没有保存,不允许退出 |
:q! | 强行退出, 不保存退出 |
:wq | 保存并退出 |
:x(同上) | 保存并退出 |
Shift + z + z | 保存退出 |
:set nu (number) | 设置行号 |
:%s/旧文本/新文本 | 文本替换 |
:nohl | 取消高亮 |
PS:开发不是求快,求稳?!
vim
vim 是 vi 的增强版,加代码补全、字体颜色。
shell
vim [filename]+10 #打开文件并定位到第10行
useradd:添加用户
shell
useradd [user_name] #新增普通用户
passwd [user_name] #给用户设置密码
userdel -r [user_name] #删除普通用户,加 -r 删除彻底,漏加 删除文件夹 rm -rf
su [user_name] #切换用户 su = switch user #切换用户
当普通用户仅有只读权限时,vi [filename]
无法写入内容,可以使用sudo vi [filename]
并输入普通账户密码获得临时的写入权限。
chmod:权限管理
chmod
:change mode
ll
命令返回说明:
- 角色:
- 创建者 :一个文件或者文件夹的创建者(拥有者) userid -> uid -> u
- 用户组 :针对一个文件或者文件夹而言,默认与创建者同名 groupid-> gid -> g
- 其他用户:创建者之外的用户,就是其他用户 other -> o
- 权限:
- 第2-4位:创建者对文件或者文件夹的权限
- 第5-7位: 用户组的权限
- 第8-10位: 其他用户的权限
- 权限的解读:
中文 | 英文代号 | 数字代号 | 说明 |
---|---|---|---|
读 | r | 4 | |
写 | w | 2 | |
执行 | x | 1 | 运行文件,cd 目录 |
- 权限操作:chmod 【字母不能和数组结合操作】
shell
chmod o+w a.txt #对其他用户添加一个写权限
chmod g-r a.txt #给用户组删除读权限
chmod o=wx a.txt #给a.txt的其他用户赋予写和执行权限
chmod 777 a.txt #给所有角色赋予所有权限
chmod 777 -R dir #给所有角色赋予目录下所有文件/目录的所有权限,递归赋予
小结
本文仅介绍了增、删、改、查等常用的命令,Ubuntu 的命令还有很多,可以参考:UbuntuManual 了解更多。