Работа с операционными системами GNU/Linux заключается прежде всего в работе с командной строкой. Командная оболочка позволяет пользователю взаимодействовать с операционной системой. Существует множество различных командных оболочек, в данной статье мы будем рассматривать наиболее распространенную командную оболочку bash.
Предполагается, что вы имеете доступ к консоли сервера или подключены к серверу посредством протокола удаленного доступа SSH и имеете возможность вводить команды в терминале.
Для того чтобы определить, какая оболочка используется пользователями в системе, необходимо открыть содержимое файла базы данных пользователей /etc/passwd и обратить внимание на последнее поле в каждой строке в котором указывается оболочка (поля разделяются символом :). Для просмотра содержимого этого файла, используйте команду cat:
timeweb@cloud:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
timeweb:x:1000:1000:Timeweb,,,:/home/timeweb:/bin/bash
mysql:x:106:112:MySQL Server,,,:/nonexistent:/bin/false
В этом примере, суперпользователь root и обычный пользователь timeweb используют оболочку bash и соответственно имеют доступ к командной строке. А системному пользователю mysql от которого запускается служба базы данных MySQL запрещено использовать оболочку из соображений безопасности.
Вы можете изменить оболочку пользователю с помощью команды chsh. Но для начала давайте определим список доступных оболочек, которые мы можем использовать.
timeweb@cloud:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
Например, чтобы изменить оболочку текущему пользователю timeweb с bash на обычный sh, выполните команду:
timeweb@cloud:~$ chsh -s /bin/sh timeweb
Чтобы изменить оболочку другому пользователю вам необходимы привилегии суперпользователя root. Например, можно заблокировать пользователю timeweb возможность доступа к использованию оболочки.
root@cloud:/home/timeweb# chsh -s /bin/false timeweb
Глобальные настройки командной строки находятся в файле /etc/profile, а настройки для каждого пользователя в скрытом файле ~/.bash_profile в его домашней директории.
vds
При работе в командной строке, используются следующие распространенные команды:
cat– вывод содержимого файла в консоль;pwd– вывод каталога в котором вы находитесь;cd– переход по директориям;ls– вывод содержимого каталога;echo– вывод текста в консоль;touch– создание нового пустого файла;mkdir– создание каталога;rmdir– удаление пустого каталога;mv– перемещение или переименование файлов и каталогов;history– вывод истории команд (история команд хранится в файле.bash_history).
Перед тем, как вводить команды в терминале мы должны понимать синтаксис ввода команд в оболочке.
command [options…] [arguments…]
Чтобы создать пустой файл newfile.txt, введите команду:
timeweb@cloud:~$ touch newfile.txt
Для показа содержимого текущей директории, введите команду:
timeweb@cloud:~$ ls
Мы можем передавать команде дополнительные параметры, например, вывести все содержимое каталога включая скрытые файлы и папки с командой ls и с опцией -a.
timeweb@cloud:~$ ls -a
Показать более детальную информацию содержимого текущей директории:
timeweb@cloud:~$ ls -l
Вы также можете объединить несколько опции для команды, например, вывести список файлов включая скрытые в подробном формате и посчитать их объем в человекопонятном виде (КБ, МБ, ГБ вместо байт):
timeweb@cloud:~$ ls -lah
Если вы используете несколько параметров, требующих аргументов, не объединяйте их. Например, опция -T, определяющая размер табуляции, также требует аргумента. Чтобы учесть оба аргумента, каждый вариант приводится отдельно:
timeweb@cloud:~$ ls -w 40 -T 12
Некоторые команды поддерживают дополнительные параметры, длина которых превышает один символ. Перед длинными параметрами команд ставится двойной дефис -- и значение параметра, обычно это имя параметра, например параметр --all, в котором перечислены все файлы, включая скрытые. Например:
timeweb@cloud:~$ ls --all
Для команд, которые поддерживают как длинные, так и короткие параметры, выполните команду, используя одновременно длинные и короткие параметры:
timeweb@cloud:~$ ls --all --reverse -t
Команды, поддерживающие длинные параметры, часто также поддерживают аргументы, которые могут быть указаны с символом равенства = или без него (вывод обеих команд одинаков):
timeweb@cloud:~$ ls --sort time
timeweb@cloud:~$ ls --sort=time
Команда unameотображает системную информацию. Эта команда по умолчанию выводит Linux, если выполняется без каких-либо параметров.
timeweb@cloud:~$ uname
Команда uname полезна по нескольким причинам, например, когда вам нужно определить имя компьютера, а также текущую версию используемого ядра ОС. Чтобы отобразить дополнительную информацию о системе, вы можете использовать одну из многих опций, доступных для команды uname. Например, чтобы отобразить всю информацию о системе, используйте параметр -a с командой uname:
timeweb@cloud:~$ uname -a
Чтобы перейти в другую директорию, введите команду cd, а также pwd, чтобы убедиться в этом:
timeweb@cloud:~$ cd Documents/
timeweb@cloud:~/Documents$ pwd
/home/timeweb/Documents
Чтобы вернуться в домашний каталог после перехода в новое место, используйте команду cd (change directory) без каких-либо аргументов:
timeweb@cloud:~$ cd
Разверните свой Linux VDS в Timeweb Cloud
Переменные среды — это глобальные переменные, использующиеся в операционной системе и обычные переменные, которые работают в пределах запущенного сеанса консоли. Для того чтобы посмотреть свое окружение введите команду без аргументов:
timeweb@cloud:~$ env
Чтобы вывести на экран значение какой-нибудь переменной окружения, достаточно вести команду echo $ИМЯ_ПЕРЕМЕННОЙ, например, просмотр домашней директории пользователя, хранящийся в переменной окружения $HOME:
timeweb@cloud:~$ echo $HOME
Для создания переменной используется простой синтаксис имя_переменной=значение_переменной. Для обращения к переменной указывается символ $, например:
timeweb@cloud:~$ var=value
timeweb@cloud:~$ echo $var
Мы познакомились с принципами работы в командной строке и базовыми командами.
