shell 读取命令行_摇滚吧!命令行

21条Bash命令为您节省时间

本文是对Bash命令的简要介绍。 知道如何在命令行中移动是节省时间的一项基本技能。 我们将点击21个最常见的命令及其键标记。 我们还将介绍Bash快捷方式,以节省大量的击键。 ⌨️

4fc09d227c6ff035a3f34cdaeee72394.png

A shell

条款

Unix,Linux,Bash,shell,命令行,终端和Shell脚本这两个词是不同的东西,但是它们共享我们将讨论的命令。 这是差异和相似之处的快速细分。

Unix是由Bell Labs在1970年代开发的流行计算机操作系统。 它不是开源的。

Linux是最流行的Unix衍生版本。 它运行着世界上大量的类似计算机的设备。

您的终端是仿真器程序,可让您访问操作系统。 您可以同时打开多个终端窗口。

Shell语言用于将命令发送到底层操作系统。

Bash代表Bourne Again SHell。 它是与操作系统通信的最常用的外壳语言。 它也是macOS的默认外壳。 要了解有关支持Linux和Bash的开源基础的更多信息,请查看本文。

命令行界面(CLI)指的是您在其中输入命令的基于键盘输入的界面。 通常,它用于实时信息和文件操作。 将CLI与常用鼠标的图形用户界面(GUI)进行对比。 CLI通常称为命令行。

脚本是指包含一系列shell命令的小程序。 脚本被写入文件,并且可以重复使用。 您可以在脚本中创建变量,条件语句,循环,函数等。

了解? 我们下面讨论的命令适用于上面所有内容。 我将交替使用Bash,shell和命令行。

另一个注意事项:我可以交替使用目录和文件夹。 这两个词是同一件事。

标准输入/输出流是标准输入(stdin),标准输出(stdout)和标准错误(stderror)。 他们会弹出一堆。 当我使用术语打印时,我的意思是打印到标准输出,而不是打印机。

最后,使用任何内容替换以下以my_whatever开头的命令。

事不宜迟,这里是我们将在本文中介绍的命令列表。

前21个Bash命令

获取信息

man:打印命令的手册(帮助)

pwd:打印工作目录

ls:列出目录内容

ps:查看正在运行的进程

操纵

cd:更改工作目录

touch:创建文件

mkdir:创建目录

cp:copy拷贝

mv:移动或重命名

ln:链接

重定向和管道

>:重定向标准输出

|:将一个命令的内容传递给下一个命令

head:读取文件尾的开头

tail:读取文件尾的结尾

cat:读取文件或连接文件

结束

rm:删除

kill:结束进程

搜索

grep:search搜索

ag:搜索

压缩

tar:将多个文件合并为一个文件

让我们深入探讨!

解释的前21条命令

首先,让我们看一下以stdout形式返回信息的命令,即标准输出。 通常,stdout会写入您的终端。

获取信息

man command_name:打印命令手册。 就像帮助一样。

pwd:显示当前工作目录的文件路径。 您通常需要知道您在文件系统中的位置。

ls:列出目录内容。 另一个超级通用命令。

ls -a:还使用-a列出隐藏文件。

ls -l:使用-l查看有关文件的更多信息。

请注意,标志可以像这样组合:ls -al。

ps:查看正在运行的进程。

ps -e:使用-e打印所有正在运行的进程,而不仅仅是与当前用户的shell相关联的进程。 这通常是您想要的。

操纵

cd my_directory:将工作目录更改为my_directory。 使用my.directory的相对路径../在目录树中上移一级。

eaa044716682cf4f1c8aecabeeedf0c7.png

CD

touch my_file:在指定路径位置创建my_file。

mkdir my_directory:在指定的路径位置创建my_directory。

mv my_file target_directory:将my_file移到target_directory。

mv也可以用来重命名文件或文件夹,如下所示:

mv my_old_file_name.jpg my_new_file_name.jpg

cp my_source_file target_directory:复制source_file并将其放在target_directory中。

ln -s my_source_file my_target_file:使用符号链接将my_target_file链接到my_source_file。

