前端学命令行

写在前面

命令行已经成为前端程序员必备的一项基础技能。如今的前端开发严重依赖命令行,通过 node 部署前端开发环境,通过 git 实现版本管理,命令行还可以更有效地控制操作系统(mac 尤甚)。熟练地掌握命令行,可以极大地提升工作效率,本文将介绍前端开发所需要的常用命令行操作

定义

命令行( command line ) 是一个应用程序,它是一个基于文本(或者说基于命令)的进行文件操作的应用程序,类似于 mac 中的 Finder 或者 Windows 中的 资源管理器,但是没有图形界面

一般地,命令行( command line )又代指命令行界面( command line interface ),简称为CLI,也称为字符用户界面。在 Windows 中称为 cmd 或者 命令提示符,在 Mac 中称为 终端 或者 控制台,在 Linux 中称为 shell(常见的是 bash )

前端学命令行

常用命令

DOS 系统和 Linux 系统的命令有些不同,下面主要介绍 Linux 系统下的 bash 命令

一般规则

在了解命令行常用命令之前,要先了解命令行的一般规则。如果命令行正确执行,则界面不会有任何反馈;如果错误执行,则会提示报错信息

特殊符号

# 代表注释

\ 代表转义字符,可以将特殊符号变成一般字符

$ 代表的是目前这个 Shell 的线程代号,即是所谓的 PID(process ID),使用 echo $$,出现的数字就是 SHELL 的 PID 代码

$ echo $$ # 5477

? 是一个特殊的变量,代表上一个执行的命令所回传的值。如果成功执行该命令,则会回传一个 0 值,如果执行过程发生错误,就会回传一个非 0 的值

$ echo $?  # 0

缩写

所谓的命令实际上就是单词的缩写,有以下几种常见缩写方式:

1、最常见的缩写是取每个单词的首字母

cd Change Direcroty 切换目录

2、如果首字母后为 h,则保留 h

chmod CHange MODe 切换文件权限

3、 如果只有一个单词,通常取每个音节的首字母

cp Copy 文件拷贝

4、取前几个字母作为缩写

diff DIFFerences 比较文件差异

操作命令

clear 清屏
unset 取消变量
$ unset abc # 取消变量 abc

alias 用来设置别名,单独使用 alias,可以查看当前已经设置的别名; unalias 用来取消设置的别名

$ alias # 查看当前已经设置的别名
$ alias lm='ls -l | more' # 设置别名 lm
$ unalias lm # 取消别名 lm 的设置

open 可以使用默认方式打开文件,使用 aliasopen 配合,可以使用命令行来打开网页

alias cnblogs='open https://cnblogs.com'

目录命令

【特殊符号】

.表示当前目录

..表示上级目录

-表示前一次目录

~表示用户目录

【显示目录】

pwd  # print work directory 显示当前工作目录的绝对路径

【切换目录】

cd   # change directory 切换工作目录
     # 如果不带任何参数,或使用波浪号(~),切换到用户目录

【创建目录】

mkdir # make directory 创建目录
$ mkdir a   # 创建目录 a
$ mkdir b c # 创建目录 b 和 c
$ mkdir -p a/b/c # 创建有层级的目录(a/b/c),需要使用 -p 选项

【删除目录】

rmdir # 删除空目录
rm -r # 删除目录及该目录下的所有目录及文件
$ rm -r a   # 删除目录 a
            # 千万不要使用 rm -rf /,该命令会删除所有文件

【复制目录】

cp # copy 复制文件(或目录)
$ cp -r a b # 将目录 a 复制到目录 b

【移动目录】

mv # move 移动文件(或目录)),或者重命名
$ mv a b # 将目录 a 从当前目录移动到目录 b 下
$ mv a b # 如果没有目录 b,则目录 a 重命名为目录 b

文件命令

【特殊符号】

> 表示覆盖

>> 表示累加

【显示目录下文件】

