Разное

Справочник linux: Список 70 основных команд для терминала ОС Linux 🐧

Содержание

Справочник команд Linux (Unix) систем

Операционные системы Linux (Unix) имеют очень богатый набор команд. В связи с этим иногда очень удобно иметь под рукой небольшой справочник, который поможет найти наиболее часто используемые команды и утилиты.

В данном справочнике команды Linux (Unix) разбиты по категориям и с кратким описанием каждой команды  и примерами ее применения, что значительно облегчает поиск нужной команды.

Информационные и диагностические команды
uname -aПоказать версию ядра Linux
uname -m Отобразить архитектуру компьютера
cat /proc/Примеры:
Информация о версии и сборке для всех Linux:
cat /proc/version
Альтернатива указанной выше команды:
/usr/bin/lsb_release -ircd
Информация о версии и сборке для CentOS:
cat /etc/centos-release
Показать информацию о модели процессора (частота, инструкции и т.д.:
cat /proc/cpuinfo
Показать расширенную информацию о занимаемой оперативной памяти:
cat /proc/meminfo
hostnameПоказать сетевое имя компьютера
uptimeВремя работы системы без перезагрузки и выключения
dmesgПоказывает log-файл загрузки ОС
lshal Показать список всех устройств и их параметров
lspci -tvПоказать обнаруженные PCI-устройства
lsusb -tvПоказать обнаруженные USB-устройства
lsmodСписок всех модулей загруженных в ядро
modprobeЗагрузка модулей в ядро.
Загрузка модуля ext4:
modprobe ext4
chroot Пример смены root-окружения на /mnt:
chroot /mnt
После этого корневой раздел, примонтировнный к /mnt, будет использоваться как родной
lddСписок библиотек, необходимых для конкретной программы. Вывести список библиотек, необходимых для работы ssh: ldd /usr/bin/ssh
whereisПоказывает размещение бинарных файлов, исходных кодов и руководств, относящихся к конкретному файлу. Пример: whereis halt
crontabОбеспечивает возможность выполнения определённых задач по расписанию.
swapoff Отключение swap-разделов. Отключаем  swap (данные перемещаются в оперативную память): swapoff -a
swaponВключение swap-разделов. Включаем swap: swapon -a
dateПросмотр и изменение даты, времени. Примеры:
Показывает текущую дату и время:
date
Установить системные дату и время. Формат: ММДДЧЧммГГГГ.СС:
date 041217002016.00

 

Управление системой
shutdown Выключение(перезагрузка).
shutdown -r now # Перезагрузка;
shutdown -h 20:00 # Выключить питание в 20:00;
shutdown -h now # Выключение;
init 0Выключение
telinit 0Выключение
init 6 Перезагрузка
telinit 6Перезагрузка
halt Выключение
logoutВыйти из системы
rebootПерезагрузка

 

Файловые операции
pwd Показать текущую директорию
lsВыводит список файлов и каталогов. Примеры
ls -la вывод списка всех файлов и директорий, включая скрытые, отсортированного по имени файла;
ls -laX вывод списка всех файлов и директорий, включая скрытые, отсортированного по расширению
cdПереход по директориям. Примеры
cd /home  Переход в каталог /home
cd .. Переход в директорию уровнем выше
cd ~user Перейти в домашнюю директорию пользователя user
cd ~ перейти в домашнюю директорию текущего пользователя
touchСоздание пустого файла, например: touch test.txt
rmУдаление. Примеры:
rm test.txt Удаление файла
rm -rf temp Удаление директории с вложенными файлами
cp Копирование. Примеры:
cp  test.txt /home/test.txt Копирует test.txt из текущей директории в /home ;
cp -la /dir1 /dir2 Копирование директорий
lnCоздание символической ссылки.
Создать символическую ссылку к файлу /var/test.txt в директории /home:
ln -s /var/test.txt /home/test.txt
mkdirСоздание директории. Пример: mkdir temp
rmdir Удаление директории. Пример: rmdir temp
mvПеремещение или переименование.
Пример перемещения каталога:
mv /dir1 /dir2
Пример переименования файла:
mv file1 file1.old
locateПоиск. Пример поиска везде всех файлов с именем test.txt: locate test.txt
findПоиск.
Найти файлы и директории с именем test.txt в /home/it и вложенных:
find /home/it -name test.txt
Найти все файлы и директории в /home/it и вложенных, имена которых оканчиваются на ‘.txt’:
find /home/it -name «*.txt»
Найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней:
find /usr/bin -type f -atime +100
Найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней:
find /usr/bin -type f -mtime -10
Найти все файлы размером более 500000 байт:
sudo find /. -size +500000 -exec ls -l {} \;
stat Отображение всей доступной информации об указанном файле. Пример:stat test.txt
fileОпределяет тип файла. Пример: file test.txt
chmodПрава доступа, подробнее по ссылке chmod
chownМеняет владельца файла, пример:chown www:www test.txt
mc Файловый менеджер mc
pstreeпоказать дерево файлов и директорий
treeпоказать дерево файлов и директорий (с подсветкой файлов)

 

Архивация
tarархиватор. Примеры:
Создать архив test.tar содержащий /home/test.txt:
tar cf test.tar /home/test.txt
Cоздать архив с сжатием Gzip по имени test.tar.gz
tar czf test.tar.gz /home/test.txt
Cоздать tar-архив с сжатием Bzip2 по имени test.tar.bz
tar cjf test.tar.bz2 /home/test.txt
Распаковать архив test.tar в текущую папку:
tar xf test.tar
Распаковать архив в папку /opt:
tar xf test.tar -C /opt/
Распаковать tar-архив с Gzip:
tar xzf test.tar.gz
Распаковать tar-архив с Bzip2:
tar xjf test.tar.bz
Распаковать tar-архив с LZMA:
(sudo apt-get install xz-utils)
tar xpJf test.tar.xz
unrarархиватор. Примеры:
Разархивировать файл myfile.rar
unrar x -r /home/work/software/myfile.rar
создать архив, на основе файлов и папки dir
rar a file.rar file1 file2 dir
zip архиватор. Примеры:
Создать архив файла
zip file.zip file
Создать архив папки
zip -r -7 alfresco.zip /folder/
unzip архиватор. Примеры:
Разархивировать файл file.zip в текущую папку
unzip file.zip
Разархивировать файл file.zip в отдельную папку
unzip -d /folder/ file.zip

 

Управление процессами
topДиспетчер процессов
htopРасширенный диспетчер процессов
psПоказывает процессы. Примеры:
ps axjf Просмотр всех работающих процессов
ps -eF Список процессов с полной строкой запуска
ps -U user Список задач, порожденных пользователем user
pgrepПоиск процессов.
Показать PID процесса sshd: pgrep -l sshd
lsofПоказывает список процессов, которые используют /home: lsof /home
fuser -mУзнать, какой процесс занял устройство.
Пример: fuser -m /mnt
kill Убивает процесс. Примеры:
kill 4712 Завершить процесс с PID 4712:
kill -9 4712 Принудительно завершает указанный процесс (выполнять если не помогает kill 4712)
killallУбивает процессы по имени. Примеры:
killall x-www-browser # «Убить» процессы x-www-browser
killall -u user # Завершить процессы, порожденные пользователем user
niceПозволяет отобразить или настроить приоритет задачи.
Запуск mc с приоритетом = текущий+4:
nice -4 mc
reniceИзменение приоритета процесса.
Установить значение приоритета для процесса mc (PID=11597) равным 4:
renice 4 -p 11597

 

Оперативная память
freeИнформация о состоянии памяти.
Показать состояние оперативной памяти в мегабайтах:
free -m
dmidecodeИнформация о «железе».
Информация о кол-ве разъемов оперативной памяти, и вставленных модулях:
dmidecode —type 17

 

Жесткий диск
df Показывает размер свободного места на разделах. Пример: df -h
duИнформация о размере директории.
Вывести на экран размер директории /home/
du -sh /home/
fdiskИнформация о разделах жестких дисков.
Информация о всех подключенных жестких и сменных дисках:
fdisk -l
blkidВыводит UUID всех доступных накопителей информации в системе
mountМонтирование. Примеры:
Показывает полную информацию о примонтированных устройствах:
mount
Монтирует раздел /dev/sda1 к точке монтирования /mnt:
mount /dev/sda1 /mnt
umountРазмонтирование.
Например команда отмонтирует раздел от точки монтирования /mnt:
umount /mnt
badblocksПроверка на бэд-блоки.
Проверить раздел sda1 на наличие bad-блоков:
badblocks -v /dev/sda1
fsckПроверка файловой системы.
Проверить/восстановить целостность linux-файловой системы раздела sda1:
fsck /dev/sda1
mkfsФорматирование
smartctlПроверка SMART.
Прверка состояния жёсткого диска /dev/hda через SMART:
smartctl -A /dev/hda
hdparmИнформация о  жестких дисках, Примеры:
hdparm -I /dev/sda # Информация о диске /dev/sda
hdparm -tT /dev/sda # Показывает производительность жесткого диска

 

Сеть
hostУтилита host предназначена для выполнения запросов к DNS-серверам. Пример
host linuxcenter.ru
linuxcenter.ru A 195.5.132.10
pingПинг. Пропинговать ya.ru и вывести результат: ping ya.ru
ifconfigУтилита настройки сети. Примеры:
ifconfig -a # Показать все сетевые интерфейсы
ifconfig eth0 up # Запустить сетевой интерфейс eth0
ifconfig eth0 down # Отключить сетевой интерфейс eth0
ifconfig eth0 hw ether 00:01:02:03:04:05 # Смена MAC адреса
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # Выставить интерфейсу eth0 IP-адрес и маску подсети
ifconfig eth0:0 192.168.0.1 netmask 255.255.255.0 # Задать дополнительный IP адрес сетевому интерфейсу eth0
iwlist scanпросканировать эфир на предмет, доступности беспроводных точек доступа
iwconfigУтилита настройки беспроводных сетевых интерфейсов
— iwconfig wlan0 # Показать конфигурацию беспроводного сетевого интерфейса wlan0;
— iwconfig wlan0 mode ad-hoc # Указываем тип сети — ad-hoc;
— iwconfig wlan0 channel 2 # Указываем частотный канал;
— iwconfig wlan0 essid inet # Указываем имя сети.
routeНастройка маршрутов. Примеры:
route -n # Выводит на экран таблицу маршрутизации;
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 # добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с IP-адресом 192.168.1.1 (для удаления меняем add на del)
netstatТекущие сетевые соединения. Пример:<
— netstat -tup # Отобразить активные сетевые соединения:  ;
— netstat -an | grep LISTEN # Показывает список всех открытых портов;
— netstat -anp -udp -tcp | grep LISTEN # Посмотреть список приложений, которые открывают порты;
ethtool Информация о текущем режиме сетевого соединения и поддерживаемых. Примеры:
— ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения
— ethtool -s eth0 speed 100 duplex full autoneg off # Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full duplex и отключить автоматическое определение
tcpdumpУтилита сканирования сетевого трафика. Пример: tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80
iptablesУтилита настройки файервола
sshПодключение к удаленному компьютеру по ssh. Пример: ssh 10.10.10.4 .
wgetУтилита закачки. wget -c http://www.example.com/file.iso загрузить файл http://www.example.com/file.iso с возможностью останова и продолжения в последствии
nslookupВыполняет «поиск имени узла» Интернета по заданному IP адресу или доменному имени:
nslookup -sil 66.97.104.180
nslookup ya.ru
digПроверка доменных имён, аналог nslookup, например
dig -x 81.9.6.2
whois Проверка доменных имён подобное команде dig например:
whois ya.ru

 

Текст
echoВыводит строку текста на консоль. Пример: echo «Test»
cat Считать содержимое файла. Пример: cat test.txt.
tail Выводит последние строки. Вывод последних двух строк файла file1 на консоль: tail -2 file1
Динамическое чтение файла, например лога:
tail -f file
nanoТекстовый редактор. Пример: nano file
iconvРабота с кодировками. Примеры:
iconv -l # Выводит список всех доступных кодировок;
iconv -f cp1251 -t UTF-8 file_cp1251.txt -o file_utf8.txt # Смена кодировки. Был файл file_cp1251.txt с кодировкой cp1251, а в итоге получился файл file_utf8.txt с кодировкой utf8
convmv Смена кодировки в именах файлов.
moreПостраничный вывод. more file1 выводит содержимое файла file1 на стандартное устройство вывода
lessПостраничный вывод. less file1 выводит содержимое файла file1 на стандартное устройство вывода с возможностью пролистывания в обе стороны
headВыводит первые строки. head -2 file1 выводит первые две строки файла file1 на стандартное устройство вывода. По умолчанию выводится десять строк
dos2unixКонвертирует файл текстового формата из MSDOS в UNIX (разница в символах возврата каретки)
dos2unix filedos.txt fileunix.txt
unix2dosКонвертирует файл текстового формата из UNIX в MSDOS (разница в символах возврата каретки):
unix2dos fileunix.txt filedos.txt
nlНумерует строки, используется совместно с другими командами, например: cat test.txt | nl
wcПоказывает число строк, слов и символов в файле

 

Печать
lpstat Просмотр списка принтеров. Получить список всех доступных принтеров lpstat -a
lpКоманда отправки на печать.
lpr Команда отправки на печать. Пример: lpr -P KyoceraDN test.txt
lprm Удаление очереди печати

 

Пользователи и группы
id Показывает сводную информацию по текущему пользователю (логин, UID, GID, группы)
adduserСоздание пользователя, например adduser user1
passwdсменить пароль для текущего пользователя.
Сменить пароль пользователя user: passwd user
groupaddДобавление группы, например: groupadd name
groupdel Удаление группы, например: groupdel name
groupmodИзменение группы, например переименовать группу old_name в new_name: groupmod -n new_name old_name
usermodИзменения настроек пользователя. usermod -a -G group user1 добавляет пользователя user1 в группу group
userdelУдаление пользователя, например: userdel user1
chage -E 2015-12-31 userустановить дату окончания действия учётной записи пользователя user
pwckпроверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
grpckпроверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
exit Завершить сеанс текущего пользователя
last Отобразить регистрации пользователей в системе
sudoЗапуск от имени администратора, например: sudo mc

 

Разное
watchКаждые n-секунд команда watch запускает нужную команду. Пример: watch -n 5 ‘cat /proc/loadavg’  Каждые пять секунд будет выводится результат команды просмотра средней загруженности компьютера
screenОконный менеджер.
dcКалькулятор
calКалендарь. Примеры:
cal -3 # Покажет предыдущий, текущий и последующий месяц
cal 2015 # Календарь 2015-го года
sleepЗадержка на указанный промежуток времени, в примере 10 сек: sleep 10
historyПоказывает пронумерованный список команд, которые выполняли в этом и предыдущем сеансе
script Cоздать журнал своей консольной сессии. Сохраняется все что вводили, и все, что выдавалось на экран. Пример: script history.txt . Чтобы прекратить запись, введите exit
which Отобразить полный путь исполняемого файла, например which ifconfig
wall Вывести сообщение на все терминалы пользователей, пример: wall hello
resetСбросить настройки терминала и очистить его
clear Очищает экран терминала
beep Воспроизвести звуковой сигнал

 

Справка
man Справка
man lsСправка по команде ls

Вы также можете ознакомиться с другими статьями:

19th Окт 2016

Теги:

Справочник команд терминала Linux

Окно терминала
clearОчищение экрана терминала.
historyПоказать последние набранные команды.
!Выполнить последнюю команду. Вы также можете использовать !n чтобы повторить n команд или !-n чтобы посторить команду n команд назад.
manОтображает оперативное руководство для команды.
whatisПоиск man-страниц с указанным ключевым целым словом.
aliasОпределяет аббревиатуру для длинной команды.
exitВыход из терминала.
Управление файлами и каталогами
cdИзменяет каталог. Используется для навигации по папкам.
pwdОтображает текущий рабочий каталог.
cdИзменяет текущий каталог.
lsОтображает оглавление каталога.
cpКопирует файлы.
mvПереименовывает файл либо перемещает файл из одного каталога в другой.
rmУничтожает файлы.
statПоказывает, когда файл был изменен.
touchИзменяет метку времени файла.
rmdirУничтожает каталоги.
mkdirСоздает каталог.
renameИзменяет имя файла или группы файлов.
findПоиск файлов на основе заданного критерия.
locateПоиск файлов с помощью периодически обновляемой базы данных.
grepПоиск в текстовом файле с помощью регулярных выражений.
mountДобавляет устройства к файловой системе.
umountОтключает устройства из файловой системы.
catОтображает файл на стандартном устройстве вывода (используется также для конкатенации файлов).
chmodИзменяет права доступа одного или нескольких файлов.
chownИзменяет владельца или группового владельца файла.
Пользователи
suСмена пользователя. Также дает доступ к системным правам.
whoamiВыводит действительный идентификатор пользователя.
idВыводит идентификатор пользователя, идентификатор группы и группы пользователя.
passwdСоздание или изменение пароля пользователя.
Системное администрирование
unameВыводит системную информацию, такую как тип машины и операционной системы.
sudoПредоставляет возможность пользователям выполнять команды от имени суперпользователя root либо других пользователей.
apt/dnf/pacmanКоманды для установки программного обеспечения и обновлений. Какой из них будет использоваться, зависит от вашей операционной системы на базе Linux. Для каждой из них требуются права администратора и дополнительные инструкции, такие как sudo apt install program-name.
jobsОтображает состояние всех текущих заданий. Задание — это представление выполняемого процесса или группы процессов.
bgОтправляет задание в фон.
fgОтправляет задание на передний план.
killЗавершает процесс по идентификатору.
killallЗавершает все процессы с указанным именем.
psВыводит список выполняемых процессов.
topВыводит список процессов по степени загрузки системы. В отличие от ps выводит список в реальном времени.
uptimeОтображает время непрерывной работы системы.
whereisПроизводит поиск исходного текста, двоичного файла и man-страницы для команды.
dfПодсчитывает объем свободной и доступной дисковой памяти.
freeОтображает количество свободной памяти в системе.
Администрирование сети
ipОтображает IP адрес, сетевые интерфейсы, пропускную способность и др.
pingОтправка или получение данных с другого компьютера в сети. Часто используется для проверки наличия сетевого соединения и скорости этого соединения.
digПоиск DNS адреса.
wgetЗагружает файл.
sshБезопасное подключение и вход в удаленную сеть.
Разное
echoОтображение строки текста. Часто используется в программах и скриптах для передачи информации пользователям.
factorОтображает возможные множители десятичного числа.
exprРешение математических уравнений.
lookПоиск слова в словаре.

Описание более 350 команд Линукс / Хабр

На дигге была найдена интересная ссылка (PDF-версия) — описание более, чем 350 команд Линукс (на английском языке). Фактически представляет собой шпаргалку, где команды разбиты на категории. Отмечу, что это не простой список команд, а именно описание с применением. Чтобы не быть голословным приведу несколько примеров.

Смотрим информацию о процессоре


cat /proc/cpuinfo

Получаем информацию о свопе


cat /proc/swaps 	

Ищем файлы, которые не использовались более 100 дней


find /usr/bin -type f -atime +100

Смотрим установленные пакеты, отсортированные по размеру (для Дебиан и Убунту)


dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n

Конвертим текстовый файлы в HTML (требуется соответсвующий пакет)


recode ..HTML < page.txt > page.html

Надеюсь будет полезно не только новичкам, но и обычным пользователям, я например, информацию о свопе, смотрел совсем другим способом, причем, довольно кривым.

PS Хотел оформить в виде ссылки, но там сильные ограничения на количество «букаф».

Update 1: ссылка от пользователя Tagire: Секреты командной строки (вики Gentoo).

Update 2: автоматическая распаковка архивов от пользователя nuit:

Добавляем в ~/.bashrc строчки, которые идут после этого предложения и командой «ex название_архива» распаковываем всевозможные архивы, не забивая голову, запоминанием опций:


function ex {
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2) tar xjf $1 ;;
      *.tar.gz) tar xzf $1 ;;
      *.bz2) bunzip2 $1 ;;
      *.rar) rar x $1 ;;
      *.gz) gunzip $1 ;;
      *.tar) tar xf $1 ;;
      *.tbz2) tar xjf $1 ;;
      *.tgz) tar xzf $1 ;;
      *.zip) unzip $1 ;;
      *.Z) uncompress $1 ;;
      *.7z) 7z x $1 ;;
      *) echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

