From 67ab3a8352d770e63c05a4f7fe5e9733431f541d Mon Sep 17 00:00:00 2001 From: Chunyang Xu Date: Sun, 26 Jul 2015 02:37:48 +0800 Subject: [PATCH 1/7] zh: Update README-zh.md --- README-zh.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/README-zh.md b/README-zh.md index 33f5ced..422c1c6 100644 --- a/README-zh.md +++ b/README-zh.md @@ -62,7 +62,7 @@ - 学习基本的网络管理:`ip` 或 `ifconfig`,`dig`。 -- 熟悉正则表达式,以及 `grep`/`egrep` 里不同参数的作用,例如 `-i`,`-o`,`-A`,和 `-B`。 +- 熟悉正则表达式,以及 `grep`/`egrep` 里不同参数的作用,例如 `-i`,`-o`,`-v`,`-A`,`-B` 和 `-C`。 - 学会使用 `apt-get`,`yum`,`dnf` 或 `pacman` (取决于你使用的 Linux 发行版)来查找或安装包。确保你的环境中有 `pip` 来安装基于 Python 的命令行工具 (部分程序使用 `pip` 来安装会很简单)。 @@ -99,6 +99,8 @@ - 有关打开套接字和文件,请参阅 `lsof`。 +- 使用 `uptime` 或 `w` 来查看系统已经运行多长时间。 + - 使用`alias`来创建常用命令的快捷形式。例如:`alias ll='ls -latr'`使你可以方便地执行`ls -latr`命令。 - 在 Bash 脚本中,使用 `set -x` 去调试输出,尽可能的使用严格模式,使用 `set -e` 令脚本在发生错误时退出而不是继续运行,使用 `set -o pipefail` 严谨地对待错误(尽管问题可能很微妙)。当牵扯到很多脚本时,使用 `trap`。 @@ -249,7 +251,7 @@ - 了解如何运用 `gdb` 连接到一个运行着的进程并获取它的堆栈轨迹。 -- 学会使用 `/proc`。它在调试正在出现的问题的时候有时会效果惊人。比如:`/proc/cpuinfo`,`/proc/xxx/cwd`,`/proc/xxx/exe`,`/proc/xxx/fd/`,`/proc/xxx/smaps`。 +- 学会使用 `/proc`。它在调试正在出现的问题的时候有时会效果惊人。比如:`/proc/cpuinfo`,`/proc/meminfo`,`/proc/cmdline`,`/proc/xxx/cwd`,`/proc/xxx/exe`,`/proc/xxx/fd/`,`/proc/xxx/smaps`(这里的 `xxx` 表示进程的 id 或 pid)。 - 当调试一些之前出现的问题的时候,`sar` 非常有用。它展示了 cpu、内存以及网络等的历史数据。 @@ -354,6 +356,8 @@ - `stat`:文件信息 +- `time`:执行命令,并计算执行时间 + - `tac`:反向输出文件 - `shuf`:文件中随机选取几行 @@ -402,7 +406,11 @@ - [`glances`](https://github.com/nicolargo/glances):高层次的多子系统总览 -- `iostat`:CPU 和硬盘状态 +- `iostat`:硬盘使用状态 + +- `mpstat`: CPU 使用状态 + +- `vmstat`: 内存使用状态 - `htop`:top 的加强版 @@ -420,6 +428,8 @@ - `dmesg`:引导及系统错误信息 +- `sysctl`: 在内核运行时动态地查看和修改内核的运行参数 + - `hdparm`:SATA/ATA 磁盘更改及性能分析 - `lsb_release`:Linux 发行版信息 @@ -428,6 +438,8 @@ - `lshw`,`lscpu`,`lspci`,`lsusb` 和 `dmidecode`:查看硬件信息,包括 CPU、BIOS、RAID、显卡、USB设备等 +- `lsmod` 和 `modifno`:列出内核模块,并显示其细节 + - `fortune`,`ddate` 和 `sl`:额,这主要取决于你是否认为蒸汽火车和莫名其妙的名人名言是否“有用” ## 仅限 Mac 系统 From fd2bc5052262a331edaaf9463b20d6a59a2f8da6 Mon Sep 17 00:00:00 2001 From: Chunyang Xu Date: Mon, 27 Jul 2015 18:53:18 +0800 Subject: [PATCH 2/7] zh: Update translation I think "OS X" now is the official name of OS for Mac, according to https://en.wikipedia.org/wiki/OS_X --- README-zh.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README-zh.md b/README-zh.md index 422c1c6..e125835 100644 --- a/README-zh.md +++ b/README-zh.md @@ -11,7 +11,7 @@ - [系统调试](#系统调试) - [一行代码](#一行代码) - [冷门但有用](#冷门但有用) -- [仅限 Mac 系统](#仅限-mac-系统) +- [仅限 MacOS X 系统](#仅限-macos-x-系统) - [更多资源](#更多资源) - [免责声明](#免责声明) - [授权条款](#授权条款) @@ -32,7 +32,7 @@ 涵盖范围: - 这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简洁(避免一些不必要的东西以及一些偏题的可以在其他地方翻阅到文献的东西)。 每个小技巧在某个特定情境下都是基本的或能够显著地节约时间。 -- 本文为 Linux 所写,除了[仅限 Mac 系统](#仅限-mac-系统)节。其它节中的大部分内容都适用于其它 Unix 系统或 Mac 系统,甚至 Cygwin。 +- 本文为 Linux 所写,除了[仅限 MacOS X 系统](#仅限-macos-x-系统)节。其它节中的大部分内容都适用于其它 Unix 系统或 MacOS 系统,甚至 Cygwin。 - 本文关注于交互式 Bash,尽管很多技巧适用于其他 shell 或 Bash 脚本。 - 本文包括了“标准的”Unix 命令和需要安装特定包的命令,只要它们足够重要。 @@ -442,9 +442,9 @@ - `fortune`,`ddate` 和 `sl`:额,这主要取决于你是否认为蒸汽火车和莫名其妙的名人名言是否“有用” -## 仅限 Mac 系统 +## 仅限 MacOS X 系统 -以下是*仅限于* Mac 系统的技巧 +以下是*仅限于* MacOS 系统的技巧 - 用 `brew` (Homebrew)或者 `port` (MacPorts)进行包管理。这些可以用来在 Mac 系统上安装以上的大多数命令。 @@ -454,7 +454,7 @@ - Spotlight: 用 `mdfind` 搜索文件,用 `mdls` 列出元数据(例如照片的 EXIF 信息)。 -- 注意 Mac 系统是基于 BSD UNIX 的,许多命令(例如 `ps`,`ls`,`tail`,`awk`,`sed`)都和 Linux 中有些微的不同,这些极大的被 System V-style Unix 和 GNU 工具影响。你可以通过标题为 "BSD General Commands Manual" 的 man 页面发现这些不同。在有些情况下 GNU 版本的命令也可能被安装(例如 `gawk` 和 `gsed` 对应 GNU 中的 awk 和 sed )。如果要写跨平台的 Bash 脚本,避免使用这些命令(例如,考虑 Python 或者 `perl` )或者经过仔细的测试。 +- 注意 MacOS 系统是基于 BSD UNIX 的,许多命令(例如 `ps`,`ls`,`tail`,`awk`,`sed`)都和 Linux 中有些微的不同,这些极大的被 System V-style Unix 和 GNU 工具影响。你可以通过标题为 "BSD General Commands Manual" 的 man 页面发现这些不同。在有些情况下 GNU 版本的命令也可能被安装(例如 `gawk` 和 `gsed` 对应 GNU 中的 awk 和 sed )。如果要写跨平台的 Bash 脚本,避免使用这些命令(例如,考虑 Python 或者 `perl` )或者经过仔细的测试。 ## 更多资源 From 123293a0a0288368c2b723c401071a8ae56e2c54 Mon Sep 17 00:00:00 2001 From: Joshua Levy Date: Wed, 29 Jul 2015 23:35:42 -0700 Subject: [PATCH 3/7] Add iostat example. Improve langauge. Fixes #231. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b98611..f4ec7a5 100644 --- a/README.md +++ b/README.md @@ -229,9 +229,9 @@ Notes: - For web debugging, `curl` and `curl -I` are handy, or their `wget` equivalents, or the more modern [`httpie`](https://github.com/jakubroztocil/httpie). -- To know disk/cpu/network status, use `iostat`, `netstat`, `top` (or the better `htop`), and (especially) `dstat`. Good for getting a quick idea of what's happening on a system. +- To know current disk/cpu/network status, the classic tools are `iostat`, `netstat`, and `top` (or the better `htop`). Use `iostat -mxz 15` for basic CPU and detailed per-partition disk stats and performance insight. -- For a more in-depth system overview, use [`glances`](https://github.com/nicolargo/glances). It presents you with several system level statistics in one terminal window. Very helpful for quickly checking on various subsystems. +- For a quick overview of what's happening on a system, `dstat` is especially useful. For broadest overview with details, use [`glances`](https://github.com/nicolargo/glances). - To know memory status, run and understand the output of `free` and `vmstat`. In particular, be aware the "cached" value is memory held by the Linux kernel as file cache, so effectively counts toward the "free" value. From c608c225f3786d48a3487c7abc266f15488f711a Mon Sep 17 00:00:00 2001 From: Joshua Levy Date: Thu, 30 Jul 2015 00:02:44 -0700 Subject: [PATCH 4/7] Add iotop. Put netstat + ss in their own item. Fixes #78 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f4ec7a5..b398baa 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,9 @@ Notes: - For web debugging, `curl` and `curl -I` are handy, or their `wget` equivalents, or the more modern [`httpie`](https://github.com/jakubroztocil/httpie). -- To know current disk/cpu/network status, the classic tools are `iostat`, `netstat`, and `top` (or the better `htop`). Use `iostat -mxz 15` for basic CPU and detailed per-partition disk stats and performance insight. +- To know current cpu/disk status, the classic tools are `top` (or the better `htop`), `iostat`, and `iotop`. Use `iostat -mxz 15` for basic CPU and detailed per-partition disk stats and performance insight. + +- For network connection details, use `netstat` and `ss`. - For a quick overview of what's happening on a system, `dstat` is especially useful. For broadest overview with details, use [`glances`](https://github.com/nicolargo/glances). From ab3319f766f8df2496114d4d665376b3bd24e257 Mon Sep 17 00:00:00 2001 From: Xudong Zhang Date: Tue, 4 Aug 2015 10:22:04 +0800 Subject: [PATCH 5/7] Fix a typo. modifno should be modinfo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b398baa..e88677f 100644 --- a/README.md +++ b/README.md @@ -449,7 +449,7 @@ A few examples of piecing together commands: - `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: hardware information, including CPU, BIOS, RAID, graphics, devices, etc. -- `lsmod` and `modifno`: List and show details of kernel modules. +- `lsmod` and `modinfo`: List and show details of kernel modules. - `fortune`, `ddate`, and `sl`: um, well, it depends on whether you consider steam locomotives and Zippy quotations "useful" From 2cf2393063996626a135821775d7e05b36e05d66 Mon Sep 17 00:00:00 2001 From: Joshua Levy Date: Mon, 3 Aug 2015 21:43:03 -0700 Subject: [PATCH 6/7] More detail on ctrl-r. Fixes #52. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b398baa..12f7ff7 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ Notes: ## Everyday use -- In Bash, use **Tab** to complete arguments and **ctrl-r** to search through command history. +- In Bash, use **Tab** to complete arguments and **ctrl-r** to search through command history (after pressing, type to search, press **ctrl-r** repeatedly to cycle through more matches, press **Enter** to execute the found command, or hit the right arrow to put the result in the current line to allow editing). - In Bash, use **ctrl-w** to delete the last word, and **ctrl-u** to delete all the way back to the start of the line. Use **alt-b** and **alt-f** to move by word, **ctrl-a** to move cursor to beginning of line, **ctrl-e** to move cursor to end of line, **ctrl-k** to kill to the end of the line, **ctrl-l** to clear the screen. See `man readline` for all the default keybindings in Bash. There are a lot. For example **alt-.** cycles through previous arguments, and **alt-*** expands a glob. From 873363937ea4ece4192be893acc5ecd7b234f115 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Tue, 4 Aug 2015 14:47:29 +0200 Subject: [PATCH 7/7] sl: update translation# --- README-sl.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README-sl.md b/README-sl.md index 456924e..c7e8b87 100644 --- a/README-sl.md +++ b/README-sl.md @@ -70,7 +70,7 @@ Opombe: ## Vsakodnevna uporaba -- V Bash-u uporabite **Tab** za dokončanje argumentov in **ctrl-r**, da iščete skozi zgodovino ukazov. +- V Bash-u uporabite **Tab** za dokončanje argumentov in **ctrl-r**, da iščete skozi zgodovino ukazov (po pritiski, vtipkajte za iskanje, pritisnite **ctrl-r** s ponavljanjem za kroženje skozi več ujemanj, pritisnite **Enter**, da izvršite najdeni ukaz, ali pritisnite desno puščico, da date trenutni rezultat v trenutno vrstico in omogočite urejanje). - V Bash-u uporabite **ctrl-w**, da izbrišete zadnjo besedo in **ctrl-u**, da izbrišete vse do začetka vrstice. Uporabite **alt-b** in **alt-f**, da se premikate po besedah, **ctrl-a**, da premaknete kurzor na začetek vrstice, **ctrl-e**, da premaknete kurzor na konec vrstice, **ctrl-k**, da ubijete do začetka vrstice, **ctrl-l**, da počistite zaslon. Glejte `man readline` za vse privzete vezave tipk v Bash-u. Na voljo jih je veliko. Na primer **alt-.** kroži skozi prejšnje argumente in **alt-*** razširi glob. @@ -229,9 +229,11 @@ Opombe: - Za spletno razhroščevanje, sta priročna `curl` in `curl -I` ali pa njun ekvivalent `wget`, ali bolj moderen [`httpie`](https://github.com/jakubroztocil/httpie). -- Da izveste status diska/procesorja/omrežja, uporabite `iostat`, `netstat`, `top` (ali bolje `htop`) in (posebno) `dstat`. Dobro za dobiti hitro idejo, kaj se dogaja na sistemu. +- Da izveste trenutni status diska/procesorja/omrežja, so na voljo klasična orodja `top`, (ali bolje `htop`), `iostat` in `iotop` . Uporabite `iostat -mxz 15` za osnovno statistiko CPU in podrobno na particijo statistiko diska in vpogled v uspešnost. -- Za hiter podrobnejši pregled sistema uporabite [`glances`](https://github.com/nicolargo/glances). Predstavi vam nekaj statistik nivoja sistema v enem oknu terminala. Zelo uporabno za hitro preverjanje na različnih podsistemih. +- Za podrobnosti omrežne povezave uporabite `netstat` in `ss`. + +- Za hiter pregled, kaj se dogaja na sistemu, je `dstat` posebno uporaben. Za širši pregled s podrobnostmi uporabite [`glances`](https://github.com/nicolargo/glances). - Da izveste status spomina, poženite in razumite izpis `free` in `vmstat`. Še posebej bodite pozorni, da je vrednost "cached" držana v spominu s strani jedra Linux-a kot datoteka predpomnilnika, tako da efektivno šteje proti vrednosti "free".