ls  # 显示该目录下的所有文件 list files,默认不显示以点开头的文件
ls -a # 显示所有文件,包括隐藏文件
ls -l # 显示每个文件的详细信息
ls ./y # 显示指定路径 ./y 下的所有文件

【查看文件内容】

open # 使用默认软件打开文件
cat # 显示文件内容

其实,更常用的文件查看方式是使用 vscode

$ code a.txt # 使用 vscode 打开 a.txt 文件

要使用上述命令,需要进行如下设置:运行 vscode 并打开命令面板(⇧⌘P ),输入 shell command 找到: Install ‘code’ command in PATH,并点击

【新建文件】

touch # 创建文件
$ touch a.txt  # 创建空文件a.txt,如果a.txt已经有内容,则修改文件最后更新时间
echo # 输出字符串,也可以新建或改写文件
$ echo 123 # 输入字符串'123'
$ echo -e '111\n222' # 输入多行内容,需要使用-e选项
$ echo 123 > 1.txt # 将1.txt的内容改写为'123'
$ echo abc >> 1.txt # 向1.txt追加内容,则1.txt的内容为'123 \n abc'

【删除文件】

rm  # remove 删除文件
rm -f # 强制删除
rm -i # 删除文件之前先询问确认,用户回复y或Y之后,文件才会真的被删除
$ rm a.txt # 删除文件a.txt

【复制文件】

cp # copy 复制文件(或目录)
$ cp 1.txt 2.txt # 将1.txt的内容复制到2.txt

【移动文件】

mv # move 移动文件(或目录),或者重命名
$ mv 1.txt 2.txt # 如果在同一目录下,则将1.txt重命名为2.txt
$ mv 1.txt a # 如果不在同一目录下,则将1.txt移动到指定的目录a下
$ mv 1.txt a/2.txt # 也可以在移动到目录a的同时,重命名为2.txt

快捷键

在 Mac 下,iTerm2 需要设置才能使用 alt 快捷键

打开 Preferences > Profiles > Keys > General,Left Option Key 和 Right Option Key 都选择 Esc+

然后选择 Key Mappings ,点击 + 号,在弹出的对话框中

KeyBoard Shortcut:option + 左箭头
Action: Send Escape Sequence
ESC+: b

KeyBoard Shortcut:option + 右箭头
Action: Send Escape Sequence
ESC+: f

即可完成设置

【光标移动】

ctrl + a 移动到命令行最左侧(ahead)
ctrl + e 移动到命令行最右侧(end)
alt + <- 向左移动一个单词 alt + -> &#x5411;&#x53F3;&#x79FB;&#x52A8;&#x4E00;&#x4E2A;&#x5355;&#x8BCD;
</->

【内容剪贴】

ctrl + k &#x526A;&#x5207;&#x4ECE;&#x5149;&#x6807;&#x4F4D;&#x7F6E;&#x5230;&#x884C;&#x5C3E;&#x7684;&#x5B57;&#x7B26; (kill)
ctrl + u &#x526A;&#x5207;&#x4ECE;&#x5149;&#x6807;&#x4F4D;&#x7F6E;&#x5230;&#x884C;&#x9996;&#x7684;&#x5B57;&#x7B26; (undo)
ctrl + w &#x6216; alt + backspace &#x526A;&#x5207;&#x5149;&#x6807;&#x524D;&#x7684;&#x5355;&#x8BCD;(word)
alt + d  &#x526A;&#x5207;&#x5149;&#x6807;&#x540E;&#x7684;&#x5355;&#x8BCD;(delete)
ctrl + y &#x5C06;&#x526A;&#x8D34;&#x677F;&#x7684;&#x5185;&#x5BB9;&#x7C98;&#x8D34;&#x5230;&#x5149;&#x6807;&#x5904;

【控制】

