Недостающий урок компьютерного образования

задняя часть Shell
Недостающий урок компьютерного образования

Эй, клоун на самом деле я, поиск в WeChat»Тихий король 2"Следуйте за этим тихим, но интересным программистом~

"Предыдущий«После того, как вы разберетесь с командной строкой, терминалом и оболочкой (если вы еще не разобрались, вы можете щелкнуть синее слово, чтобы посмотреть), сегодняшнее письмо будет намного более гладким. О, невероятный комфорт!

Давайте сразу к делу. Компьютерные курсы в университетах обычно сосредоточены на преподавании академических курсов, таких как компьютерные операционные системы, принципы построения компьютеров, компьютерные сети и т. д., а также на конкретном языке программирования, таком как Java, C++/C, и на теме овладения инструментами. Часто это не входит в рамки преподаваемых курсов, и студенты должны изучать их самостоятельно.

Но на самом деле некоторые инструменты используются так часто, что для их описания можно использовать одну идиому — сопровождающие друг друга днем ​​и ночью. Например, командная строка не только часто используется в студенческие годы, но и неразлучна после работы. Поэтому становится необходимым потратить некоторое время на оттачивание умения использовать эти инструменты. Например, сегодняшний главный герой — командная строка Shell, эксплуатация и обслуживание проекта в основном осуществляется через Shell.

Я помню, когда я только начал работать, мне нужно было спросить старшего по поводу онлайн-развертывания. Я стоял позади него и смотрел, как его ловкие пальцы ловко управляются с клавиатурой.В черном окне XShell радостно прыгали разноцветные персонажи, а на пианино какая-то Джейлен играла «Рапсодию против чешуи».Чувство, особенно преклонение.

01. Что такое Шелл?

Интерактивные интерфейсы современных компьютеров разнообразны: от обычных графических интерфейсов до голосового ввода, AR и VR, и все они могут удовлетворять вводу инструкций. Эти интерфейсы могут охватывать подавляющее большинство сценариев приложений, но они фундаментально ограничивают другой способ работы — вы не можете щелкнуть несуществующую кнопку или использовать свой голос для ввода команды, которая еще не введена.

Чтобы в полной мере использовать мощь компьютера, нам иногда приходится возвращаться к самому примитивному способу взаимодействия — буквальному интерфейсу: Shell, программе, написанной на языке C, которая является мостом для пользователей к использованию Linux.

Почти все операционные системы поддерживают ту или иную форму оболочки командной строки, а некоторые даже предлагают несколько оболочек на выбор. Общие оболочки в Linux:

  • Оболочка Борна (/usr/bin/sh или /bin/sh)
  • Оболочка Bourne Again (/bin/bash)
  • Оболочка C (/usr/bin/csh)
  • K Shell (/usr/bin/ksh)
  • Оболочка для Root (/sbin/sh)

Хотя детали немного отличаются, основная функциональность та же: она позволяет вам выполнять программу, вводить инструкции и получать какой-то полуструктурированный вывод.

доступныйcat /etc/shellsкоманда для отображения оболочки на этом компьютере. Я использую Mac с bash, csh, ksh, sh, tcsh, zsh и т. д.

По умолчанию используется zsh, что можно увидеть в заголовке окна. Если вы хотите переключиться на другую оболочку, вы можете напрямую ввести имя оболочки, например tcsh, как показано на рисунке ниже.

Блин, я случайно назвал свое имя. Если вы хотите выйти из текущей оболочки в оболочку по умолчанию, введитеexitкоманда сделает.

02. Оболочка для начинающих

Найдите «Терминал» на панели запуска и откройте его (я использую Mac), как показано на рисунке ниже.

Начнем с заголовка окна, сосредоточившись на zsh.

В 2019 году Apple выпустила macOS нового поколения, macOS Catalina, которая принесла серьезные изменения профессиональным пользователям: zsh заменила bash в качестве оболочки по умолчанию. По сравнению с bash, zsh имеет более мощные функции, такие как более интеллектуальное автозаполнение, более богатые темы и многое другое. Это определенно спортивная машина в карете, летающая машина в спортивной машине, известная в истории как «Ultimate Shell».

Поговорим о содержании формы.

Первая строка показывает время последнего входа в систему. Некоторым студентам будет любопытно, что, черт возьми, такое «ttys000»?

