Полезные команды 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
Распечатайте информацию о размере файла для каталога. Мы используем ее реже, но это очень полезная команда для изучения.
- du -h: Распечатать информацию, удобную для чтения человеком.
- du -a: вывести информацию о размере файлов в каталоге;
- 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 используется для копирования файла или каталога.
cp -f:
Когда копируемый файл перезаписывает существующий целевой файл, никакого подсказки не будет.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 способами.
ls -a
: показать все файлы и каталоги (включая те, которые начинаются с каталога .)ls -A
: Показать все файлы и каталоги (не включая каталоги, начинающиеся с .directory)ls -R
: Показать все файлы и каталоги, если в каталоге есть файлы, они будут перечислены по порядку
11.# rm
Он используется для удаления файла или каталога.
- rm -i: Удалите файлы в каталоге один за другим, он спросит вас, следует ли удалить файл перед его удалением.
- rm -r: обрабатывать все файлы в указанном каталоге и его подкаталогах вместе (Примечание: файлы не удаляются.)
- 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 .
Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.