Полезные команды CLI, которые помогут вам сделать больше.

Как интерфейсные разработчики, какие команды нам нужно знать? Если вы знакомы с этими командами, они значительно повысят вашу производительность.

· 1.# дерево
· 2.# wc
· 3.# du
· 4.# псевдоним
· 5.# grep
· 6.# cat
· 7.# clear
· 8.# cp
· 9.# cd
· 10.# лс
· 11.# пм
· 12.# хвост
· 13.# мв
· 14.# прикосновение
· 15.# which
· 16.# mkdir
· 17.# whoami

1.# дерево

Друзья мои, знаете ли вы, как составить список файловой структуры каталога, как показано ниже?

Он отлично показывает отношения каталогов между файлами, что действительно здорово.

commands
├── a.js
├── b.js
├── c.js
├── copy-apps
│   └── fe-apps
│       └── a.js
├── fe-apps
│   └── a.js
├── test.log
└── xxx
    └── yyy

Перед этим нужно установить команду дерево.

brew install tree

Затем просто выполните tree в каталоге файлов.

2.# wc

wc — это сокращение от word count, которое часто используется для статистики файлов. Он может подсчитывать количество слов, строк, символов, байтов и т. д.

Я часто использую его для подсчета количества строк кода в файле.

3.# du

Распечатайте информацию о размере файла для каталога. Мы используем ее реже, но это очень полезная команда для изучения.

  1. du -h: Распечатать информацию, удобную для чтения человеком.
  2. du -a: вывести информацию о размере файлов в каталоге;
  3. du -s: отображается только общий размер, конкретная информация не отображается.
➜  commands git:(master) ✗ du
0	./xxx/yyy
0	./xxx
0	./fe-apps
0	./copy-apps/fe-apps
0	./copy-apps
0	./.git/objects/pack
0	./.git/objects/info
0	./.git/objects
8	./.git/info
104	./.git/hooks
0	./.git/refs/heads
0	./.git/refs/tags
0	./.git/refs
136	./.git
168	.
➜  commands git:(master) ✗ du -h
  0B	./xxx/yyy
  0B	./xxx
  0B	./fe-apps
  0B	./copy-apps/fe-apps
  0B	./copy-apps
  0B	./.git/objects/pack
  0B	./.git/objects/info
  0B	./.git/objects
4.0K	./.git/info
 52K	./.git/hooks
  0B	./.git/refs/heads
  0B	./.git/refs/tags
  0B	./.git/refs
 68K	./.git
 84K	.

➜  commands git:(master) ✗ du -ha
4.0K	./a.js
  0B	./xxx/yyy
  0B	./xxx
  0B	./fe-apps/a.js
  0B	./fe-apps
4.0K	./test.log
  0B	./copy-apps/fe-apps/a.js
  0B	./copy-apps/fe-apps
  0B	./copy-apps
4.0K	./c.js
4.0K	./.git/config
  0B	./.git/objects/pack
  0B	./.git/objects/info
  0B	./.git/objects
4.0K	./.git/HEAD
4.0K	./.git/info/exclude
4.0K	./.git/info
4.0K	./.git/description
4.0K	./.git/hooks/commit-msg.sample
8.0K	./.git/hooks/pre-rebase.sample
4.0K	./.git/hooks/pre-commit.sample
4.0K	./.git/hooks/applypatch-msg.sample
4.0K	./.git/hooks/fsmonitor-watchman.sample
4.0K	./.git/hooks/pre-receive.sample
4.0K	./.git/hooks/prepare-commit-msg.sample
4.0K	./.git/hooks/post-update.sample
4.0K	./.git/hooks/pre-merge-commit.sample
4.0K	./.git/hooks/pre-applypatch.sample
4.0K	./.git/hooks/pre-push.sample
4.0K	./.git/hooks/update.sample
 52K	./.git/hooks
  0B	./.git/refs/heads
  0B	./.git/refs/tags
  0B	./.git/refs
 68K	./.git
4.0K	./b.js
 84K	.

du -sh

4. # псевдоним

Команда alias используется для установки псевдонима команды. Если вы просто наберете alias, будут перечислены все текущие настройки псевдонимов.

Давайте попробуем установить псевдоним для git status

alias gs="git status"

Примечание: если вы хотите, чтобы команда gs была постоянной, вы должны установить ее в .profile или .zshrc.

5.# группа

Нам часто нужно найти содержимое лог-файлов на сервере, grep будет нашим удобным помощником.

Имеется файл журнала test.log. Он содержит следующее:

const a = 1
const b = 2
const c = 3

console.log(a + b + c)

Как выделить места, содержащие символ a? Это очень легко, не так ли?

grep a test.log

6.# кошка

Основная цель cat — просмотреть содержимое файла и распечатать его на экране.

Но у него есть как минимум несколько других применений.

1. очистить содержимое a.js

➜  commands git:(master) ✗ cat a.js // There are two lines of code in a.js
const a = 'fatfish'

console.log(a)%
➜  commands git:(master) ✗ cat /dev/null > a.js // clear the contents of a.js
➜  commands git:(master) ✗ cat a.js // The content in a.js is cleared.
➜  commands git:(master) ✗

2. Скопируйте содержимое a.js в b.js

➜  commands git:(master) ✗ cat a.js
const name = 'fatfish'
console.log(name)
➜  commands git:(master) ✗ cat b.js // No content in b.js
➜  commands git:(master) ✗ cat a.js > b.js // Copy the contents of a.js to b.js
➜  commands git:(master) ✗ cat b.js // The content in b.js is the same as in a.js
const name = 'fatfish'
console.log(name)
➜  commands git:(master) ✗ cat a.js
const name = 'fatfish'
console.log(name)

