GitHub Trending版的第一,命令行下各种实用的小技巧,收藏了

最近GitHub Trending版的第一名,介绍了命令行下的各种实用的小技巧,仓库名为《命令行的艺术》,项目GitHub地址为:https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

文件目录如下:

GitHub Trending版的第一,命令行下各种实用的小技巧,收藏了

首先介绍了如果学习,然后再介绍许多实用的小工具,每个小节都有很多内容,这里只显示一部分,供大家参考每个部门的主要内容

基础

学会基本的文件管理工具:ls 和 ls -l (了解 ls -l 中每一列代表的意义),less,head,tail 和 tail -f(甚至 less +F),ln 和 ln -s (了解硬链接与软链接的区别),chown,chmod,du (硬盘使用情况概述:du -hs *)。 关于文件系统的管理,学习 df,mount,fdisk,mkfs,lsblk。知道 inode 是什么(与 ls -i 和 df -i 等命令相关)。

学习基本的网络管理工具:ip 或 ifconfig,dig。

学习并使用一种版本控制管理系统,例如 git。

熟悉正则表达式,学会使用 grep/egrep,它们的参数中 -i,-o,-v,-A,-B 和 -C 这些是很常用并值得认真学习的。

GitHub Trending版的第一,命令行下各种实用的小技巧,收藏了

日常使用

键入 history 查看命令行历史记录,再用 !n(n 是命令编号)就可以再次执行。其中有许多缩写,最有用的大概就是 !$, 它用于指代上次键入的参数,而 !! 可以指代上次键入的命令了(参考 man 页面中的“HISTORY EXPANSION”)。不过这些功能,你也可以通过快捷键 ctrl-r 和 alt-. 来实现。

cd 命令可以切换工作路径,输入 cd ~ 可以进入 home 目录。要访问你的 home 目录中的文件,可以使用前缀 ~(例如 ~/.bashrc)。在 sh 脚本里则用环境变量 $HOME 指代 home 目录的路径

回到前一个工作路径:cd -

lsof 来查看开启的套接字和文件

使用 alias 来创建常用命令的快捷形式。例如:alias ll='ls -latr' 创建了一个新的命令别名 ll

文件及数据处理

在当前目录下通过文件名查找一个文件,使用类似于这样的命令:find . -iname '*something*'。在所有路径下通过文件名查找文件,使用 locate something (但注意到 updatedb 可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)

了解如何使用 cut,paste 和 join 来更改文件。很多人都会使用 cut,但遗忘了 join

了解如何运用 wc 去计算新行数(-l),字符数(-m),单词数(-w)以及字节数(-c)

了解如何使用 awk 和 sed 来进行简单的数据处理

系统调试

curl 和 curl -I 可以被轻松地应用于 web 调试中,它们的好兄弟 wget 也是如此,或者也可以试试更潮的 httpie

获取 CPU 和硬盘的使用状态,通常使用使用 top(htop 更佳),iostat 和 iotop。而 iostat -mxz 15 可以让你获悉 CPU 和每个硬盘分区的基本信息和性能表现

用 ncdu 来查看磁盘使用情况,它比寻常的命令,如 du -sh *,更节省时间

仅限 OS X 系统

用 brew (Homebrew)或者 port (MacPorts)进行包管理。这些可以用来在 OS X 系统上安装以上的大多数命令。

用 pbcopy 复制任何命令的输出到桌面应用,用 pbpaste 粘贴输入。

若要在 OS X 终端中将 Option 键视为 alt 键(例如在上面介绍的 alt-b、alt-f 等命令中用到),打开 偏好设置 -> 描述文件 -> 键盘 并勾选“使用 Option 键作为 Meta 键”。

用 open 或者 open -a /Applications/Whatever.app 使用桌面应用打开文件

GitHub Trending版的第一,命令行下各种实用的小技巧,收藏了

在 Winodws 下获取 Unix 工具

可以安装 Cygwin 允许你在 Microsoft Windows 中体验 Unix shell 的威力。这样的话,本文中介绍的大多数内容都将适用。

在 Windows 10 上,你可以使用 Bash on Ubuntu on Windows,它提供了一个熟悉的 Bash 环境,包含了不少 Unix 命令行工具。好处是它允许 Linux 上编写的程序在 Windows 上运行,而另一方面,Windows 上编写的程序却无法在 Bash 命令行中运行。

实用 Windows 命令行工具

可以使用 wmic 在命令行环境下给大部分 Windows 系统管理任务编写脚本以及执行这些任务。

Windows 实用的原生命令行网络工具包括 ping,ipconfig,tracert,和 netstat

更多资源

awesome-shell:一份精心组织的命令行工具及资源的列表。

awesome-osx-command-line:一份针对 OS X 命令行的更深入的指南。

Strict mode:为了编写更好的脚本文件。

shellcheck:一个静态 shell 脚本分析工具,本质上是 bash/sh/zsh 的 lint。

Filenames and Pathnames in Shell:有关如何在 shell 脚本里正确处理文件名的细枝末节

Data Science at the Command Line:用于数据科学的一些命令和工具,摘自同名书籍。

这里只列出一部分内容,感兴趣的小伙伴可以去GitHub star一波

相关文章