mirror of
https://github.com/xmengnet/the-art-of-command-line.git
synced 2024-12-26 09:36:28 +08:00
Merge branch 'refs/heads/jlevy/master'
This commit is contained in:
commit
5d6831911f
3 changed files with 9 additions and 21 deletions
|
@ -24,14 +24,14 @@
|
||||||
여기있는 대부분의 것은
|
여기있는 대부분의 것은
|
||||||
[원래](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands)
|
[원래](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands)
|
||||||
[Quora에](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix)
|
[Quora에](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix)
|
||||||
[올라온](http://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know) 것입니.
|
[올라온](http://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know) 것입니다.
|
||||||
하지만 거기에 관심을 가지기보다, Github를 이용하는 것이 더 가치있는 것처럼 보입니다. 여기엔 더 재능있는 사람들이 손쉽게 개선안을 제안할 수 있는 곳이죠. 만약 문제가 있거나, 더 나아질 수 있는 내용이 보인다면, 이슈를 제출하거나 풀 리퀘스트를 보내주세요! (물론 meta 섹션과 이미 존재하는 풀 리퀘스트와 이슈를 봐주기를 바랍니다.)
|
하지만 거기에 관심을 가지기보다, Github를 이용하는 것이 더 가치있는 것처럼 보입니다. 여기엔 더 재능있는 사람들이 손쉽게 개선안을 제안할 수 있는 곳이죠. 만약 문제가 있거나, 더 나아질 수 있는 내용이 보인다면, 이슈를 제출하거나 풀 리퀘스트를 보내주세요! (물론 meta 섹션과 이미 존재하는 풀 리퀘스트와 이슈를 봐주기를 바랍니다.)
|
||||||
|
|
||||||
## Meta
|
## Meta
|
||||||
|
|
||||||
범위:
|
범위:
|
||||||
|
|
||||||
- 이 가이드는 초심자와 경험자 모두를 위한 것입니다. 목표는 범위(전부 다 중요합니다!), 구체성(대부분의 일반적인 케이스에 대한 구체적인 예제), 그리고 간결함(쉽게 마주치지 않는, 중요하지 않고, 지엽적인 것을 피함) 입니다. 모든 팁은 특정 상황에서 매우 중요하거나, 여러 대안들 사이에서의 시간을 확연하게 절약합니다.
|
- 이 가이드는 초보자와 경험자 모두를 위한 것입니다. 목표는 범위(전부 다 중요합니다!), 구체성(대부분의 일반적인 케이스에 대한 구체적인 예제), 그리고 간결함(쉽게 마주치지 않는, 중요하지 않고, 지엽적인 것을 피함) 입니다. 모든 팁은 특정 상황에서 매우 중요하거나, 여러 대안들 사이에서의 시간을 확연하게 절약합니다.
|
||||||
- 이 문서는 리눅스를 위한것입니다. "[MacOS only](#macos-only)"세션을 제외하고 말이죠. 일부는 MacOS에서 똑같이 적용되지 않습니다(Cygwin에서 조차 말이죠).
|
- 이 문서는 리눅스를 위한것입니다. "[MacOS only](#macos-only)"세션을 제외하고 말이죠. 일부는 MacOS에서 똑같이 적용되지 않습니다(Cygwin에서 조차 말이죠).
|
||||||
- 인터랙티브 Bash에 초점이 맞추어져있습니다만, 대부분의 팁은 다른 쉘이나, general Bash 스크립트에서도 동작합니다.
|
- 인터랙티브 Bash에 초점이 맞추어져있습니다만, 대부분의 팁은 다른 쉘이나, general Bash 스크립트에서도 동작합니다.
|
||||||
- 이 문서는 "스탠다드" 유닉스 커맨드와 특정 패키지 설치를 필요로 하는 것 둘 다 포함하고 있습니다. 여기서 다루는 스탠다드 커맨드와 특정 패키지에 대한 것은 포함될만큼 충분히 중요합니다.
|
- 이 문서는 "스탠다드" 유닉스 커맨드와 특정 패키지 설치를 필요로 하는 것 둘 다 포함하고 있습니다. 여기서 다루는 스탠다드 커맨드와 특정 패키지에 대한 것은 포함될만큼 충분히 중요합니다.
|
||||||
|
|
14
README-sl.md
14
README-sl.md
|
@ -168,7 +168,7 @@ Opombe:
|
||||||
|
|
||||||
- Če morate upravljati z XML, je `xmlstarlet` star vendar dober.
|
- Če morate upravljati z XML, je `xmlstarlet` star vendar dober.
|
||||||
|
|
||||||
- Za JSON, use `jq`.
|
- Za JSON, use [`jq`](http://stedolan.github.io/jq/).
|
||||||
|
|
||||||
- Za Excel ali CSV datoteke, [csvkit](https://github.com/onyxfish/csvkit) ponuja `in2csv`, `csvcut`, `csvjoin`, `csvgrep` itd.
|
- Za Excel ali CSV datoteke, [csvkit](https://github.com/onyxfish/csvkit) ponuja `in2csv`, `csvcut`, `csvjoin`, `csvgrep` itd.
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ Opombe:
|
||||||
|
|
||||||
- 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".
|
- 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".
|
||||||
|
|
||||||
- Sistemsko razhroščevanje Java je drugačen tip, vendar enostaven trik na JVM-jih Oracle-a in nekaterih ostalih je, da lahko poženete `kill -3 <pid>` in sledite celotnemu stack-u in povzetku kopic (vključno s podrobnostmi zbirke splošnih smeti, ki so lahko zelo informativne), ki bodo oddane v stderr/logs.
|
- Sistemsko razhroščevanje Java je drugačen tip, vendar enostaven trik na JVM-jih Oracle-a in nekaterih ostalih je, da lahko poženete `kill -3 <pid>` in sledite celotnemu stack-u in povzetku kopic (vključno s podrobnostmi zbirke splošnih smeti, ki so lahko zelo informativne), ki bodo oddane v stderr/logs. JDK-jevi `jps`, `jstat`, `jstack`, `jmap` so uporabni. [SJK Tools](https://github.com/aragozin/jvm-tools) so bolj napredni.
|
||||||
|
|
||||||
- Uporabite `mtr` kot boljši usmerjevalnik sledenja za identifikacijo težav omrežja.
|
- Uporabite `mtr` kot boljši usmerjevalnik sledenja za identifikacijo težav omrežja.
|
||||||
|
|
||||||
|
@ -286,12 +286,6 @@ Nekaj primerov sestavljanja ukazov skupaj:
|
||||||
find . -type f -ls
|
find . -type f -ls
|
||||||
```
|
```
|
||||||
|
|
||||||
- Uporabite `xargs` ali `parallel` kadarkoli lahko. Bodite pozorni, saj lahko kontrolirate kolikokrat izvršite na vrstico (`-L`) kot tudi paralelnost (`-P`). Če niste prepričani, da bo naredilo pravilno stvar, uporabite najprej xargs echo. Priročen je tudi `-I{}`. Primeri:
|
|
||||||
```sh
|
|
||||||
find . -name '*.py' | xargs grep some_function
|
|
||||||
cat hosts | xargs -I{} ssh root@{} hostname
|
|
||||||
```
|
|
||||||
|
|
||||||
- Recimo, da imate tekstovno datoteko, kot dnevnik spletnega strežnika in določena vrednost se pojavi na nekaterih vrsticah, kot parameter `acct_id`, ki je prisoten v URL-ju. Če želite ujemanja, koliko je zahtevkov za vsak `acct_id`:
|
- Recimo, da imate tekstovno datoteko, kot dnevnik spletnega strežnika in določena vrednost se pojavi na nekaterih vrsticah, kot parameter `acct_id`, ki je prisoten v URL-ju. Če želite ujemanja, koliko je zahtevkov za vsak `acct_id`:
|
||||||
```sh
|
```sh
|
||||||
cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn
|
cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn
|
||||||
|
@ -345,7 +339,7 @@ Nekaj primerov sestavljanja ukazov skupaj:
|
||||||
|
|
||||||
- `factor`: celo številski faktorji
|
- `factor`: celo številski faktorji
|
||||||
|
|
||||||
- `gpg`: enkriptira in podpiše datoteke
|
- [`gpg`](https://gnupg.org/): enkriptira in podpiše datoteke
|
||||||
|
|
||||||
- `toe`: tabela vnosov terminfo
|
- `toe`: tabela vnosov terminfo
|
||||||
|
|
||||||
|
@ -353,7 +347,7 @@ Nekaj primerov sestavljanja ukazov skupaj:
|
||||||
|
|
||||||
- `socat`: rele vtičnice in odpravnik tcp porta (podobno kot `netcat`)
|
- `socat`: rele vtičnice in odpravnik tcp porta (podobno kot `netcat`)
|
||||||
|
|
||||||
- `slurm`: vizualizacija prometa omrežja
|
- [`slurm`](https://github.com/mattthias/slurm): vizualizacija prometa omrežja
|
||||||
|
|
||||||
- `dd`: premikanje podatkov med datotekami in napravami
|
- `dd`: premikanje podatkov med datotekami in napravami
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ Notes:
|
||||||
|
|
||||||
- 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.
|
- 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.
|
||||||
|
|
||||||
- Java system debugging is a different kettle of fish, but a simple trick on Oracle's and some other JVMs is that you can run `kill -3 <pid>` and a full stack trace and heap summary (including generational garbage collection details, which can be highly informative) will be dumped to stderr/logs.
|
- Java system debugging is a different kettle of fish, but a simple trick on Oracle's and some other JVMs is that you can run `kill -3 <pid>` and a full stack trace and heap summary (including generational garbage collection details, which can be highly informative) will be dumped to stderr/logs. The JDK's `jps`, `jstat`, `jstack`, `jmap` are useful. [SJK tools](https://github.com/aragozin/jvm-tools) are more advanced.
|
||||||
|
|
||||||
- Use `mtr` as a better traceroute, to identify network issues.
|
- Use `mtr` as a better traceroute, to identify network issues.
|
||||||
|
|
||||||
|
@ -286,12 +286,6 @@ A few examples of piecing together commands:
|
||||||
find . -type f -ls
|
find . -type f -ls
|
||||||
```
|
```
|
||||||
|
|
||||||
- Use `xargs` or `parallel` whenever you can. Note you can control how many items execute per line (`-L`) as well as parallelism (`-P`). If you're not sure if it'll do the right thing, use xargs echo first. Also, `-I{}` is handy. Examples:
|
|
||||||
```sh
|
|
||||||
find . -name '*.py' | xargs grep some_function
|
|
||||||
cat hosts | xargs -I{} ssh root@{} hostname
|
|
||||||
```
|
|
||||||
|
|
||||||
- Say you have a text file, like a web server log, and a certain value that appears on some lines, such as an `acct_id` parameter that is present in the URL. If you want a tally of how many requests for each `acct_id`:
|
- Say you have a text file, like a web server log, and a certain value that appears on some lines, such as an `acct_id` parameter that is present in the URL. If you want a tally of how many requests for each `acct_id`:
|
||||||
```sh
|
```sh
|
||||||
cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn
|
cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn
|
||||||
|
|
Loading…
Reference in a new issue