3. Добавьте содержимое a.js к последнему символу c.js

➜  commands git:(master) ✗ cat a.js
const name = 'fatfish'
console.log(name)%
➜  commands git:(master) ✗ cat c.js
const age = 100
console.log(age)
➜  commands git:(master) ✗ cat a.js >> c.js
➜  commands git:(master) ✗ cat c.js
const age = 100
console.log(age)const name = 'fatfish'
console.log(name)

7.# очистить

Иногда нам нужно выполнить некоторые операции в терминале, чтобы содержимого экрана было достаточно, чтобы мы почувствовали раздражение.

Как их очистить? Нужно ли нам удалять их построчно?

8.# cp

Команда cp используется для копирования файла или каталога.

  1. cp -f: Когда копируемый файл перезаписывает существующий целевой файл, никакого подсказки не будет.
  2. cp -r: Если копируемый файл является файлом каталога, все подкаталоги и файлы в этом каталоге будут скопированы.
➜  commands git:(master) ✗ ls -R
a.js      b.js      copy-apps fe-apps
./copy-apps:
./fe-apps:
// 1. copy a file
➜  commands git:(master) ✗ cp a.js fe-apps
➜  commands git:(master) ✗ ls -R
a.js      b.js      copy-apps fe-apps
./copy-apps:
./fe-apps:
a.js
➜  commands git:(master) ✗ cp fe-apps copy-apps
cp: fe-apps is a directory (not copied).
// 2. copy a directory
➜  commands git:(master) ✗ cp -rf fe-apps copy-apps
➜  commands git:(master) ✗ ls -R
a.js      b.js      copy-apps fe-apps
./copy-apps:
fe-apps
./copy-apps/fe-apps:
a.js
./fe-apps:
a.js

9.# cd

В этой статье не должно быть ничего технического, потому что писать о cd действительно нечего, а как разработчик, кто с ним не знаком?

Возможно, вы правы, но я просто хотел сказать, что cd - может вернуться к последнему посещенному вами каталогу. Думаю, это хороший трюк.

10.# ls

Это очень часто используемая команда, она используется для отображения списка содержимого каталога файлов.

Его можно использовать как минимум 3 способами.

  1. ls -a: показать все файлы и каталоги (включая те, которые начинаются с каталога .)
  2. ls -A: Показать все файлы и каталоги (не включая каталоги, начинающиеся с .directory)
  3. ls -R: Показать все файлы и каталоги, если в каталоге есть файлы, они будут перечислены по порядку

11.# rm

Он используется для удаления файла или каталога.

  1. rm -i: Удалите файлы в каталоге один за другим, он спросит вас, следует ли удалить файл перед его удалением.

  1. rm -r: обрабатывать все файлы в указанном каталоге и его подкаталогах вместе (Примечание: файлы не удаляются.)
  2. rm -f: используется для принудительного удаления файла или каталога.

12.# хвост

Я думаю, у вас также должен быть опыт просмотра содержимого журнала на сервере, tail определенно хороший помощник.

tail -f filename будет отображать на экране содержимое хвоста filename, а когда его содержимое изменится, вы увидите на экране самое последнее содержимое.

13.# mv

Иногда мы хотим изменить имя файла или каталога или переместить его в другое место, тогда мы можем использовать команду mv.

1. Измените имя файла

➜  commands git:(master) ✗ ls
a.js
➜  commands git:(master) ✗ mv a.js xxx.js
➜  commands git:(master) ✗ ls
xxx.js
➜  commands git:(master) ✗

2. Переместить файлы в другие каталоги

➜  commands git:(master) ✗ ls -R
a.js    fe-apps
./fe-apps:
xxx.js
➜  commands git:(master) ✗ mv a.js fe-apps
➜  commands git:(master) ✗ ls -R
fe-apps
./fe-apps:
a.js   xxx.js

14. # коснуться

Я часто использую команду touch для создания нового файла, хотя она используется для изменения атрибута времени файла или каталога.

15.# который

Если вы хотите увидеть конкретный путь команды, вы можете использовать which.

➜  commands git:(master) ✗ which node
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/node
➜  commands git:(master) ✗ which npm
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/npm
➜  commands git:(master) ✗ which npx
/Users/dz0400229/.nvm/versions/node/v16.0.0/bin/npx
➜  commands git:(master) ✗

16.# мкдир

Да, вы наверняка использовали эту команду раньше, и рассказывать особо нечего!

Но mkdir -p dirname — это действительно то, что мы редко используем, для чего оно используется?

➜  commands git:(master) ✗ ls
a.js      b.js      copy-apps fe-apps
➜  commands git:(master) ✗ mkdir xxx/yyy // You cannot create the yyy directory because the xxx directory does not exist
mkdir: xxx: No such file or directory
➜  commands git:(master) ✗ mkdir -p xxx/yyy // `-p` will check if the xxx directory already exists, and create it if it doesn't.
➜  commands git:(master) ✗ ls
a.js      b.js      copy-apps fe-apps   xxx
➜  commands git:(master) ✗ ls -R
a.js      b.js      copy-apps fe-apps   xxx
./copy-apps:
fe-apps
./copy-apps/fe-apps:
a.js
./fe-apps:
a.js
./xxx:
yyy
./xxx/yyy:

17. # кто

Отображает имя пользователя.

➜  commands git:(master) ✗ whoami
dz0400229

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.