ctrl + c &#x5F3A;&#x5236;&#x7EC8;&#x6B62;&#x5F53;&#x524D;&#x547D;&#x4EE4;
ctrl + l &#x6E05;&#x5C4F;
&#x4E00;&#x6B21; tab &#x8865;&#x5168;
&#x4E24;&#x6B21; tab &#x63D0;&#x793A;

命令组合

使用多命令执行符和管道符可以实现命令组合的目的

【多命令执行符】

&#x547D;&#x4EE4;1;&#x547D;&#x4EE4;2 多个命令顺序执行,命令之间没有任何逻辑关系

&#x547D;&#x4EE4;1&&&#x547D;&#x4EE4;2 逻辑与,命令1成功,才会执行命令2

&#x547D;&#x4EE4;1||&#x547D;&#x4EE4;2 逻辑或,命令1不成功,才会执行命令2

【管道符】

&#x547D;&#x4EE4;1 | &#x547D;&#x4EE4;2 命令1的正确输出作为命令2的操作对象

$ ls -al /etc | less

上面代码中,使用 ls 命令输出后的内容就能够被 less 读取,并利用 less 的功能,就能够前后翻动相关的信息了

脚本文件

脚本文件类似于DOS操作系统中的批处理文件 .bat,它可以将不同的命令组合起来,并按确定的顺序自动连续地执行

比如,一个常见的需求是把 chrome 的下载目录中的 excel 文件存储到专门的文档文件夹里

1、新建并打开脚本文件

$ touch mvExl.txt
$ chmod + x mvExl.txt
$ code mvExl.txt

2、修改脚本文件,将 Downloads 目录下所有的 excel 文件都移动到 backup 目录下的 xls 目录中

mv /Users/xiaohuochai/Downloads/*.xls /Users/xiaohuochai/Desktop/backup/xls

3、执行该文件即可

sh mvExl.txt
&#x6216;&#x8005;
sh ./mvExl.txt

当然,可以利用传参,将其他类型的文件比如 zip 文件也移动到 backup 目录下的 zip 目录中

&#x8BBE;&#x7F6E;&#x53D8;&#x91CF;
basePath=/Users/xiaohuochai
targetPartPath=Desktop/backup

&#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728; $1 &#x6587;&#x4EF6;&#x5939;&#xFF0C;&#x5219;&#x65B0;&#x5EFA; $1 &#x6587;&#x4EF6;&#x5939;
    # $1 &#x8868;&#x793A;&#x7B2C;&#x4E00;&#x4E2A;&#x53C2;&#x6570;
    # -d &#x8868;&#x793A;&#x8BE5;&#x6587;&#x4EF6;&#x540D;&#x662F;&#x5426;&#x5B58;&#x5728;&#x4E14;&#x662F;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;
if [ -d $basePath/$targetPartPath/$1 ]; then
 echo 'exist'
else
 cd $basePath/$targetPartPath
 mkdir $1
fi
&#x79FB;&#x52A8;&#x6587;&#x4EF6;
&#x6CE8;&#x610F;&#xFF0C;&#x5982;&#x679C;&#x52A0;&#x4E0A;&#x5F15;&#x53F7;&#xFF0C;&#x5199;&#x6210;"$basePath/Downloads/*.$1"&#xFF0C;&#x5219; * &#x53EA;&#x8868;&#x793A; * &#x672C;&#x8EAB;&#xFF0C;&#x800C;&#x4E0D;&#x8868;&#x793A;&#x4EFB;&#x610F;&#x5B57;&#x7B26;
mv $basePath/Downloads/*.$1 $basePath/$targetPartPath/$1
echo 'done'

前端学命令行

最后

本文只介绍了常用的基本命令,更详细的命令可查看下面的文章

Linux 常用命令

Linux 命令大全

bash 中文速查

bash 英文速查

命令行解释

Original: https://www.cnblogs.com/xiaohuochai/p/12045336.html
Author: 小火柴的蓝色理想
Title: 前端学命令行

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547611/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球