Надеюсь я качественно отформатировал код.

Update 3: ссылка от пользователя Tagire: Linux — кратко обо всём (большая шпаргалка).

Update 4: поиск «того-не-знаю-чего» пользователя urandom (поиск по ключевому слову компонентов и програм):


apropos keyword

Update 5: обновлены ссылки и добавлена PDF-версия от пользователя develop7

Команды Linux

Разделы базы знаний

Большинство UNIX-like систем обладают встроенной справкой, которая подробно описывает все доступные команды. Однако чтобы воспользоваться этой справкой, вы должны знать, по крайней мере, название команды, о которой вы хотите получить информацию. Поскольку большинство пользователей только в общих чертах понимают, что они хотят сделать, то, как правило, встроенная справка мало полезна новичкам.

Этот справочник поможет пользователям, знающим, что они хотят сделать, найти соответствующую команду Linux по краткому описанию.

Системная информация

  • отобразить архитектуру компьютера:

      arch
    
  • отобразить используемую версию ядра

      uname -r
    
  • показать аппаратные системные компоненты — (SMBIOS / DMI)

      dmidecode -q
    
  • вывести характеристики жесткого диска

      hdparm -i /dev/hda
    
  • отобразить информацию о процессоре

      cat /proc/cpuinfo
    
  • показать прерывания

      cat /proc/interrupts
    
  • проверить использование памяти

      cat /proc/meminfo
    
  • показать файл(ы) подкачки

      cat /proc/swaps
    
  • вывести версию ядра

      cat /proc/version
    
  • показать сетевые интерфейсы и статистику по ним

      cat /proc/net/dev
    
  • отобразить смонтированные файловые системы

      cat /proc/mounts
    
  • показать в виде дерева PCI устройства

      lspci -tv
    
  • показать в виде дерева USB устройства

      lsusb -tv
    
  • вывести системную дату

      date
    
  • вывести таблицу-календарь 2011-го года

      cal 2007
    
  • установить системные дату и время ММДДЧЧммГГГГ.СС

      date 041217002007.00*
    
  • сохранить системное время в BIOS

      clock -w
    