Проще говоря, tty — это общий термин для терминалов. Видимый"наконец-то их опустил” учащиеся должны знать, что первые терминалы были телетайпными принтерами (Teletype / Teletypewriter), английская аббревиатура — tty. Хотя оконечное оборудование больше не ограничивается телетайпами, название tty осталось.

«ttys000» — это tty плюс код s000.

Вторая строка говорит нам, что имя хостаitwanger. Имя хоста можно изменить через «Системные настройки» → «Общий доступ» → «Имя компьютера» → «Редактировать».%За ним следует подсказка, в которой можно ввести любой символ, хотя некоторые из них могут быть проанализированы оболочкой, а некоторые нет.

03. О, мой Зш

Zsh сама по себе очень мощная, но конфигурация сложна, и опыт для обычных пользователей очень скудный. Пока однажды скучный парень не разработал проект, умеющий быстро настроить zsh, под названием «Oh My Zsh», адрес на GitHub такой:

GitHub.com/ohdollarindex/ohm…

Эта штука чрезвычайно проста в установке и позволяет нам добиться быстрого успеха, что-то вроде «пять минут, чтобы выучить ХХХ».

Выполнить прямо в терминалеsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Oh My Zsh может быть установлен автоматически.

Если автоматическая установка не удалась, вы можете попробовать установить ее вручную.

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

По некоторым причинам скорость может быть низкой, терпеливо подождите некоторое время.

Повторно откройте новый терминал после завершения установки, и вы увидите цветную подсказку (логотип стандартной темы Oh My Zsh).

Конфигурация Oh My Zsh ориентирована на~/.zshrcв файле (~/ 表示根目录), который можно открыть через vim.

vim ~/.zshrc

Как видите, тема по умолчанию, используемая Oh My Zsh, — robbyrussell, которую можно найти в~/.oh-my-zsh/themesНайдите в каталоге другие темы для переключения.

Если вы не знаете, какую тему выбрать, вы можете просмотреть ее по ссылке ниже.

GitHub.com/ohdollarindex/ohm…

Если у вас возникли трудности с выбором, вы можете настроить его случайным образом, как я, и Oh My Zsh будет выбирать его за вас каждый раз, когда вы открываете новое окно.

ZSH_THEME="random"

Теперь, просто открыв новое окно, вы увидите, что тема случайным образом попала на essembeh.

Поговорим о плагинах. Oh My Zsh предоставляет полную систему подключаемых модулей с более чем 100 подключаемыми модулями по умолчанию, которые можно найти в~/.oh-my-zsh/pluginsНайдите эти плагины в каталоге. Если вы не уверены, что делают эти плагины, вы можете проверить соответствующий файл README.md в каталоге плагинов. Конфигурация плагина также находится в файле .zshrc.В настоящее время плагином по умолчанию является только git.

На данный момент установка, настройка и подключаемые модули Oh My Zsh завершили троицу, и окончательная оболочка полностью дебютировала.

04. Повторное использование оболочки

выполнить простейшую командуdate, который, по крайней мере, напечатает текущую дату и время.

Затем курсор ждет, пока мы введем другие команды, и мы можем выполнить команду с параметрами.

echo hello

Команда echo выводит параметр hello.Оболочка анализируется на основе команд, разделенных пробелами.Первое слово представляет исполняемую программу, а последующие слова используются в качестве параметров, передаваемых программе. Если вы хотите, чтобы параметр содержал пробелы, заключите его в одинарные или двойные кавычки.

echo "hello world"

Когда мы выполняем команду в оболочке, мы фактически выполняем простой фрагмент кода, который оболочка может интерпретировать и выполнять. Если команда не входит в предсказуемую область действия оболочки, она обращается к переменным среды.$PATH.

Вы можете использовать команду which, чтобы определить, к какой конкретной программе относится имя программы. Вы также можете обойти $PATH и использовать команду с путем для прямого выполнения, например/bin/date.

Путь в оболочке — это набор разделенных каталогов, используемых в Linux и macOS./сплит, в Windows да\, из-за этого мы должны сначала получить системный разделитель при программировании (Java — этоFile.separatorполучается), иначе программа не может быть запущена под разными операционными системами!

Если путь начинается с/В начале это абсолютный путь, а остальные относительные пути. Доступ к текущему рабочему каталогу можно получить черезpwdкоманду получить, переключить каталог черезcdЗаказ..представляет текущий каталог,..Указывает родительский каталог.