更新my_source_file的内容后,my_target_file的内容会自动更新。 如果my_target_file的内容已更新,则my_source_file的内容也将更新。 凉。

如果删除了my_source_file,则删除了my_target_file的内容,但该文件继续存在。 这只是一个空文件。

如果删除了my_target_file,则my_source_file继续存在,其内容保持不变。

-s标志还允许您链接目录。

于2019年4月12日更新,以更正和阐明ln -s和mv行为。 感谢Jason Wallwork。

现在,让我们看看输出重定向和管道的工作方式。

重定向和管道

my_command

my_text> my_file:将标准输出重定向到my_file。 创建my_file(如果不存在)。 如果my_file存在,则将其覆盖。

例如,ls> my_folder_contents.txt创建一个列出您工作目录内容的文本文件。

将其添加为double >>,以将stdout附加到my_file而不是覆盖它。

现在让我们看一下管道命令。

1e648f4d0c5ffd64f07c86189070bed3.png

Pipe the result of one command to the other

first_command | second_command:管道字符| 用于将一个命令的结果发送到另一命令。 管道左侧命令的标准输出传递到管道右侧命令的标准输入。

"一切都是管道" 是Unix中的口头禅-因此,几乎所有有效命令都可以通过管道传输。

用管道链接命令可创建管道。 多个管道可以像这样链接在一起:

first_command | second_command | third_command

1ab66a551ae6f6fcfb2cf21ef9befe66.png

Pipeline

注意,管道并行执行所有命令。 此行为有时会导致意外结果。、

说到阅读,让我们看看如何从命令行中进行阅读。

my_file:读取my_file的第一行。 其他标准输入也可以阅读。

tail my_file:读取my_file的最后几行。 其他标准输入也可以阅读。

dce2c8a14f7241d78790e4a2856ceaf6.png

Head at the front, tail at the back.

如果您是使用熊猫的数据科学家,那么后两个命令应该听起来很熟悉。 如果不是这样,头和尾巴就是很好地映射的隐喻,因此它们应该不会太难于记住。

让我们看看另一种读取文件的方法。

cat可以打印文件,也可以串联多个文件,具体取决于传递的文件数。

2020fe5e9cbd26fe9ff19d753b322abb.png

cat

cat my_one_file.txt:cat使用一个文件将内容打印到stdout。

当您给它两个或多个文件时,cat命令的行为有所不同。

cat my_file1.txt my_file2.txt:包含两个或更多文件,cat将文件内容串联在一起,并将输出打印到stdout。

如果要将串联的文件另存为新文件,请使用>写运算符,如下所示:

cat my_file1.txt my_file2.txt> my_new_file.txt

现在,我们来看看删除和结束内容。

删除

rm my_file:从文件系统中删除my_file。

rm -r my_folder:删除my_folder以及my_folder中的所有文件和子文件夹。 -r用于递归。

如果您不想每次删除都提示确认,请添加-f。

kill 012345:通过给其时间关闭来正常结束指定的运行进程。

kill -9 012345:立即结束指定的运行进程。 -s SIGKILL表示与-9相同。

搜索

接下来的几个命令-grep,ag和ack用于搜索。 Grep是古老的,可信赖的同级产品-可靠,但速度较慢,并且用户友好性稍差。

770f2a97611b5ccbd1062b570b7eaecf.png

Get a grep!

grep my_regex my_file:在my_file中搜索my_term。 返回每次匹配文件的整行。 my_term默认为正则表达式。

grep -i my_regex my_file:-i使搜索不区分大小写。

grep -v my_regex my_file:返回所有不包含my_term的行。 -v返回反函数,就像许多语言一样。

grep -c my_regex my_file:返回与-c匹配的次数的计数。

grep -R my_regex my_folder:用-R递归搜索文件夹中的所有文件和所有子文件夹。

现在我们来谈谈Ag,grep的年轻,更快,外观更好的兄弟姐妹。

bd3e9422ca519053c66ba491b18be4f0.png

Get it?

如果您运行以下命令,但发现计算机上没有ag,请参见此处的安装说明。 在使用自制软件的Mac上,只需运行brew install the_silver_searcher。 (2019年8月更新)。