Остановка системы

  • остановить систему

      shutdown -h
    
  • запланировать остановку системы на указанное время

      shutdown -h hours:minutes &
    
  • отменить запланированную по расписанию остановку системы

      shutdown -c
    
  • перезагрузить систему

      shutdown -r
    
  • выйти из системы

      logout
    

Файлы и директории

  • перейти в директорию ‘/home’

      cd /home
    
  • перейти в директорию уровнем выше

      cd ..
    
  • перейти в директорию двумя уровнями выше

      cd ../..
    
  • перейти в домашнюю директорию

      cd
    
  • перейти в домашнюю директорию пользователя user

      cd ~user
    
  • перейти в директорию, в которой находились до перехода в текущую директорию

      cd -
    
  • показать текущюю директорию

      pwd
    
  • отобразить содержимое текущей директории

      ls
    
  • отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип

      ls -F
    
  • показать детализированое представление файлов и директорий в текущей директории

      ls -l
    
  • показать скрытые файлы и директории в текущей директории

      ls -a
    
  • показать файлы и директории содержащие в имени цифры

      ls *[0-9]*
    
  • показать дерево файлов и директорий, начиная от корня (/)

      tree
    
  • создать директорию с именем ‘dir1’

      mkdir dir1
    
  • создать две директории одновременно

      mkdir dir1 dir2
    
  • создать дерево директорий

      mkdir -p /tmp/dir1/dir2
    
  • удалить файл с именем ‘file1’

      rm -f file1
    
  • удалить директорию с именем ‘dir1’

      rmdir dir1
    
  • удалить директорию с именем ‘dir1’ и рекурсивно всё её содержимое

      rm -rf dir1
    
  • удалить две директории и рекурсивно их содержимое

      rm -rf dir1 dir2
    
  • переименовать или переместить файл или директорию

      mv dir1 new_dir
    
  • скопировать файл file1 в файл file2

      cp file1 file2
    
  • копировать все файлы директории dir в текущую директорию

      cp dir/* .
    
  • копировать директорию dir1 со всем содержимым в текущую директорию

      cp -a /tmp/dir1 .
    
  • копировать директорию dir1 в директорию dir2

      cp -a dir1 dir2
    
  • создать символическую ссылку на файл или директорию

      ln -s file1 lnk1*
    
  • создать «жёсткую» (физическую) ссылку на файл или директорию

      ln file1 lnk1
    
  • модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)

      touch -t 0712250000 fileditest
    

Поиск файлов

  • найти файлы и директории с именем file1. Поиск начать с корня (/)

      find / -name file1
    
  • найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)

      find / -user user1
    
  • найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1’*

      find /home/user1 -name "*.bin"
    
  • найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней

      find /usr/bin -type f -atime +100
    
  • найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней

      find /usr/bin -type f -mtime -10
    
  • найти все файлы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним

      find / -name *.rpm -exec chmod 755 '{}' \;
    
  • найти все файлы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п.

      find / -xdev -name "*.rpm"
    
  • найти все файлы, сожержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’

      locate "*.ps"
    
  • показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’

      whereis halt
    
  • отображает полный путь к файлу ‘halt’

      which halt
    

Монтирование файловых систем

  • монтирует раздел ‘hda2’ в точку монтирования ‘/mnt/hda2’. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2’

      mount /dev/hda2 /mnt/hda2
    
  • размонтирует раздел ‘hda2’. Перед выполнением, покиньте ‘/mnt/hda2’

      umount /dev/hda2
    
  • принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем

      fuser -km /mnt/hda2
    
  • выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске

      umount -n /mnt/hda2
    
  • монтировать флоппи-диск

      mount /dev/fd0 /mnt/floppy
    
  • монтировать CD или DVD

      mount /dev/cdrom /mnt/cdrom
    
  • монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)

      mount /dev/hdc /mnt/cdrecorder
    
  • смонтировать ISO-образ

      mount -o loop file.iso /mnt/cdrom
    
  • монтировать файловую систему Windows FAT32

      mount -t vfat /dev/hda5 /mnt/hda5
    
  • монтировать сетевую файловую систему Windows (SMB/CIFS)

      mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share
    
  • «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работ
    е ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user

      mount -o bind /home/user/prg /var/ftp/user
    

Дисковое пространство

  • информация о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)

      df -h
    
  • вывести список файлов и директорий рекурсивно с сортировкой по возрастанию размера и осуществлять постраничный просмотр

      ls -lSr |more
    
  • вывести размер, занимаемый директорией ‘dir1’ (Прим.переводчика. ключ -h работает не во всех *nix системах)

      du -sh dir1
    
  • размер и имена файлов и директорий, с соритровкой по размеру

      du -sk * | sort -rn
    
  • размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)

      rpm -q -a --qf '%10t%n' | sort -k1,1n
    
  • размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)

      dpkg-query -W -f='${Installed-Size;10}t$n' | sort -k1,1n
    

Пользователи и группы

  • создать новую группу с именем group_name

      groupadd group_name
    
  • удалить группу group_name

      groupdel group_name
    
  • переименовать группу old_group_name в new_group_name

      groupmod -n new_group_name old_group_name
    
  • создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome

      useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1
    
  • создать пользователя user1

      useradd user1
    
  • удалить пользователя user1 и его домашний каталог

      userdel -r user1
    
  • изменить атрибуты пользователя

      usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1
    
  • сменить пароль

      passwd
    
  • сменить пароль пользователя user1 (только root)

      passwd user1
    
  • установить дату окончания действия учётной записи пользователя user1

      chage -E 2005-12-31 user1
    
  • проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow

      pwck
    
  • проверить корректность системных файлов учётных записей. Проверяется файл/etc/group

      grpck
    
  • изменить первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

      newgrp [-] group_name
    

Выставление/изменение полномочий на файлы

  • просмотр полномочий на файлы и директории в текущей директории

      ls -lh
    
  • вывести содержимое директории /tmp и разделить вывод на пять колонок

      ls /tmp | pr -T5 -W$COLUMNS
    
  • добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1

      chmod ugo+rwx directory1
    
  • отобрать у группы и всех остальных все полномочия на директорию directory1

      chmod go-rwx directory1
    
  • назначить владельцем файла file1 пользователя user1

      chown user1 file1
    
  • назначить рекурсивно владельцем директории directory1 пользователя user1

      chown -R user1 directory1
    
  • сменить группу-владельца файла file1 на group1

      chgrp group1 file1
    
  • сменить владельца и группу владельца файла file1

      chown user1:group1 file1
    
  • найти, начиная от корня, все файлы с выставленным SUID

      find / -perm -u+s
    
  • назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла

      chmod u+s /bin/binary_file
    
  • снять SUID-бит с файла /bin/binary_file

      chmod u-s /bin/binary_file
    
  • назначить SGID-бит директории /home/public

      chmod g+s /home/public
    
  • снять SGID-бит с директории /home/public

      chmod g-s /home/public
    
  • назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам

      chmod o+t /home/public
    
  • снять STIKY-бит с директории /home/public

      chmod o-t /home/public
    

Специальные атрибуты файлов

  • позволить открывать файл на запись только в режиме добавления

      chattr +a file1
    
  • позволяет ядру автоматически сжимать/разжимать содержимое файла

      chattr +c file1
    
  • указавет утилите dump игнорировать данный файл во время выполнения backup’а

      chattr +d file1
    
  • делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него

      chattr +i file1
    
  • позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных

      chattr +s file1
    
  • указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync

      chattr +S file1
    
  • данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить

      chattr +u file1
    
  • показать атрибуты файлов

      lsattr
    

Архивирование и сжатие файлов

  • разжать файл ‘file1.bz2’

      bunzip2 file1.bz2
    
  • разжать файл ‘file1.gz’

      gunzip file1.gz
    
  • сжать файл ‘file1’

      gzip file1 или bzip2 file1
    
  • сжать файл file1 с максимальным сжатием

      gzip -9 file1
    
  • создать rar-архив ‘file1.rar’ и включить в него файл test_file

      rar a file1.rar test_file
    
  • создать rar-архив ‘file1.rar’ и включить в него file1, file2 и dir1

      rar a file1.rar file1 file2 dir1
    
  • распаковать rar-архив

      unrar x file1.rar
    
  • создать tar-архив archive.tar, содержащий файл file1

      tar -cvf archive.tar file1
    
  • создать tar-архив archive.tar, содержащий файл file1, file2 и dir1

      tar -cvf archive.tar file1 file2 dir1
    
  • показать содержимое архива

      tar -tf archive.tar
    
  • распаковать архив

      tar -xvf archive.tar
    
  • распаковать архив в /tmp

      tar -xvf archive.tar -C /tmp
    
  • создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)

      tar -cvfj archive.tar.bz2 dir1
    
  • разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)

      tar -xvfj archive.tar.bz2
    
  • создать архив и сжать его с помощью gzip

      tar -cvfz archive.tar.gz dir1
    
  • разжать архив и распаковать его

      tar -xvfz archive.tar.gz
    
  • создать сжатый zip-архив

      zip file1.zip file1
    
  • создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий

      zip -r file1.zip file1 file2 dir1
    
  • разжать и распаковать zip-архив

      unzip file1.zip
    

RPM пакеты (Fedora, Red Hat и тому подобное)

  • установить пакет с выводом сообщений и прогресс-бара

      rpm -ivh package.rpm
    
  • установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей

      rpm -ivh --nodeps package.rpm
    
  • обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен

      rpm -U package.rpm
    
  • обновить пакет только если он установлен

      rpm -F package.rpm
    
  • удалить пакет

      rpm -e package_name.rpm
    
  • отобразить список всех пакетов, установленных в системе

      rpm -qa
    
  • среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»

      rpm -qa | grep httpd
    
  • вывести информацию о конкрентном пакете

      rpm -qi package_name
    
  • отобразить пакеты входящие в группу пакетов

      rpm -qg "System Environment/Daemons"
    
  • вывести список файлов, входящих в пакет

      rpm -ql package_name
    
  • вывести список конфигурационных файлов, входящих в пакет

      rpm -qc package_name
    
  • вывести список пакетов, необходимых для установки конкретного пакета по зависимостям

      rpm -q package_name --whatrequires
    
  • отобразить скрипты, запускаемые при установке/удалении пакета

      rpm -q package_name --scripts
    
  • вывести историю ревизий пакета

      rpm -q package_name --changelog
    
  • проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла

      rpm -qf /etc/httpd/conf/httpd.conf
    
  • отображает список файлов, входящих в пакет, но ещё не установленных в систему

      rpm -qp package.rpm -l
    
  • ипортировать публичный ключ цифровой подписи

      rpm --import /media/cdrom/RPM-GPG-KEY
    
  • проверит подпись пакета

      rpm --checksig package.rpm
    
  • проверить целостность установленного содержимого пакета

      rpm -qa gpg-pubkey
    
  • проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета

      rpm -V package_name
    
  • проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!

      rpm -Va
    
  • проверить пакет, который ещё не установлен в систему

      rpm -Vp package.rpm
    
  • извлечь из пакета файлы содержащие в своём имени bin

      rpm2cpio package.rpm | cpio --extract --make-directories *bin*
    
  • установить пакет, собранный из исходных кодов

      rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm
    
  • собрать пакет из исходных кодов

      rpmbuild --rebuild package_name.src.rpm
    

YUM — средство обновления пакетов(Fedora, RedHat и тому подобное)

  • закачать и установать пакет

      yum install package_name
    
  • обновить все пакеты, установленные в систему

      yum update
    
  • обновить пакет

      yum update package_name
    
  • удалить пакет

      yum remove package_name
    
  • вывести список всех пакетов, установленных в систему

      yum list
    
  • найти пакет в репозитории

      yum search package_name
    
  • очисть rpm-кэш, удалив закачанные пакеты

      yum clean packages
    
  • удалить все заголовки файлов, которые система использует для разрешения зависимостей

      yum clean headers
    
  • очисть rpm-кэш, удалив закачанные пакеты и заголовки

      yum clean all
    

DEB пакеты (Debian, Ubuntu и тому подобное)

  • установить / обновить пакет

      dpkg -i package.deb
    
  • удалить пакет из системы

      dpkg -r package_name
    
  • показать все пакеты, установленные в систему

      dpkg -l
    
  • среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «apache2»

      dpkg -l | | grep apache2
    
  • отобразить инфрмацию о конкретном пакете

      dpkg -s package_name
    
  • вывести список файлов, входящих в пакет, установленный в систему

      dpkg -L package_name
    
  • отобразить список файлов, входящих в пакет, который ешё не установлен в систему

      dpkg --contents package.deb
    
  • найти пакет, в который входит указанный файл

      dpkg -S /bin/ping
    

APT — средство управление пакетами (Debian, Ubuntu и тому подобное)

  • установить / обновить пакет

      apt-get install package_name
    
  • установить / обновить пакет с cdrom’а

      apt-cdrom install package_name
    
  • получить обновлённые списки пакетов

      apt-get update
    
  • обновить пакеты, установленные в систему

      apt-get upgrade
    
  • удалить пакет, установленный в систему с сохранением файлов конфигурации

      apt-get remove package_name
    
  • удалить пакет, установленный в систему с удалением файлов конфигурации

      apt-get purge package_name
    
  • проверить целостность зависимостей

      apt-get check
    
  • удалить загруженные архивные файлы пакетов

      apt-get clean
    
  • удалить старые загруженные архивные файлы пакетов

      apt-get autoclean
    

Pacman — средство управление пакетами (Arch Linux, Chakra, Frugalware и alike)

  • установить пакет из репозитория. Если после команды добавить --noconfirm, то не потребуется подтверждать действия.

      pacman -S package_name
    
  • установить пакет из текущей деиректории

      pacman -U package_name
    
  • удалить пакет

      pacman -R package_name
    
  • удалить пакет с зависимостями, которые более не требуются

      pacman -Rs package_name
    
  • найти пакет

      pacman -Ss package_name
    
  • получить обновленные списки пакетов

      pacman -Sy
    
  • обновить пакеты

      pacman -Su
    

Просмотр содержимого файлов

  • вывести содержимое файла file1 на стандартное устройсво вывода

      cat file1
    
  • вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.)

      tac file1
    
  • постраничный вывод содержимого файла file1 на стандартное устройство вывода

      more file1
    
  • постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.

      less file1
    
  • вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк

      head -2 file1
    
  • вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк

      tail -2 file1
    
  • выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста

      tail -f /var/log/messages
    

Манипуляции с текстом

  • общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый

      cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt
    
  • общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан

      cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt
    
  • из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug»

      grep Aug /var/log/messages
    
  • из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug»

      grep ^Aug /var/log/messages
    
  • из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие цифры

      grep [0-9] /var/log/messages
    
  • отобрать и вывести на стандартное устройство вывода строки, содержащие «Augr», во всех файлах, находящихся в директории /var/log и ниже

      grep Aug -R /var/log/*
    
  • в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода

      sed 's/stringa1/stringa2/g' example.txt
    
  • удалить пустые строки из файла example.txt

      sed '/^$/d' example.txt
    
  • удалить пустые строки и комментарии из файла example.txt

      sed '/ *#/d; /^$/d' example.txt
    
  • преобразовать символы из нижнего регистра в верхний

      echo 'esempio' | tr '[:lower:]' '[:upper:]'
    
  • удалить первую строку из файла example.txt

      sed -e '1d' result.txt
    
  • отобразить только строки содержашие «string1»

      sed -n '/string1/p'
    
  • удалить пустые символы в в конце каждой строки

      sed -e 's/ *$//' example.txt
    
  • удалить строку «string1» из текста не изменяя всего остального

      sed -e 's/string1//g' example.txt
    
  • взять из файла с первой по восьмую строки и из них вывести первые пять

      sed -n '1,8p;5q' example.txt
    
  • вывести пятую строку

      sed -n '5p;5q' example.txt
    
  • заменить последовательность из любого количества нулей одним нулём

      sed -e 's/0*/0/g' example.txt
    
  • пронумеровать строки при выводе содержимого файла

      cat -n file1
    
  • при выводе содержимого файла, не выводить чётные строки файла

      cat example.txt | awk 'NR%2==1'
    
  • вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции

      echo a b c | awk '{print $1}'
    
  • вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции

      echo a b c | awk '{print $1,$3}'
    
  • объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m

      paste file1 file2
    
  • объединить содержимое file1 и file2 в виде таблицы с разделителем «+»

      paste -d '+' file1 file2
    
  • отсортировать содержимое двух файлов

      sort file1 file2
    
  • отсортировать содержимое двух файлов, не отображая повторов

      sort file1 file2 | uniq
    
  • отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)

      sort file1 file2 | uniq -u
    
  • отсортировать содержимое двух файлов, отображая только повторяющиеся строки

      sort file1 file2 | uniq -d
    
  • сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’

      comm -1 file1 file2
    
  • сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’

      comm -2 file1 file2
    
  • сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

      comm -3 file1 file2
    

