你好同学,我是沐爸,欢迎点赞、收藏和关注!个人知乎、公众号"沐爸空间"
在以下场景中,都需要使用 Linux 命令进行操作,比如:在业主服务器手动部署前端代码,手动推送镜像,往公司cdn上传资源等等。
本篇文档列举了前端最常用的 linux 命令,包括目录切换,文件和目录的新增、编辑、复制、删除、移动,文件的上传与下载,压缩与解压等,基本覆盖了前端大多数常见操作,希望对你有所帮助。
Linux是什么?
Linux 是一种自由和开放源码的类 UNIX 操作系统。
Linux 英文解释为 Linux is not Unix。
Linux 是在 1991 由林纳斯·托瓦兹在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
cd 切换目录
~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, … 则表示目前目录位置的上一层目录。
cd / # 切换到根目录
cd ~ # 切换到主目录
cd - # 切换到上次访问的目录
cd .. # 切换到上一级目录
cd ../.. # 切换到上上级目录
cd demo # 切换到当前目录下的 demo 目录
cd /home/eshan/html # 切换到指定目录 /home/eshan/html (绝对路径,从根目录开始/)
pwd # 查看当前目录所在的绝对路径
根目录与主目录的区别:
根目录是/,是树状形式目录的根,只有一个;主目录是用户的 HOME 目录,是根目录的一部分,添加用户的时候指定的,对于不同用户,主目录不同。
ls 列举文件
ls # 查看当前路径下的所有文件
ls -R # 查看当前路径下的所有文件, 并展开所有子文件夹
ls -a # 查看当前路径下的所有文件, 包括以句点 . 开头的"隐藏"文件
ll # ll 是 ls -l 的一个别名
ls -l *.doc # 查看当前目录下所有以 .doc 结尾的文件
ls 路径 # 查看指定路径下的所有文件, 绝对路径和相对路径都可以
新增与编辑文件
touch test.txt # 在当前目录新增test.txt文件
touch test.txt test.js # 在当前目录新增多个文件
vim test.txt # 使用vim编辑test.txt文件
i # 按 i 键进入插入模式
Esc # 按 Esc 进入命令模式
:wq # 保存内容并退出
cp 复制文件
cp 1.png 2.png # 在当前目录下,复制1.png并重命名为2.png
cp 1.png 3.jpg # 在当前目录下,复制1.png并重命名为3.jpg (后缀也能改)
cp 1.png demo # 将1.png复制到当前目录下的demo目录中
cp 1.png /home/demo/ # 把文件1.png从当前目录复制到指定目录/home/demo/下
cp * /tmp # 把当前目录下的所有未隐藏文件复制到指定目录/tmp/下
cp /dir1/test1 .: # 复制/dir1/test1到当前目录
rm 删除操作
rm * # 删除当前目录下的所有未隐藏的文件
rm -r * # 删除当前目录下的所有文件和目录
rm -r dir1 # 删除当前目录下的 dir1 目录,删除目录使用 -r
rm -r demo # 删除当前目录种的 demo 目录及 demo 目录下的所有内容(删除确认)
rm -rf demo # 强制删除当前目录中的 demo 目录及 demo 目录下的所有内容(直接删除)
rm -rf demo/* # 强制删除当前目录中 demo 目录下的所有内容,保留 demo 目录
rm -i a* # 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认
rm ./* # 删除当前目录下所有文件
rm afile # 删除当前目录下的 afile 文件(删除确认)
rm -f afile # 强制删除当前目录下的 afile 文件(直接删除)
rm -rf 路径 # 强制删除指定目录或文件
rm -rf /* # 【自杀命令!勿用!】删除根目录下的所有文件
mv 移动文件
mv afile /tmp # 把当前目录下的 afile 移动到指定目录 tmp 下
mv file1 file2 # 将当前目录下的 file1 文件重命名为 file2
mv dir1 dir2 # 将当前目录下的 dir1 目录重名为 dir2
mv 目录1 新目录2 # 将目录1剪切到新目录2中,如mv /tmp/demo /user
mv dir1/* . # 将当前目录下的 dir1 目录中的所有文件移动到当前目录
mv dir1/* dir2 # 将当前目录下的 dir1 目录下的所有文件移动到当前目录下的 dir2 目录下
mv dir1/1.png dir2 # 将当前目录下的 dir1 目录下的1.png文件移动到当前目录下的 dir2 目录下
mv file1/dir1 dir2 # 将某一路径下的文件file1或目录dir1 移动到dir2(相对或绝对路径)目录下
mv /tmp/dist/* /vdb1/dayu/datacenter/webapps/ROOT/WEB-INF/classes/static/
mkdir 创建目录
mkdir photos # 在当前目录下创建名为 photos 的目录
mkdir -p dir1/dir2 # 在某一目录下(绝对路径或相对路径)创建指定的嵌套目录。如果 dir1 不存在,则先创建 dir1 目录,再创建 dir2 目录。
mkdir /user/aaa # 在指定目录/user下创建一个名为 aaa 的目录,若user目录不存在,则创建不成功。
rz, sz 上传下载
sz file_name # 下载名称为 file_name 的文件
rz => 回车 => 选择文件 # 文件上传
sz dir_name/* # 下载 dir_name 目录下所有文件(不包括dir_name目录下的子文件夹及子文件夹中的文件)
diff 比较文件
diff dir1 dir2 # 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff file1 file2 # 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示
压缩与解压
zip [参数] [打包后的文件名] [打包的目录路径]
常用参数:
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
unzip test.zip # 将当前目录下的 test.zip 文件解压到当前目录
unzip /home/kms.zip -d /home/server/kms # 将指定目录下的内容解压到指定目录使用 -d
zip test.zip test.txt # 将当前目录下的 test.txt 文件压缩成 test.zip 文件
zip -r test.zip tmb/ # 压缩并指定目录1:把指定目录 tmb 在当前目录下压缩成 test.zip 文件
zip -r /home/test.zip tmb/ # 压缩并指定目录2:把指定目录 tmb 在指定目录 home 下压缩成 test.zip 文件
zip -r test.zip tmb/test.txt # 把指定文件 tmb/test.txt 在当前目录下压缩成 test.zip 文件,保留目录层级。
zip -r -q test.zip tmb/test.txt # 在压缩的时候不显示指令的执行过程
zip -r -q -m test.zip tmb/test.txt # 将文件压缩后,删除源文件 test.txt。如果压缩的是目录,压缩后会删除源目录。
tar czvf portal.tar portal # 备份portal
unrar x 测试.rar # 将 测试.rar 文件解压
grep 命令
在当前目录中,查找后缀有 txt 字样的文件中包含hello 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep hello *.txt
du 显示目录文件大小
du -h demo2
-> 140k demo2
du -h 1.png
-> 136k 1.png
du -h demo2/1.png
-> 136k demo2/1.png
du -sh * # 查看当前目录下各个文件及目录占用空间大小
rmdir 删除空目录
rmdir 只能删除空目录,如果不是不空目录则删除失败。
# 删除当前目录下的 AAA 目录
rmdir AAA
# 删除当前目录 BBB 下的 Test 目录,如果删除后 BBB 也是空目录,则 BBB 亦删除。
rmdir -p BBB/Test
其他常用命令
p # 显示有权限的主机列表
ip | 序号 # 输入ip 或 对应主机序号,进入对应的主机
cat file # 显示文件内容
clear或reset # 清屏
exit或logout # 退出命令行窗口
ps -ef |grep nginx # 查看 nginx 所在目录
你有其他常用的 Linux 命令的话,评论区告诉我吧。