Shell будет отображать текущую информацию о пути в режиме реального времени. в состоянии пройтиlsкоманда, чтобы проверить, какие файлы содержатся в текущем каталоге.После установки Oh My Zsh вы также можете передатьll(Фактическиls -lсокращение для ) отображает подробную информацию о файле или папке.

Краткое введение в атрибуты файлов будет полезно позже.

  • d: первый бит указывает тип файла, d — каталог, l — файл ссылки, а — обычный файл.
  • rwx: биты 2-4 представляют разрешения, которые есть у владельца этого файла, r — чтение, w — запись, а x — выполнение.
  • r-x: Биты 5-7 указывают разрешения, которые есть у пользователей в той же группе, что и владелец этого файла.
  • r-x: Биты 8-10 представляют разрешения, которые есть у других пользователей.

Например:

-rw-r--r--   1 maweiqing  staff     6B  1 12 16:35 hello.txt

выражатьhello.txtЭто обычный файл, у maweiqing есть права на чтение и запись, но нет разрешений на выполнение.Пользователи в той же группе сотрудников, что и maweiqing, имеют права только на чтение, а остальные пользователи такие же.

Если вы хотите узнать параметры команд, входную и выходную информацию или хотите понять, как они работают, вы можете попробоватьmanэта команда. Он принимает имя программы в качестве аргумента и отображает ее документацию (руководство пользователя).

man ls

можно нажатьqклавишу для выхода из руководства пользователя. Вы можете воспользоваться возможностью научитьсяmv(для переименования или перемещения файлов),cp(копировать файлы) иmkdir(Новая папка) Эти общие команды. Уведомление,rm(Удаление файлов) Эту команду следует использовать с осторожностью, это может быть ритмом удаления библиотеки и побега!

В оболочке программа имеет два основных потока: поток ввода и поток вывода. Когда программа пытается прочитать информацию, она читает из входного потока; когда программа пытается напечатать информацию, она выводит информацию в выходной поток. Обычно в качестве устройства ввода используется клавиатура, а в качестве устройства вывода — дисплей.

можно использовать<а также>для перенаправления входных и выходных потоков. использовать>>Перенаправить вывод в файл как добавление.

➜  itwanger echo hello > hello.txt
➜  itwanger cat hello.txt
hello
➜  itwanger cat < hello.txt 
hello
➜  itwanger cat < hello.txt > hello1.txt
➜  itwanger cat hello1.txt 
hello
➜  itwanger echo world >> hello.txt 
➜  itwanger cat hello.txt 
hello
world

Для Java-программистов нам обычно нужно запускать JAR-файлы, подобные этому, в среде выполнения.&Делегат работает в фоновом режиме.

nohup java -jar XXX.jar > out.log &

Для большинства Unix-подобных систем существует особый тип пользователя — пользователь root, который может создавать, читать, обновлять и удалять любые файлы в системе.

Unix был разработан Bell Labs в 1969 году. В настоящее время существует три основных системы Unix: AIX, HP-UX и Solaris, которые несовместимы друг с другом. Linux был разработан финским студентом университета Линусом в 1991 году. Это Unix-подобная система, но ее код не является производным от какой-либо версии Unix и вообще не является ответвлением Unix.

Обычно мы не входим в систему напрямую как пользователь root, потому что это может привести к поломке системы из-за некоторых ошибок. Поэтому, когда это необходимо, мы будем использоватьsudoкоманда, то естьsu(суперпользователь) для выполнения некоторых операций.

когда вы встречаетеpermission denied(Отказано в доступе) обычно возникает из-за того, что для работы необходимо быть пользователем root. быть правым?

После изучения этого ваши знания о Shell уже могут выполнять некоторые основные задачи. Учащиеся с облачными серверами или учащиеся, установившие виртуальные машины, могут создать на нем временную папку для отработки команд, упомянутых ниже.

Наконец, я надеюсь, что студенты смогут эффективно использовать Shell, и это будет очень полезно после работы!Я Тихий Король Эр, если вы считаете, что это хорошо, ставьте лайки, ищите и комментируйте..


Я всегда буду настаивать на создании, если вы найдете контент полезным, добро пожаловать в поиск WeChat "Тихий король 2"Первый раз читаю, отвечаю"102«Есть чистая Java-версия заметок по чистке LeetCode, с которой я недавно разобрался.

PS: В уведомлении от Мисс Наггетс только что говорилось, что я был в списке в марте и подарил бейсболку Наггетс. Я очень этого жду. Я чувствую, что платформа Наггетс предоставляет нам платформу для творчества и вознаграждений. !