Как работать в Unix Shell

Многие операции с вашими файлами и на хостинге можно гораздо быстрее и эффективнее делать с помощью командной строки Unix. Так, если вы копировали файлы CMS Joomla на хостинг по FTP, вы отметили как это долго, ведь большинство FTP клиентов позволяет копировать файлы только по одному. И после каждого копирования ещё происходит отправка-получение служебных команд, что снова увеличивает время выгрузки. Для самой быстрой и эффективной работы с вашими данными на хостинге, служит Unix Shell, с которым вы будете работать по протоколу SSH.

Что такое SSH?

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

Что такое Unix Shell?

Unix Shell — это командная строка Unix, или особый скриптовый язык программирования (язык команд интерпретатора). С помощью него можно очень эффективно копировать, перемещать, удалять, упаковывать в архив и т.д. На практике вам стоит освоить всего около десятка команд и несколько «ключей» к ним. Перед тем, как начать пользоваться командной строкой, стоит рассказать о файловой системе Unix.

Файловая система

Корень всей файловой системы обозначается так: / (произносится — «слэш»). В корневой директории находятся папки /bin (бинарники), /tmp, /dev, /home, /root (админ), /usr и другие. Обычно на виртуальных хостингах ваша сфера влияния будет ограничена папкой /home/clients/petya (на хостинге Masterhost у вас будет что-то вроде /home/u163335/ , где u163335 — ваш логин в системе ). Это значит, что вы, как рядовой юзер, можете записывать файлы в папку /home/clients/petya/ и поддиректории этой папки.

Права — это разрешение на чтение/запись/выполнение для конкретного статуса (ваш статус — юзер, которому отдали папку /home/сlients/petya/). Кроме отдельного пользователя в иерархии Unix существуют группы пользователей и root — админ, тот кто может снести всю систему одной командой. Его права не ограничены. Соответственно ни один клиент хостинга никогда не получит этих прав, так, на всякий случай 🙂

Домашняя папка на языке shell обозначается так: “~“, текущая директория — “./“. Поэтому папка /home/clients/petya/domains эквивалентно ~/domains, а если в данный момент вы находитесь в своей домашней директории, тогда можно написать “./domains“. Вышестоящая папка называется “../“.

Теперь к практике

Качайте себе клиент для SSH — протокола, программу PuTTY и запускайте (инсталлировать не нужно). В открывшемся окне в поле “Host Name (or IP address)” вводим имя сервера, оставляем порт 22 и жмем кнопку “Open”.  Если все правильно, открывается черное окно терминала. У вас спрашивают логин — вводим и жмем “ввод”. Следующая строка — ввод пароля. Внимательно введите пароль и нажмите “ввод”. Во время ввода пароля на экране не будут отображаться никакие символы.

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

Начинаем изучать команды

Команды просмотра списка файлов и директорий

pwd — используется для информирования вас о вашем текущем местонахождении. Чтобы воспользоваться командой pwd, просто наберите её и нажмине “ввод”.

ls — листинг директории (посмотреть какие файлы есть в папке).

ls -l — упорядоченный листинг (разница налицо),

ls -la или (ls -l -a) — показать все файлы, включая скрытые (начинаются на точку) и “.” (текущая) с “..” (вышестоящая папка).

Команды перехода по директориям

cd joomlaclass.spb.ru — перейти в папку

joomlaclass.spb.ru (cd = change directory, сменить директорию), если она есть в вашей домашней директории. cd .. — переместиться на уровень вверх.

cd ~ — в домашнюю директорию.

Удаление файлов и директорий