ag my_regex my_file:返回行号和任何匹配的行。

ag -i my_regex my_file:-i用于不区分大小写。

ag自动读取您的.gitignore文件,并从任何匹配的文件或文件夹中排除结果。 太酷了!

ag my_regex my_file –skip-vcs-ignores:使用–skip-vcs-ignores覆盖自动版本控制系统文件读取。

您还可以制作一个.agignore文件,以从Ag中排除文件路径。

第三个兄弟是Ack。 Ag和Ack几乎是同卵双胞胎-它们99%可互换。 Ag更快,所以我会坚持下去。

压缩

现在,让我们看看制作tarball存档。

tar my_source_directory:将源目录中的多个文件合并为一个tarball文件。 此命令对于分发其他人将下载的文件很有用。

9a6a850235a0dea5f957347cba425626.png

tar

压缩文件的扩展名为.tar,代表Tape ARchive。 Tape告诉您有关此命令的年龄!

tar -cf my_file.tar my_source_directory:使用my_source_directory的内容创建一个名为my_file.tar的tarball文件。 -c用于创建,-f用于文件。

使用-xf提取tar文件。 -x用于提取,-f用于文件。

tar -xf my_file.tar将my_file.tar中的文件扩展到当前工作目录。

现在,让我们看一下.tar文件的压缩和解压缩。

tar -cfz my_file.tar.gz my_source_directory使用gzip压缩文件。 -c代表创建,-f代表文件,-z代表zip。 Gzip为文件的使用者节省了空间和下载时间。

通过将-z标志添加到我们之前看到的提取命令中,解压缩.tar.gz文件。

tar -xfz my_file.tar.gz。 -x代表解压缩,-f代表文件,-z代表zip。

tar还有许多其他标志可以使用。

Bash 别名 Alias

设置Bash别名可将您的按键保存在终端中。 然后,您可以执行类似bu而不是python setup.py sdist bdist_wheel的操作。

只需将以下行添加到您的〜/ .bash_profile中:

alias bu =" python setup.py sdist bdist_wheel"

如果您没有〜/ .bash_profile文件,则可以使用touch命令在命令行中创建一个文件。

然后重新启动终端,并使用两次击键来构建Python包。 就像输入2个字母而不是44个字母一样。

添加您喜欢的任何其他别名,并观察您的生产率提高。

在本文中,您已经看到了21种最常见的Shell命令。

b5eeface453d471b29dbb5833e19a314.png

(本文翻译自Jeff Hale的文章《Rock the Command Line》,参考:https://towardsdatascience.com/rock-the-command-line-52c4b2ea34b7)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell 命令行字符是指在操作系统的Shell环境下,用户通过键盘输入的字符,用来执行各种命令、操作和程序。Shell 命令行字符具有以下特点: 1. 命令行特定符号:在Shell环境下,命令行字符通常以$或#开头,表示可输入命令的提示符。例如,$表示一般用户,#表示超级用户或管理员。 2. 命令输入:用户通过键盘输入命令,并按下回车键执行。命令行字符严格遵循一定的命令语法和规则,包括命令名称、参数选项、参数值等。 3. 通配符:在命令行字符中,可以使用通配符来匹配文件或目录名,常用的通配符包括*和?。*表示任意字符组合,?表示任意单个字符。 4. 命令历史:Shell提供了命令历史功能,可以通过上下箭头键浏览之前输入的命令,并重新执行。用户可以使用history命令查看历史记录。 5. 管道和重定向:Shell命令行字符支持管道符(|)和重定向符(>、<、>>等),可以将命令的输出通过管道传递给其他命令进行处理,或将命令的输入输出重定向到文件中。 6. 通用命令:Shell命令行字符提供了众多通用命令,用于文件操作、进程管理、网络操作、打印信息等。常见的Shell命令包括ls、cp、mv、rm、ps、kill、ifconfig等。 总而言之,Shell命令行字符是用来在操作系统的Shell环境下执行命令和程序的字符,具有一定的命令语法和规则,并支持通配符、历史记录、管道和重定向等功能。掌握Shell命令行字符对于操作系统的管理和日常工作非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值