Преобразование наборов символов и файловых форматов

  • конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)

      dos2unix filedos.txt fileunix.txt
    
  • конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)

      unix2dos fileunix.txt filedos.txt
    
  • конвертировать содержимое тестового файла page.txt в html-файл page.html

      recode ..HTML < page.txt > page.html
    
  • вывести список доступных форматов

      recode -l | more
    

Анализ файловых систем

  • проверить раздел hda1 на наличие bad-блоков

      badblocks -v /dev/hda1
    
  • проверить/восстановить целостность linux-файловой системы раздела hda1

      fsck /dev/hda1
    
  • проверить/восстановить целостность файловой системы ext2 раздела hda1

      fsck.ext2 /dev/hda1 или e2fsck /dev/hda1
    
  • проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же

      e2fsck -j /dev/hda1
    
  • проверить/восстановить целостность файловой системы ext3 раздела hda1

      fsck.ext3 /dev/hda1
    
  • проверить/восстановить целостность файловой системы fat раздела hda11

      fsck.vfat /dev/hda1
    

Форматирование файловых систем

  • создать linux-файловую систему на разделе hda1

      mkfs /dev/hda1
    
  • создать файловую систему ext2 на разделе hda1

      mke2fs /dev/hda1
    
  • создать журналирующую файловую систему ext3 на разделе hda1

      mke2fs -j /dev/hda1
    
  • создать файловую систему FAT32 на разделе hda1

      mkfs -t vfat 32 -F /dev/hda1
    
  • форматирование флоппи-диска без проверки

      fdformat -n /dev/fd0
    
  • создание swap-пространства на разделе hda3

      mkswap /dev/hda3
    