rm — удалить.
rm * — удалить все файлы, на которые у вас есть права на запись. Папку таким образом удалить нельзя. Кстати * = ./*
rm -R ./* — удалить все файлы и папки (и файлы в папках любой вложенности) в текущей директории. В такой ситуации скорее всего вас будут каждый раз спрашивать удалить файл или нет. Чтобы убрать вопросы, пишем
rm -R -f ./* или rm -Rf ./* — теперь команда снесет все содержимое текущей папки без разговоров.

Кстати, скрытые файлы (такие, которые начинаются с точки) таким образом удалить нельзя. Для их удаления придется набирать rm .имя_файла (пример: rm .htaccess)

Удаление директории

Удалить НЕ пустой каталог вам просто так не удасться, вначале нужно удалить всё, что в нём. А когда каталог пуст, удаляем его командой:

rmdir имя_каталога

Пример удаления каталога vasya

Создание директории

mkdir имя_директории — будет создана директория с указанным именем

Распаковка архивов

tar -xzf archive.tar.gz для архива в текущей папке.
unzip archive.zip — для zip архивов.
unrar archive.rar — для rar архивов.

Кстати, архив с расширением .tar.gz (или .tgz) — это специфический UNIX-овый формат, может быть создан из под Windows в Total Commander. Выделите все файлы для упаковки на одной панели, нажмите Alt + F5 — и укажите тип архива TGZ. Упаковка произойдет в папку на соседней панели.

TGZ — имеет один из самых эффективных алгоритмов сжатия (лучше, чем ZIP)

Упаковываем в архив

tar -czf archive.tar.gz www — упаковываем содержимое каталога www в один архив archive.tar.gz

Можно также войти в корневой каталог вашего сайта на CMS Joomla и упаковать все файлы в один архив (файл arch.tgz):

tar -czf arch.tgz ./* — (означает «упаковать в файл arch.tgz все файлы данного каталога»)

Копирование файлов и каталогов

Например нужно скопировать все файлы из каталога old в каталог new

cp -r old/* new/ — копируем все файлы и подкаталоги из каталога old в каталог new

Если стоит задача скопировать не все файлы, а только с расширением .html — набираем команду:

cp old/*.html new/ — копируем все файлы с расширением *.html из каталога old в каталог new

Перемещаем файлы и каталоги

mv old/* new/ — перемещаем (копируем и удаляем на старом месте) все содержимое каталога old в каталог new

Изменение прав доступа к файлу

Команда chmod — изменение режима доступа к файлам.

Иногда требуется вручную изменить режим доступа к файлам на диске Unix-сервера. Зачастую это нужно при размещении на сервере CGI-скриптов. Подробно о работе chmod и режимах доступа можно прочитать в документации по chmod. Я же приведу примеры работы с chmod в условиях хостинга:

  • chmod 755 script.pl — изменить режим доступа к файлу script.pl на 755 (это нужный для скриптов режим доступа);
  • chmod -R 755 cgi-bin/*.pl — изменить режим доступа на 755 для всех файлов с расширением *.pl в каталоге cgi-bin и во всех его подкаталогах;
  • chmod 000 www/file.html — изменить режим доступа к файлу file.html в каталоге www на 000. При таком режиме доступа его никто не сможет открыть. Так можно быстро запретить доступ через веб к какому-то файлу.

Список основных команд Linux. Все команды тестировались на Fedora и Ubuntu.

Команда Описание
apropos whatis Показать команды соответствующие строке. См. также threadsafe
man -t man | ps2pdf — > man.pdf Создать pdf версию страницы мануала (man)
which command Показать полный путь к файлу команды
time command Выполнить команду и отобразить время выполнения
time cat Запустить секундомер. Ctrl-d чтобы остановить его. См. также sw
nice info Запустить команду с низким приоритетом (”info” reader в данном случае)
renice 19 -p $$ Установить shell (скрипту) низкий приоритет. Используется для неинтерактивных задач.
Навигация по директориям
cd — Перейти в предыдущую директорию
cd Перейти в $HOME директорию
(cd dir && command) Перейти в директорию, выполнить комманду (command) и вернуться в текущую директорию
pushd . Положить текущую директорию в стек, чтобы позже вернуться к ней с помощью popd
alias l=ls -l —color=auto Быстрое отображение содержимого директории
ls -lrt Список файлов по дате. См. также newest и find_mm_yyyy
ls /usr/bin | pr -T9 -W$COLUMNS Напечатать в 9 столбцов в ширину терминала
find -name *.[ch] | xargs grep -E expr Искать ‘expr’ в текущей директории и в нижестоящих директориях. См. также findrepo
find -type f -print0 | xargs -r0 grep -F example Поиск всех файлов по ‘example’ в текущей директории и ниже
find -maxdepth 1 -type f | xargs grep -F example Поиск всех файлов по ‘example’ в текущей директории
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done Обработать каждый элемент с несколькими командами (в цикле while)
find -type f ! -perm -444 Найти файлы, которые не являются видимыми для всех (полезно для веб сайта)
find -type d ! -perm -111 Найти директории не доступные для всех (полезно для web сайтов)
locate -r file[^/]*.txt Искать в кешированном индексе по именам.
look reference Быстрый поиск (сортированный) словаря по префиксу
grep —color reference /usr/share/dict/words Подсвечивание мест где регулярное выражение появляется в словаре
Архивирование и сжатие
gpg -c file Зашифровать файл
gpg file.gpg Расшифровать файл
tar -c dir/ | bzip2 > dir.tar.bz2 Заархивировать директорию (папку) dir/
bzip2 -dc dir.tar.bz2 | tar -x Разархивировать архив (используйте gzip вместо bzip2 для файлов tar.gz)
tar -c dir/ | gzip | gpg -c | ssh user@remote dd of=dir.tar.gz.gpg Создать зашифрованный архив директории (папки) dir/ на удаленном компьютере
find dir/ -name *.txt | tar -c —files-from=- | bzip2 > dir_txt.tar.bz2 Создать архив для папки dir/ и всех вложенных папок
find dir/ -name *.txt | xargs cp -a —target-directory=dir_txt/ —parents Создать копию папки dir/ с вложенными папками
( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p ) Скопировать (с правами доступа) папку copy/ в папку /where/to/
( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p ) Скопировать (с правами доступа) содержимое папки copy/ в /where/to
( tar -c /dir/to/copy ) | ssh -C user@remote cd /where/to/ && tar -x -p Скопировать (с правами доступа) папку copy/ на удаленный компьютер remote:/where/to
dd bs=1M if=/dev/sda | gzip | ssh user@remote dd of=sda.gz Сделать резервную копию (сбекапить) жесткого диска и послать ее на удаленный компьютер
rsync (Эффективный сетевой копировщик файлов: Используйте опцию –dry-run для тестирования)
rsync -P rsync://rsync.server.com/path/to/file file Только отобразить различия. Делайте много раз чтобы проверить прошли ли нормально закачки
rsync —bwlimit=1000 fromfile tofile Скопировать локально с предельной скоростью. Это приятно для I/O
rsync -az -e ssh —delete ~/public_html/ remote.com:~/public_html Зеркальный веб сайт (используется шифрование и дешифрование)
rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ Синхронизировать текушую папку с папкой на удаленном компьютере
ssh (Secure SHell)
ssh $USER@$HOST command Запустить команду command на удаленном хосте $HOST от имени пользователя $USER
(команда по умолчанию = shell)
ssh -f -Y $USER@$HOSTNAME xeyes Запустить GUI команду на удаленном хосте $HOST от имени пользователя $USER
scp -p -r $USER@$HOST: file dir/ Скопировать папку dir/ с правами доступа в домашнию папку пользователя $USER на хосте $HOST
ssh -g -L 8080:localhost:80 root@$HOST Перенаправить соединения к $HOSTNAME:8080 наружу к $HOST:80
ssh -R 1434:imap:143 root@$HOST Перенаправить соединения от $HOST:1434 к внутр. imap:143
wget (многоцелевой инструмент для скачивания)
(cd cli && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) Сохранить веб страницу (как она открывается локально) в текущую директорию
wget -c http://www.example.com/large.file Продолжить скачивание частично скаченного файла
wget -r -nd -np -l1 -A *.jpg http://www.example.com/ Скачать множество файлов в текущую директорию
wget ftp://remote/file[1-9].iso/ Ftp непосредственная поддержка globbing
wget -q -O- http://www.pixelbeat.org/timeline.html | grep a href | head Отображать вывод напрямую (на экран)
echo wget url | at 01:00 Скачать url в 01:00 в текущую директорию
wget —limit-rate=20k url Сделать закачку с уменьшенной скоростью (ограничить скорость до 20 КB/s в этом примере)
wget -nv —spider —force-html -i bookmarks.html Проверить ссылки в файле
wget —mirror http://www.example.com/ Оперативно обновлять локальную копию сайта (удобно использовать с cron)
Сетевые команды (Обратите внимание, что команды ifconfig, route, mii-tool, nslookup устарели)
ethtool eth0 Отобразить статус сетевого устройства (интерфейса) eth0
ethtool —change eth0 autoneg off speed 100 duplex full Вручную установить скорость сетевого интерфейса (устройства)
iwconfig eth1 Отобразить статус беспроводного интерфейса (устройства) eth1
iwconfig eth1 rate 1Mb/s fixed Вручную установить скорость беспроводного интерфейса (устройства)
iwlist scan Список беспроводных сетей в радиусе действия
ip link show Список сетевых интерфейсов (устройств)
ip link set dev eth0 name wan Переименовать интерфейс (устройство) eth0 в wan
ip link set dev eth0 up Включить интерфейс eth0 (чтобы выключить — down)
ip addr show Список ip адресов интерфейсов
ip addr add 1.2.3.4/24 brd + dev eth0 Добавить (или удалить) ip адрес и маску (255.255.255.0)
ip route show Вывести таблицу маршрутизации
ip route add default via 1.2.3.254 Установить 1.2.3.254 в качестве шлюза по умолчанию
tc qdisc add dev lo root handle 1:0 netem delay 20msec Добавить 20мс латентность к устройству loopback (для тестирования)
tc qdisc del dev lo root Убрать латентность добавленную выше
host pixelbeat.org Поиск ДНС ip адреса по имени хоста или наоборот
hostname -i Поиск локального ip адреса (идентично host ‘hostname’)
whois pixelbeat.org Поиск whois информации по имени хоста или ip адресу
netstat -tupl Список интернет сервисов в системе
netstat -tup Список активных соединений к системе (от системы)
Сетевые команды связанные с windows (Обратите внимание, что samba — это пакет который предоставляет всю windows специфичную поддержку сети)
smbtree Найти windows компьютеры в сети. См. также findsmb
nmblookup -A 1.2.3.4 Найти windows (netbios) имя, ассоциируемое с ip адресом
smbclient -L windows_box Список shares на windows компьютере или samba сервере
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share Смонтировать windows share (папку с открытым доступом)
echo message | smbclient -M windows_box Послать popup сообщение на windows комьютер (отключено по умолчанию в XP sp2)
Манипуляции с текстом (Обратите внимание, sed использует stdin и stdout, так что если Вы хотите редактировать файлы, добавляйте <oldfile >newfile)
sed s/string1/string2/g Заменить строку string1 строкой string2
sed s/(.*)1/12/g Изменить строку anystring1 на anystring2
sed / *#/d; /^ *$/d Убрать комментарии и пустые строки
sed :a; /$/N; s/ //; ta Соединить строки (линии) с предшествующим
sed s/[ ]*$// Удалить предшествующие пробелы с строк
sed s/([`»$])/1/g Заескейпить активные метасимволы оболочки двумя ковычками
seq 10 | sed «s/^/      /; s/ *(.{7,})/1/» Выровнять числа по правой границе
sed -n 1000p;1000q Напечатать 1000-ную строку
sed -n 10,20p;20q Напечатать строки с 10 по 20-ую
sed -n s/.*<title>(.*)</title>.*/1/ip;T;q Получить title из HTML страницы
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n Отсортировать IPV4 ip адреса
echo Test | tr [:lower:] [:upper:] Перевести из одного регистра в другой
tr -dc [:print:] < /dev/urandom Отфильтровать не печатаемые символы
history | wc -l Посчитать число строк
Операции с множествами (Обратите внимание, что Вы можете export LANG=C для скорости. Это также полагает отсутствие линий дупликатов в файле)
sort file1 file2 | uniq Объединение неотсортированных файлов
sort file1 file2 | uniq -d Пересечение неотсортированных файлов
sort file1 file1 file2 | uniq -u Разность неотсортированных файлов
sort file1 file2 | uniq -u Симметрическая разность неотсортированных файлов
join -t? -a1 -a2 file1 file2 Объединение отсортированных файлов
join -t? file1 file2 Пересечение отсортированных файлов
join -t? -v2 file1 file2 Разность отсортированных файлов
join -t? -v1 -v2 file1 file2 Симметрическая разность отсортированных файлов
Математические операции
echo (1 + sqrt(5))/2 | bc -l Простая математика (Вычисление числа ?). См. также bc
echo pad=20; min=64; (100*10^6)/((pad+min)*8) | bc Более сложная (целая). Этот пример показывает максимум FastE packet rate
echo pad=20; min=64; print (100E6)/((pad+min)*8) | python Питон занимается математическими вычислениями
echo pad=20; plot [64:1518] (100*10**6)/((pad+x)*8) | gnuplot -persist Напечатать FastE packet rate против packet size
echo obase=16; ibase=10; 64206 | bc Конвертация систем счисления (десятичную в шестнадцатиричную)
echo $((0x2dec)) Конвертация систем счисления (шестнадцатиричную в десятичную)
((арифметическое расширение shell-а))
units -t 100m/9.58s miles/hour Unit конвертация (метрической системы в имперскую)
units -t 500GB GiB Unit конвертация (SI в IEC префиксы)
units -t 1 googol Поиск определения
seq 100 | (tr +; echo 0) | bc Добавить столбец чисел. См. также add и funcpy
Календарь
cal -3 Отобразить календарь
cal 9 1752 Отобразить календарь для конкретного месяца года
date -d fri Какая дата у текущей пятницы. См. также day
[ $(date -d «tomorrow» +%d) = «01» ] || exit Завершить выполнение скрипта, если только сейчас не последний день месяца
date —date=25 Dec +%A Какого числа будет рождество в текущем году
date —date=@2147483647 Перевести секунды прошедшие с epoch (1970-01-01 UTC) в дату
TZ=:America/Los_Angeles date Сколько времени сейчас на Западном побережье США (используйте tzselect чтобы найти TZ)
echo «mail -s get the train P@draigBrady.com < /dev/null» | at 17:45 Напоминать по Email
echo «DISPLAY=$DISPLAY xmessage cooker» | at «NOW + 30 minutes» Напоминать в Popup окне
Locales (локализация)
printf «%d » 1234 Напечатать четырехзначное число сгруппированное соответственно локали
BLOCK_SIZE=1 ls -l Сделать чтобы ls группировала тысячи соответственно локали
echo «I live in `locale territory`» Получить информацию из базы данных локали
LANG=en_IE.utf8 locale int_prefix Искать информацию о локали для конкретной страны См. также ccodes
locale | cut -d= -f1 | xargs locale -kc | less Список полей, доступных в базе данных локали
Перекодирование (команды iconv, dos2unix, unix2dos устарели)
recode -l | less Отобразить доступные переходы (по 1 алиасу на каждой строке)
recode windows-1252.. file_to_change.txt Перевести Windows “ansi” в локальную (текущую) кодировку (auto делает CRFL перевод)
recode utf-8/CRLF.. file_to_change.txt Перевести windows utf8 в локальную (текущую) кодирувку
recode iso-8859-15..utf8 file_to_change.txt Перевести из кодировки latin9 (западная европейская) в utf8
recode ../b64 < file.txt > file.b64 Кодирование base64
recode /qp.. < file.txt > file.qp Раскодирование с кавычками
recode ..HTML < file.txt > file.html Перевести text в HTML
recode -lf windows-1252 | grep euro Поиск в таблице символов
echo -n 0x80 | recode latin-9/x1..dump Показать символ в кодировке latin9 по коду
echo -n 0x20AC | recode ucs-2/x2..latin-9/x Показать latin-9 encoding
echo -n 0x20AC | recode ucs-2/x2..utf-8/x Показать utf-8 encoding
CDs (операции с CD дисками)
gzip < /dev/cdrom > cdrom.iso.gz Сохранить копию CD с данными
mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz Создать образ CD диска из содержимого директории
mount -o loop cdrom.iso /mnt/dir Смонтировать CD образ на /mnt/dir (только для чтения)
cdrecord -v dev=/dev/cdrom blank=fast Очистить CDRW
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom — Записать CD образ (используйте dev=ATAPI -scanbus для выбора устройства записи)
cdparanoia -B Сохранить аудио треки с CD в wav файлы (сохранятся в текущую папку)
cdrecord -v dev=/dev/cdrom -audio *.wav Создать аудио диск (audio CD) из всех wav файлов,
находящихся в текущей директории (см. также cdrdao)
oggenc —tracknum=track track.cdda.wav -o track.ogg Создать ogg файл из wav файла
Дисковое пространство (См. также FSlint)
ls -lSr Список файлов, отсортированных по размеру (файл с наибольшим размером — последний)
du -s * | sort -k1,1rn | head Показать пользователей в текущей папке с наибольшим объемом используемых данных.
См. также dutop
df -h Показать свободное место на смонтированных файловых системах
df -i Показать свободные индексные дескрипторы на смонтированных файловых системах
fdisk -l Показать размеры разделов дисков и типы (запускается от root-а)
rpm -q -a —qf %10{SIZE} %{NAME} | sort -k1,1n Список всех пакетов с размером дистрибутивов (размер — в Байтах)
dpkg-query -W -f=${Installed-Size;10} ${Package} | sort -k1,1n Список всех пакетов с размерами установки (размер — в килобайтах) для debian дистрибутивов
dd bs=1 seek=2TB if=/dev/null of=ext3.test Создать большой тестовый файл. См. также truncate
Мониторинг/отладка
tail -f /var/log/messages Мониторинг сообщений в log файле
strace -c ls >/dev/null Сумма/профиль системных вызовов, сделанных командой
strace -f -e open ls >/dev/null Список системных вызовов, сделанных командой
ltrace -f -e getenv ls >/dev/null Список библиотечных вызовов, сделанных командой
lsof -p $$ Список путей, которые открывал процесс
lsof ~ Список процессов, которые имеют открытые пути
tcpdump not port 22 Отобразить сетевой (кроме ssh) траффик. См. также tcpdump_not_me
ps -e -o pid,args —forest Иерархический список процессов
ps -e -o pcpu,cpu,nice,state,cputime,args —sort pcpu | sed /^ 0.0 /d Список процессов с % использования процессора
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS Список процессов с используемой ими памятью (См. также ps_mem.py)
ps -C firefox-bin -L -o pid,tid,pcpu,state Список всех потоков для конкретного процесса
ps -p 1,2 Список информации о процессах с конкретными IDs (идентификаторами)
last reboot Показать историю ребутов системы
free -m Показать количество оставшейся оперативной памяти (-m отображает в мегабайтах)
watch -n.1 cat /proc/interrupts Наблюдать последовательно за изменяющимися данными
Информация о системе (см. также sysinfo) (’#’ означает, что для запуска нужны права root-а)
uname -a Показать версию ядра и системную архитектуру
head -n1 /etc/issue Показать название и версию дистрибутива (операционной системы)
cat /proc/partitions Показать все разделы, зарегистрированные в системе
grep MemTotal /proc/meminfo Показать всю оперативную память, которую видит система
grep «model name» /proc/cpuinfo Показать информацию о процессоре(ах) (CPU)
lspci -tv Показать информацию о шине PCI
lsusb -tv Показать информацию о USB
mount | column -t Список смонтированных файловых систем в системе (херархический вывод)
# dmidecode -q | less Отобразить информацию о SMBIOS/DMI
# smartctl -A /dev/sda | grep Power_On_Hours Какой промежуток времени этот диск (система) был включен (работал)
# hdparm -i /dev/sda Показать информацию о диске sda
# hdparm -tT /dev/sda Протестировать скорость чтения на диске sda
# badblocks -s /dev/sda Протестировать на нечитаемые блоки диск sda
Интерактивность
readline Редактор строки, используемый bash, python, gnuplot, …
screen Виртуальные терминалы с возможностями открепления, …
mc Мощный файл менеджер, которые может просматривать rpm, tar, ftp, ssh, …
gnuplot Интерактивная (скриптовая) графика
links Текстовый веб браузер
Разное
alias hd=od -Ax -tx1z -v Ручной 16-ричный дамп (пример использования: hd /proc/self/cmdline | less)
alias realpath=readlink -f Канонический путь (пример использования: realpath ~/../$USER)
set | grep $USER Поиск в текущем environment (окружении)
touch -c -t 0304050607 file Установить дату для файла (YYMMDDhhmm)
python -m SimpleHTTPServer Отобразить дерево текущего каталога по адресу http://$HOSTNAME:8000/

 

в статье использованы материалы сайтов videotutor.ru и www.pixelbeat.org

Share