Linux的目录结构是一个树型结构,只有一个根目录/
, 所有文件都在它下面。
系统的文件不要动!避免坏掉。
Windows 系统 可以拥有多个盘符, 如 C盘、D盘、E盘,而Linux 没有盘符 这个概念,。
目录 | 作用 |
---|---|
/bin | 二进制命令所在的目录 |
/boot | 系统引导程序所需要的文件目录 |
/dev | 设备软件目录,磁盘,光驱, |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录 |
/mnt | 临时挂载储存设备的挂载点 |
/opt | 额外的应用软件包(可删) |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录 |
注:配置的时候可以给大一点磁盘空间,如果磁盘不够,需要临时挂载到其他地方。可以加磁盘空间用于创建集群。
命令格式:command [-options] [parameter]
。
说明:
注:
/
开头,以/
开头的都是被解读为绝对路径。ls
:list,查看目录下的内容。ls [选项] [路径]
,可以多个选项多个路径混用,选项和路径没有先后顺序。
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
cd
:change directory,切换命令。
cd #回到用户主目录,root 用户就是 /root,aa 用户则是 /home/aaa
cd test #切换到当前目录下的test目录(相对路径)
cd /root/test #切换到指定目录(绝对路径)
cd .. #回到上一级目录
cd ../.. #回到上上一级目录
cd ../dir #回到上一级的dir目录
cd - #在最近的两个目录切换
cd / #切换到根目录
cd ~ #切换到用户主目录
mkdir
:make directory,创建目录。
mkdir test1 #在当前目录下创建文件夹test3,相对路径
mkdir /dir1/test1 #在指定目录 /dir1 下创建文件夹 test1,绝对路径
mkdir dir #创建单级目录
mkdir -p dir1/dir2/dir3 #创建多级目录,相对路径,先检查再创建,没有目录就创建;
#在当前目录下,检查是否有 dir1,没有则创建;然后再 dir1 中检查是否有 dir2,没有则创建;然后在 dir2 中检查是否有 dir3,没有则创建。
rm
:remove,删除文件/目录
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 a.docx b.xlsx
创建的两个文件不是 Windows 常见的 Word 和 Excel 文件,而是 Linux 的静默文件。
如果通过 Windows 上传 .docx 和 .xlsx,则是真正的 Word 和 Excel 文件。
touch a b c #创建 a、b、c 三个文件,没有后缀
touch test1/a.txt #在当前路径下的 test1 目录下新建 a.txt
mv
:move,移动文件/目录和重命名。类比剪切+粘贴。mv 原文件/原路径 目标文件/路径
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
:copy,复制粘贴
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 a.txt
more a.txt #打开分页视图显示文件内容
ps
:process status,进程状态
ps -ef #查看当前正在运行的进程
kill 37922 #终止进程37922,有时候不一定会终止进程(有保护进程机制)
kill -9 37949 #杀死进程37949,一定会杀死进程
kill -l #查看kill命令的所有信号,可以查看各个代码的含义
类似 Windows 的ipconfig
ifconfig #查看网络
快捷键:ctrl + l
clear #清屏
reboot #重启
shutdown -h now #立马关机
halt #不断电关机
which apt #显示执行命令的绝对位置
hostname
.tar
有格式的文件,固定的格式会占用一定的内存,适合大文件,小文件打包可能还会比原来大。
# 要求:-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(Globally search a Regular Expression and Print)命令可以对文件进行文本查询,内容查询。
返回整行的内容。
grep [key] [filename] #在文件 [filename] 中查找包含 [key] 的内容
grep [key] [filename] --color #高亮显示内容,后面版本自带高亮
grep -ir [key] [dir] #在目录 [dir] 中递归查找包含 [key] 的内容
前一个命令的输出当做下一个命令的输入。ps -ef
返回的内容作为下一个命令查找的对象。
ps -ef | grep [key] #查找包含 [key] 的进程
ll | grep [key] #查找包含 [key] 的文件
which pwd #查看当前命令的位置
vi
是visual interface
的简称, 是Linux中最经典的文本编辑器。vi的核心设计思想:让程序员的手指始终保持在键盘的核心区域,就能完成所有编辑操作。
vi 的特点:
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 是 vi 的增强版,加代码补全、字体颜色。
vim [filename]+10 #打开文件并定位到第10行
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
:change mode
中文 | 英文代号 | 数字代号 | 说明 |
---|---|---|---|
读 | r | 4 | |
写 | w | 2 | |
执行 | x | 1 | 运行文件,cd 目录 |
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 了解更多。