swap-пространство

  • создание swap-пространства на разделе hda3

      mkswap /dev/hda3
    
  • активировать swap-пространство, расположенное на разделе hda3

      swapon /dev/hda3
    
  • активировать swap-пространства, расположенные на разделах hda2 и hdb3

      swapon /dev/hda2 /dev/hdb3
    

Создание резервных копий (backup)

  • создать полную резервную копию директории /home в файл /tmp/home0.bak

      dump -0aj -f /tmp/home0.bak /home
    
  • создать инкрементальную резервную копию директории /home в файл

      dump -1aj -f /tmp/home0.bak /home
    
  • восстановить из резервной копии /tmp/home0.bak

      restore -if /tmp/home0.bak
    
  • синхронизировать /tmp с /home

      rsync -rogpav --delete /home /tmp
    
  • синхронизировать через SSH-туннель

      rsync -rogpav -e ssh --delete /home ip_address:/tmp
    
  • синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием

      rsync -az -e ssh --delete ip_addr:/home/public /home/local
    
  • синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием

      rsync -az -e ssh --delete /home/local ip_addr:/home/public
    
  • сделать «слепок» локального диска в файл на удалённом компьютере через ssh-ту

Подборка материала для начинающего linux-сисадмина / Песочница / Хабр

Добрый день.

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

Тут я поделюсь ссылками, книгами где можно набраться уму разуму.

Кто заинтересовался — прошу под кат.

Linux/Unix:


Книги:


DNS и BIND — толстая книга про DNS и днс-сервер BIND.

Из этих двух книг каждый выбирают сам, в принципе они взаимозаменяемые:
Компьютерные сети Э. Таненбаум — крутая книга по сетям.
Компьютерные сети Олиферы — также крутая книга по сетям.
LPIC-1 Study Guide Second Edition — книга для подготовки к сдаче экзамена LPIC-1.
Postfix Полное руководство — книга о почтовом сервере postfix.
Операционная система UNIX — добротная книга по устройству unix’ов.
Основы Linux от основателя Gentoo — очень крутая книга.
Тайм-менеджмент для системных администраторов — управляй своим временем.
Unix и Linux. Руководство системного администратора — книга мне понравилась, хотя в принципе сборник man’ов.
Rute User’s Tutorial and Exposition — старая, но хорошо написанная книга о GNU/Linux.
Red Hat Linux Essentials — подготовка к курсу RH033.
Самоучитель системного администратора — если честно, то книга так себе, но можно ознакомиться.
Linux. Необходимый код и команды. Карманный справочник — крутой маленький справочник, держу под рукой.
Linux. Полное руководство — добротная книга, хоть и старая. MUST HAVE.
Энциклопедия Linux. Наиболее полное и подробное руководство — опять таки добротная книга, хоть и старая.
Linux. Системное программирование — все о системных вызовах в Linux.
Системное и сетевое администрирование. Практическое руководство — очень крутая книга, правда не о настройках того или иного софта.
Основы программирования в Linux — мега крутая книга, правда описывается C/C++/Bash.

Ссылки:


habrahabr.ru — разнообразные статьи и новости на IT и около-IT тематику.
www.opennet.ru — огромный сборник манов, вики, статей, советов, новостей и прочего на тему Linux, Unix.
www.linux.org.ru — русская информация об ОС Linux.
xgu.ru/wiki — точка обмена знаниями по UNIX/Linux-системам, системам с открытым исходных кодом, сетям и другим родственным вещам.
www.ibm.com/developerworks/ru/linux — крутые статьи от IBM.
syslog.tv — говорят, что бывают полезные статьи, но сам лично не читал.
www.cyberciti.biz — различные how-to и советы.
events.yandex.ru/events/kit — Курсы Информационных технология от Яндекса (видео), очень советую, крутые доклады.
course.secsem.ru/lections — Лекции по курсу «Практические аспекты сетевой безопасности» (видео, аудио, текст).
www.howtoforge.com — большая подборка How-to.
workaround.org — несколько полезных статей и руководств по Linux.
highload.com.ua — масштабирование и производительность, высокие нагрузки, PHP, MySQL.
find.unixpin.com/ru — построитель команды find.
www.grymoire.com/Unix — отличные учебники по sed, awk и полезные статьи.
kernelnewbies.org/KernelHacking — как же работает ядро?
forum.ru-board.com/forum.cgi?forum=8 — раздел форума для сисадминов.
sysadminblog.ru — блоги сисадминов про cisco, ip телефонию, linux, openldap и другое.
wiki.dieg.info — довольно много полезных советов по Linux.
www.sysadminwiki.ru/wiki — неплохая вики.
olemskoi.ru — блог системного администратора Linux.
debian.pro — блок для пользователя и администратора Debian.
interface31.ru/tech_it/index.html — технический блог со статьями по администрированию.
antizlo.blogspot.ru — опять таки неплохой блог.
howitmake.ru — очередной блог.
vds-admin.ru — linux-мануалы, how-to.
wiki.enchtex.info — ряд полезных статей и how-to по администрированию ubuntu и gentoo.
rfc2.ru — русские переводы RFC.
handynotes.ru — есть довольно хорошие статьи.
xtips.ru — шпаргалка для системных администраторов.
vim-adventures.com — игра-туториал для пользователей Vim.
nixsrv.com — Learn Linux The Hard Way — довольно интересные задачки для новичка.
www.linuxfromscratch.org/lfs — Linux From Scratch — соберем свой собственный линукс дистрибутив с блэкджеком и девушками.

Bash:


Книги:


Advanced Bash-Scripting Guide — по моему самый полный гайд по bash.
Bash Guide — добротный гайд по bash.

Ссылки:

ss64.com — отличный справочник консольных команд bash, cmd, powershel и т.д.
cb.vu/unixtoolbox.xhtml — описание shell-команд и примеры.

Perl:


Книги:


Perl Best Practices — как писать хороший код на perl.
Extreme programming in Perl — методология Экстремального Программирования на Perl.
Modern Perl — современные подходы к программированию на Perl.
Perl & LWP — добротная книга о перле и вебе.
Perl. Сборник рецептов. Для профессионалов — сборник крутых рецептов из реальной практики.
CGI programming with Perl — как писать CGI на perl.
Perl для системного администрирования — рассказывает о том, как можно применить Perl для администрирования.
Разработка сетевых программ на Perl — все ясно из названия, но описывается как разрабатывать на ООП Perl.
Learning Perl — отличная книга, начинал с нее.
Программирование на Perl — добротно, от создателя языка.
Освой самостоятельно Perl за 24 часа — крутая книга по Perl, CGI.
Perl. Изучаем глубже — продолжение Learning Perl.

Ссылки:


www.cpan.org — окало 120 тысяч модулей к Perl.

Python:


Книги:


Изучаем Python — добротная книга по питону.
Python в системном администрировании Unix и Linux — не самая лучшая, но и не самая худшая книга, стоит потраченного времени.
Программирование на Python. Том 1 — крутая книга, порог вхождения средний.
Программирование на Python. Том 2 — продолжение крутой книги 🙂
Программирование на Python 3. Подробное руководство — автор не разжевывает абсолютно все, но указывает, что необходимо запомнить. Советую.

Ссылки:


docs.python.org/2 — официальная документация по Python 2.7.3.
docs.python.org/3 — официальная документация по Python 3.3.0.

С:


Книги:


Язык программирования С — лучшая книга по Си, но довольно высокий порог вхождения.
Как программировать на С — мне очень понравилась книга манерой изложения и доступностью, по сравнению с первой книгой.
Программирование на языке С — очень хорошо изложен материал.

C++:


Книги:


Язык программирования С++ — опять таки одна из лучших книг по С++, но порог вхождения опять таки велик.
Как программировать на С++ — аналогично книге по Си, очень доступно.

Регулярные выражения:


Книги:


Регулярные выражения — наверное лучшая книга по регексам.

Ссылки:


regex.learncodethehardway.org/book — Learn Regex The Hard Way

Базы данных:


Книги:


MySQL Руководство по изучению языка — неплохая книга по MySQL.
Изучаем SQL — очень нравится, но пока не осилил целиком, достойная книга.

Ссылки:


habrahabr.ru/post/105954 — MySQL шпаргалки

PHP:

Книги:

PHP в примерах — несколько человек мне посоветовали эту книгу, но честно говоря показалась не очень полезной.
PHP 5 в подлиннике — начал читать, довольно хорошо написано простым языком, обо всем.

Книги старался добавлять только те, которые прочел/начал читать/не дочитал.

Так же буду очень рад любым замечаниям.

За ссылки огромное спасибо автору этого поста и всем его комментаторам.

15 малоизвестных команд Linux / Хабр

Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).

Независимо от того, новичок вы или гуру, уверен, вы найдете для себя полезное среди нижеприведенных советов и рекомендаций.

1. man

Начнем с простого, команда man, что означает manual. Если хотите прочитать о какой-либо команде, просто наберите:

man [command]

Вот так можно прочитать мануал по man’у:

man man

man — не малоизвестная команда, ее вы найдете в любом учебнике Unix’а, однако я бы хотел обратить ваше внимание на некоторые ее особенности.

Так, например, чтобы прочитать про ASCII-таблицу, наберите следующее:

man ascii

Путались когда-нибудь, что меньше пико- или фемто-? Пробуйте следующее:

man units

Подобных веселых команд еще много. Есть с чем поразвлечься. (попробуйте xkill). А пока, идем дальше.

2. cd —

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

cd -

3. sudo !!

Этот комикс подчеркивает важность команды sudo в Unix. sudo выполняет команду с правами администратора. Если вы набрали команду без sudo, а потом оказалось, что она необходима, наберите просто:

sudo !!

и она запустится уже с правами администратора.

4. mtr

mtr — мощный инструмент для диагностики сети. Он совмещает в себе функциональность traceroute и ping.

mtr [hostname]

5. [space] command

Опытные пользователи, возможно, знают, что история запущенных команд сохраняется в файле ~/.bash_history.

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

[space] [command]

6. jot

jot генерирует текст. Числа, текст, все вместе. Чтобы сгенерировать числа, попробуйте следующее:

jot [количество чисел] [начиная с]

Если пропишете один аргумент, сгенерируются числа от 1 до значения аргумента.

Чтобы получить случайные:

jot -r [количество чисел] [нижний предел] [верхний предел]

Подробнее читайте здесь или наберите man jot

7. df

Довольно простая команда. Показывает свободное пространство на диске (disk free)

8. pkill

pkill (или process kill) завершает запущенный процесс. Эта команда особенно полезна, когда приложение не отвечает:

pkill [application_name]

Веселой/жестокой команда может оказаться, если вы запускаете ее на удаленной машине. Будьте осторожны, можно потерять важные данные.

9. ddate

Дискордианский календарик

10. cal

Старый-добрый Григорианский календарь.

11. tac

Вы, возможно, слышали про команду cat. Она имеет ряд утилит для создания, копирования, слияния и отображения текстовых файлов. tac делает то же самое, но в обратном порядке.

12. w

Команда w показывает, кто на данный момент вошел в систему, наряду с другой полезной информацией такой, как время работы или нагрузкой процессора.

13. factor

factor раскладывает число на множители:

factor [number]

14. yes

Возвращаемся к веселым командам, yes выводит текст несколько раз:

yes [string]

Используйте ее, чтобы запутать подкравшихся сзади друзей. Внимание, единственный способ остановить ее — CTRL + C (ну, или закрыть терминал)

15. nl

nl нумерует строки. Больше всего полезна при использовании ее в качестве аргумента. Давайте взглянем на пару примеров:

Ну вот мы и подошли к концу команд нашего списка. Сколько уже знали? Сколько из них используете регулярно? Пишите, у кого — сколько? У кого 15/15 — тот выиграл.

Предлагаю делиться интересными командами, кто что знает. Спасибо за внимание, всего хорошего.

BASH, основы навигации / Хабр

Предисловие

Об этом руководстве

Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.

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

Тем, кто изучал первую версию этого руководства с целью, отличной от подготовки к экзамену LPI, возможно, что вам не нужно его перечитывать. Однако, тем же, кто планирует сдавать экзамены, стоит обязательно просмотреть данную исправленную версию.

Введение в bash

Оболочка

Если вы уже использовали Linux ранее, то наверняка знаете, что после входа в систему вас приветствует приглашение, которое выглядит примерно так:

$

На практике приглашение, которое вы видите, может немного отличаться. Например, оно может содержать имя хоста, имя текущей рабочей директории, или все вместе. Не зависимо от того, как выглядит ваше приглашение, есть одна несомненная вещь: программа, которая выводит это приглашение, называется оболочка интерпретатора команд (от англ. shell — оболочка, он же командная строка или терминал — прим. пер.), и, вероятнее всего, вашей командной оболочкой будет ‘bash’.

А у вас запущен bash?

Вы можете убедиться, что используете bash, набрав:

$ echo $SHELL

/bin/bash

Если строчка выше выдает ошибку, или ответ не соответствует, возможно, что вы запустили другую оболочку. В этом случае большая часть этого руководства все еще будет полезна, но было бы значительно лучше для вас переключиться на bash, ради подготовки к экзамену 101.

О bash

Bash — это акроним от Bourne-again-shell, от англ. «ещё-одна-командная-оболочка-Борна» или «рождённая-вновь-командная оболочка» (тут игра слов Bourne/born — прим. пер.), и является оболочкой по умолчанию для большинства Linux-систем. Задача оболочки получать от вас команды, через которые вы взаимодействуете с Linux-системой. После того, как вы закончили ввод команд, вы можете выйти из оболочки (exit) или закончить сеанс (logout), в этом случае вы увидите приглашение входа в систему.

Кстати, вы также можете выйти из оболочки bash нажав control-D в приглашении.

Использование «cd»

Вы, возможно, уже обнаружили, что пялиться на приглашение bash — не самое впечатляющее занятие в мире. Ну что ж, давайте узнаем как путешествовать по нашей файловой системе. В приглашении введите пожалуйста следующую команду (без $):

$ cd /

Вы только что сообщили bash, что хотите работать в директории /, также известной, как корневая; все директории в системе имеют форму дерева, и / является его вершиной, т.е. корнем (в информатике деревья растут наоборот, корень вверху, а ветки спускаются вниз — прим. пер.). cd устанавливает директорию, в которой вы в данный момент работаете, также известную как «текущая рабочая директория».

Пути

Чтобы узнать текущую рабочую директорию в bash нужно набрать:

$ pwd

/

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

Абсолютные пути

Ниже несколько из них:

/dev

/usr

/usr/bin

/usr/local/bin

Как можно заметить, у всех абсолютных путей есть одна общая черта, они начинаются с /. Указывая, допустим, /usr/local/bin в качестве аргумента для cd, мы сообщаем, что хотим попасть в / директорию, затем в usr директорию внутри нее, и так далее в local и bin, вниз по дереву. Абсолютные пути всегда отсчитываются начиная от / сперва.

Относительные пути

Другой тип пути называется «относительный путь». bash, cd, и другие команды всегда интерпретируют их относительно текущей директории. Относительные пути НИКОГДА не начинаются с /. Так, если мы сначала переместимся в /usr:

$ cd /usr

То, затем мы можем использовать относительный путь local/bin, чтобы попасть в директорию /usr/local/bin:

$ cd local/bin

$ pwd

/usr/local/bin

Использование ..

Относительные пути могут также содержать одну или более «..» директории. Директория «..» специальная; она указывает на родительскую директорию. Так, продолжая с примера выше:

$ pwd

/usr/local/bin

$ cd ..

$ pwd

/usr/local

Как видно, наша текущая директория теперь /usr/local. Мы смогли переместиться «назад» на одну директорию относительно текущей, где были до того.

Кроме того, мы также можем использовать «..» в существующем относительном пути, позволяющем нам переместиться в директорию «рядом» с той, в которой находимся:

$ pwd

/usr/local

$ cd ../share

$ pwd

/usr/share

Примеры относительных путей

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

$ cd /bin

$ cd ../usr/share/zoneinfo

$ cd /usr/X11R6/bin

$ cd ../lib/X11

$ cd /usr/bin

$ cd ../bin/../bin

А теперь наберите их и проверьте свои предположения. 😉

Понимание .

Перед тем как мы закончим изучение cd, есть несколько моментов, которые необходимо прояснить. Во-первых, есть еще одна специальная директория «.», которая означает «текущая директория». Хотя она и не используется с командой cd, но часто используется для выполнения программы из текущей директории, как в следующем примере:

$ ./myprog

В данном случае будет запущена исполняемая программа myprog, находящаяся в текущей рабочей директории.

cd и домашняя директория

Если бы мы хотели переместиться в нашу домашнюю директорию, то могли бы набрать:

$ cd

Без каких либо аргументов cd переместит в вашу домашнюю директорию, которая будет /root для суперпользователя, или обычно /home/username (где username — имя пользователя в системе — прим.пер.) для любого другого пользователя. Но, что если мы хотим указать файл в нашей домашней директории? Может быть мы хотим передать путь к файлу в качестве аргумента нашей программе myprog. Если файл расположен в нашей домашней директории, мы можем набрать:

$ ./myprog /home/drobbins/myfile.txt

Однако, использования абсолютного пути вроде этого, не всегда удобно. К счастью, мы можем использовать символ ~ (тильда), чтобы проделать то же самое:

$ ./myprog ~/myfile.txt

Другие домашние директории пользователей

Bash воспримет одиночную ~ как указатель на вашу домашнюю директорию, но вы также можете использовать её для указания на домашние директории других пользователей. Например, если мы хотели сослаться на файл под названием fredsfile.txt в домашней директории пользователя fred, то могли бы набрать:

$ ./myprog ~fred/fredsfile.txt

Продолжение…


Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

Справочное руководство по основам работы с командами Linux

Хотя многие люди, использующие Linux, будут использовать графический экран, бывают случаи, когда очень полезно использовать инструменты командной строки, которые могут быть для удобства (путем автоматизации утомительных задач), для предоставления дополнительных параметров или при удаленном управлении компьютером. Эти команды запускаются из оболочки Linux.

В этом справочном руководстве объясняются некоторые основные команды и способы их сочетания для совместной работы. Здесь слова команда и программа используются как синонимы.В этом справочном руководстве я имею в виду программы командной строки, которые принимают заданный ввод и возвращают информацию после соответствующей обработки. Это отличается от полных приложений, которые могут быть графическими, предоставлять более полнофункциональный текстовый дисплей или требовать взаимодействия с пользователем во время работы.

Краткие названия команд

Команды UNIX не обязательно самые простые для запоминания. Они разработаны как короткие команды, чтобы уменьшить объем ввода:

например.
ls — Список содержимого каталога
cd — Изменить каталог
cp — Копировать
pg — Показать вывод по одной странице за раз

more — Аналогично pg

меньше — нравится больше, но с большим количеством функций!

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

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

Другой пример этого в действии — то, что многие команды будут выводиться на экран, не беспокоясь о том, сколько данных передается. Сама по себе команда, передающая большой объем данных, приведет к тому, что часть информации будет прокручиваться за пределы экрана.Чтобы просмотреть информацию постранично, вывод передается через команду pg, которая обрабатывает разбиение на страницы. В качестве альтернативы вывод может быть передан через команду sort (для сортировки по порядку) или команды head или tail (для отображения первых или последних нескольких строк).

В следующем примере показана команда ls, которая передается по конвейеру через команду more, так что за раз отображается один полный экран.

ls | более

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

Формат команд

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

параметры команды аргументы

Примером этого может быть команда ls. Команда ls будет объяснена отдельно; пока достаточно знать, что команда ls выведет список содержимого каталога и примет определенные параметры и аргументы (аналогично команде dir в DOS / Windows).Одна опция для команды ls — это опция «-l», которая означает предоставление более подробной информации о файлах, а другая — «-a», которая показывает все файлы, включая скрытые. Предоставляемый аргумент — это имя файла или каталога.

ls -l / домашний / стюарт

покажет содержимое моего домашнего каталога. Параметр -l изменяет способ выполнения программы, а аргументом является / home / stewart, который сообщает программе, в каком каталоге искать. Команда ls не требует никаких параметров или аргументов.Например, следующие команды также являются вполне допустимыми.

ls / home / stewart показывает краткий листинг каталога
ls -l показывает полный список текущего каталога
ls показывает краткий список текущего каталога

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

ls -l -a / домашний / стюарт

или комбинированный, т.е.

ls -la / домашний / стюарт

, оба приведенных выше кода дадут одинаковый результат.

Максимальное использование команд UNIX

Хотя количество опций в каждой команде UNIX может поначалу показаться слишком большим, это часть того, что делает UNIX такой мощной. Еще одна особенность, которая делает UNIX такой мощной, — это возможность комбинировать несколько команд, чтобы сделать их более полезными. Это может быть достигнуто либо путем объединения команд в командной строке, либо путем объединения команд в файл сценария, который может варьироваться от чего-то очень тривиального до отдельной программы.

Использование командных переключателей

Самый простой способ расширить функциональность команды — это попробовать некоторые из доступных переключателей.

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

$ ls

документы readme.txt file1.txt file2.txt

При добавлении опции ‘-l’ предоставляется дополнительная информация.

  $ ls -l

всего 6177

drwx ------ 2 пользователя stewart 512 сен 16 17:42 docs

-rw ------- 1 пользователь stewart 124 сен 16 17:26 readme.текст

-rw ------- 1 пользователь stewart 3156558 16 сен, 17:25 file1.txt

-rw ------- 1 stewart пользователи 3505 16 сен 17:25 file2.txt

  

Трубопроводы (|)

Как упоминалось ранее, мы часто хотим взять вывод одной команды и передать его другой. Стандартный способ сделать это — использовать конвейер, называемый конвейером, или конвейерную передачу вывода.

Труба представляет собой вертикальную черту ‘|’. На стандартной клавиатуре Великобритании это обычно находится в левом нижнем углу клавиатуры и набирается с помощью Shift и клавиши ‘\’.На американской клавиатуре это та же клавиша ‘\’, но иногда она расположена над клавишей RETURN. На других европейских клавиатурах это может быть одна из цифровых клавиш (например, Alt-Gr 6).

Сначала указывается первая команда для выполнения, за которой следует символ вертикальной черты, а затем вторая команда. Любой вывод первой команды затем используется как вход для второй команды.

Например, чтобы отсортировать базовый список каталогов по имени, команда ls проходит через команду sort.

ls | сорт

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

ls | сортировать | более

Перенаправление stdout, stdin и stderr (> <)

Если команда не передана в другую, вывод обычно идет на стандартный вывод (stdout), который обычно является экраном. Ввод обычно берется из стандартного ввода (stdin), которым обычно является клавиатура.Для автоматизации процессов иногда требуется изменить это так, чтобы, например, вывод команды отправлялся в файл или на принтер, или ввод команды брался из файла. Это делается путем перенаправления потоков stdout и stdin.

Перенаправление стандартного вывода (stdout)>

Вывод команды ls может быть перенаправлен в файл в этом случае с именем dirlist.txt

LS> dirlist.txt

Если файл dirlist.txt уже существует, он будет удален. Также можно добавить вывод в конец существующего файла, используя >> вместо>.

Например

echo "Это следующая строка журнала" >> log.file

Здесь любой существующий контент останется, но текст «Это следующая строка журнала» будет добавлен в конец файла.

Стандартная ошибка перенаправления (stderr) 2>

Хотя вы можете видеть весь вывод команды на одном экране, это не всегда обязательно из стандартного вывода.Существует также другой поток данных, называемый стандартной ошибкой, который по умолчанию направляется на тот же экран, что и стандартный вывод. Этот поток данных используется для отправки сообщений о любых сообщениях об ошибках. Преимущество наличия ошибок в виде отдельного потока заключается в том, что даже если вы перенаправляете stdout в файл, вы мгновенно увидите все сообщения об ошибках на экране.

Если команда выполняется автоматически без взаимодействия с пользователем, то сообщения, выводимые на экран, могут не отображаться. Таким образом, стандартный поток данных об ошибках может быть перенаправлен аналогично стандартному выводу путем добавления префикса перенаправления цифрой 2.Фактически, поток данных stdout должен иметь префикс с цифрой 1, однако это отбрасывается для экономии ввода. Для перенаправления любых сообщений об ошибках в файл error.log и обычных ответов в файл журнала можно использовать следующее.

команда> файл журнала 2> журнал ошибок

Одиночный символ «больше» (>) может быть заменен двойным символом «больше» (>>), если вы хотите, чтобы результат был добавлен к файлу, а не перезаписывал файл.

Также можно записать как стандартный вывод, так и стандартный поток ошибок в один и тот же файл.Это не просто случай использования того же имени файла в приведенной выше команде, как вы могли ожидать. Причина в том, что файл может быть открыт для записи только одним процессом за раз. Два перенаправления — это два разных процесса, которые не позволяют обоим потокам записывать в один и тот же файл. Это может быть достигнуто путем перенаправления потока данных об ошибках в поток данных stdout с помощью 2> & 1. Что теперь дает:

команда> output.file 2> & 1

Использование временного файла

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

сортировать файл1> файл1 Недействительно

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

sort file1> / temp / tmp $$
mv / tmp / tmp $$ file1

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

Вывод в файл и командную строку (тройник)

Ранние перенаправления обычно подходят для большинства целей, однако иногда необходимо, чтобы кто-то контролировал вывод команды, а также дублировал ее в файл для целей регистрации или для выполнения дальнейшей обработки.

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

команда | тройник 1

Строка выше примет любой вывод команды и поместит копию в файл1, а также отправит ее на экран.Это можно было бы дополнительно объединить, разрешив дальнейшую обработку вывода другой командой. Команду tee можно использовать в таком конвейере сколько угодно раз.

command1 | тройник file1 | команда2

Если вы хотите, чтобы tee добавлялся к файлу, а не перезаписывал его, используется опция -a.

Перенаправление стандартного входа (stdin) <

Такое же базовое перенаправление может быть выполнено и в обратном направлении, поскольку интерактивная программа, требующая ввода от пользователя, может быть автоматизирована.Например, с интерактивной программой, такой как ftp (протокол передачи файлов). Программа ftp позволяет передавать файлы с одного компьютера на другой по сети. Однако для этого необходимо, чтобы пользователь вводил команды для передачи файла. Вместо этого команды можно вводить в текстовый файл так же, как они вводятся с клавиатуры. Затем файл направляется в программу вместо stdin.

ftp linux2.penguintutor.com

(на самом деле существуют альтернативные способы выполнения определенных ftp-передач, которые не требуют интерактивного ввода, такие как использование nftp, lftp или, в некоторых случаях, sitecopy).

Нет Clobber

Перенаправление к файлу может иметь неприятные последствия, если файл уже существует и не требует замены. При неправильном использовании перенаправления можно случайно перезаписать важный файл. В оболочке bash / korn есть опция, позволяющая предотвратить ошибочную перезапись файлов. Это опция noclobber, которую можно установить, набрав

.

набор -o noclobber

Если теперь будет сделана попытка перезаписать файл, оболочка выдаст сообщение об ошибке и предотвратит запись в файл.Опцию no clobber можно отключить с помощью

комплект + noclobber

При необходимости параметр noclobber может быть помещен в профиль пользователя для автоматической установки этого параметра.

Таблица дескрипторов файла

Использование stdin, stdout и stderr возможно с использованием только одинарных знаков меньше / больше из-за способа, которым процессы назначаются таблице дескрипторов файлов.

Таблица дескрипторов файлов - это список номеров, относящихся к открытым файлам.Первыми открываются 3 файла: stdin, stdout и stderr, они пронумерованы 0 для stdin, 1 для stdout и 2 для stderr. Следовательно, на stdin и stdout можно ссылаться с помощью <и> соответственно (без дальнейшего имени файла), тогда как stderr требует 2>, чтобы убедиться, что это выходной поток с номером 2, который должен быть перенаправлен.

Дополнительная литература

Справочное руководство Bash

.Учебное пособие по

Linux - 4. Научитесь использовать страницы руководства

страниц руководства!

Ваша ссылка на Linux.

Введение

Командная строка Linux предлагает массу возможностей и возможностей. Если ваша память похожа на мою, вам трудно запомнить большое количество деталей. К счастью для нас, существует простой в использовании ресурс, который может сообщить нам обо всех замечательных вещах, которые мы можем делать с помощью командной строки. Об этом мы и узнаем в этом разделе.Я знаю, что вы стремитесь и хотите увязнуть в чем-то, и мы начнем с этого в следующем разделе, я обещаю, однако сначала нам нужно научиться использовать страницы руководства.

Так какие именно?

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

man <команда искать>

  1. человек ls
  2. Имя
  3. ls - просмотреть содержимое каталога
  4. Краткое содержание
  5. ls [опция] ... [файл] ...
  6. Описание
  7. Вывести информацию о ФАЙЛАХ (по умолчанию текущий каталог). Сортировать записи в алфавитном порядке, если не указаны ни -cftuvSUX, ни --sort.
  8. Обязательные аргументы для длинных опций являются обязательными и для коротких опций.
  9. -a, --всего
  10. не игнорировать записи, начинающиеся с.
  11. -A, - почти все
  12. не перечислить подразумевается. и ..
  13. ...

Давайте разберемся:

  • Строка 3 сообщает нам фактическую команду, за которой следует простое однострочное описание ее функции.
  • Строки 6 - это так называемый синопсис. На самом деле это всего лишь краткий обзор того, как следует запускать команду. Квадратные скобки ([]) указывают на то, что что-то не обязательно. (параметр в этой строке относится к параметрам командной строки, перечисленным под описанием)
  • Строка 9 представляет нам более подробное описание команды.
  • Строка 11 и далее Ниже описания всегда будет список всех параметров командной строки, доступных для команды.

Чтобы выйти из страниц руководства, нажмите «q» для выхода.

В поисках

На страницах Руководства можно выполнить поиск по ключевым словам. Это может быть полезно, если вы не совсем уверены в том, какую команду можете использовать, но знаете, чего хотите достичь. Чтобы этот подход был эффективным, вам может потребоваться несколько приемов. Нередко можно встретить определенное слово на многих страницах руководства.

man -k <поисковый запрос>

Если вы хотите выполнить поиск на странице руководства, это также возможно.Чтобы сделать это, пока вы находитесь на конкретной странице руководства, на которой вы хотите выполнить поиск, нажмите косую черту '/', за которой следует термин, который вы хотите найти, и нажмите 'Enter'. Если термин появляется несколько раз, вы можете циклически их просматривать нажав кнопку «n» для следующего.

Подробнее о выполнении команд

Многие люди, разбирающиеся в Linux, знают, какие параметры командной строки мы должны использовать, чтобы изменить поведение наших команд в соответствии с нашими потребностями.Многие из них имеют как длинную, так и короткую версию. например. Выше вы заметите, что для перечисления всех записей каталога (включая скрытые файлы) мы можем использовать параметр -a или --all (помните из предыдущего раздела, какие файлы и каталоги начинаются с.?). Длинная рука - это просто более удобочитаемая форма. Вы можете использовать любой из них, они оба делают одно и то же. Одним из преимуществ использования длинной руки является то, что вам будет легче запомнить, что делают ваши команды. Одним из преимуществ использования сокращений является то, что вы можете легко связать несколько слов вместе.

  1. pwd
  2. / главная / райан
  3. ls -a
  4. ls - все
  5. ls -alh

Найдите на странице руководства ls , что делает последняя команда.

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

Сводка

человек <команда>
Найдите страницу руководства для конкретной команды.
man -k <поисковый запрос>
Выполните поиск по ключевым словам для всех страниц руководства, содержащих данный поисковый запрос.
/ <срок>
На странице руководства выполните поиск по запросу
n
После выполнения поиска на странице руководства выберите следующий найденный элемент.

Справочные страницы - ваш друг.
Вместо того, чтобы пытаться запомнить все, помните, что вы можете легко поискать информацию на страницах руководства.

Мероприятия

Хорошо, теперь давайте применим это на практике.Попробуйте следующее:

  • Просмотрите страницу руководства для ls . Поиграйте с некоторыми параметрами командной строки, которые вы там найдете. Убедитесь, что вы играете с несколькими комбинациями. Также убедитесь, что вы играете с ls как с абсолютными, так и с относительными путями.
  • Теперь попробуйте выполнить несколько поисков по страницам руководства. В зависимости от выбранных вами условий вы можете получить довольно большой список. Взгляните на несколько страниц, чтобы понять, на что они похожи.

.

11 лучших бесплатных инструментов библиографии Linux (обновлено 2019)

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

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

Менеджер библиографии обычно позволяет пользователю выполнять поиск в академических и неакадемических базах данных, хранить ссылки, комментировать их, импортировать / экспортировать между различными форматами и представлять данные в стандартных форматах.

Существует широкий спектр программного обеспечения с открытым исходным кодом, которое предлагает аналогичные функции (и многое другое), доступное для Linux.Особо следует упомянуть здесь BibTeX. BibTeX - это программа и формат файла, разработанный Ореном Паташником и Лесли Лэмпортом в 1985 году для системы подготовки документов LaTeX.

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

Чтобы получить представление о качестве доступного программного обеспечения, мы составили обновленный список из 11 превосходных библиографических программ, включая собственные приложения Linux, инструменты на основе Java и веб-программы.Надеюсь, здесь будет что-то интересное для тех, кто хочет публиковать свои исследования быстрее.

А теперь давайте рассмотрим 11 имеющихся библиографических инструментов. Для каждого заголовка мы составили отдельную страницу портала, полное описание с подробным анализом его функций, а также ссылки на соответствующие ресурсы.

Инструменты для библиографии
KBibTeX Программное обеспечение для управления ссылками в первую очередь для BibTeX
Zotero Мощный инструмент для онлайн / офлайн-исследований для Firefox и автономной версии
JabRef Графический интерфейс для управления базами данных BibTeX
WIKINDX Обеспечивает виртуальную исследовательскую среду
Пиблиограф Инструмент для работы с библиографическими базами данных
Справочник Организатор документов и менеджер библиографии для Gnome
cb2Bib Извлечь библиографические ссылки из различных источников
refbase Эффективное управление научной литературой, ссылками и цитатами
papis Расширяемая командная строка для управления документами и библиографией
Bibfilex Пакет LaTeX, реализующий библиографические функции с BibTeX
pubs Библиография в командной строке

Статьи по теме

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *