Главная > Others > Unix команды


Unix команды

Основные unix команды, которые могут пригодиться в процессе работы.

Список команд

ls — Список файлов в текущей директории
pwd — Вывести путь к текущей директории
tee — Используюется для вывода данных на экран и в файл одновременно

cd [директория]— Сменить директорию
cp [что копировать][куда копировать] — Копировать файлы
mv [что перемещать][куда перемещать] — Переместить или переименовать файл
ln -s [на что сделать ссылку][имя ссылки] — Создать символическую ссылку
rm [файлы] — Удалить файлы
mkdir [директорию] — Создать новую директорию
rmdir [директорию] — Удалить пустую директорию
find -name «имя файла» — Найти файл с именем «имя файла» (ONLINE построитель FIND)
chmod [права доступа][файл] — Изменить права доступа файлов
tar — Предназначена для архивации груп файлов и каталогов
df — Список всех файловых систем по именам устройств, сообщает их размер, занятое и свободное пространство и точки монтирования

Обзор unix команд

vi filename — Вызов редактора vi для редактирования файла filename

vi — текстовый редактор командной строки. При запуске vi  просмотр и редактирование файла производится в текущем окне терминала.  Операции в vi осуществляются путем нажатия определенных клавиш или их комбинаций.

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

vi example_file.sh
Клавиши Действие
[i] Для перехода в режим вставки нажмите клавишу [i]. Это позволит вносить изменения в файл.
[Esc] Нажатие клавиши [Esc] в любое время отключает режим вставки и включает нормальный режим.
[w] Записывает в файл изменения. Перейдите в нормальный режим, нажмите [Shift]-[:], [w] и в завершение нажмите [Enter].
[q] Закрывает vi. Перейдите в нормальный режим, нажмите [Shift]-[:], [q] и в завершение нажмите [Enter].

В vi существует множество других операций. Для этого введите в командной строке man vi.
Вы можете также почитать vim tutorial, введя в командной строке vimtutor.



find — Команда поиска файлов, используемая в UNIX‐подобных операционных системах.

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

Пример. Найти все файлы, начиная с текущей директории, название которых начинается на my:

find . -name 'my*'
Ключ Действие
-name искать по имени файла, при использовании подстановочных образцов параметр заключается в кавычки
-type тип искомого: f=файл, d=каталог, l=ссылка (link)
-size размер: указывается в 512-байтных блоках или байтах (признак байтов — символ «c» за числом)
-mtime время последнего изменения файла
-newer искать файлы созданные позже указанной даты
-delete удалять найденные файлы
-print показывает на экране найденные файлы
-exec command {} \; выполняет над найденным файлом указанную команду и подставляет вместо {} текущий файл.
-ok перед выполнением команды указанной в -exec, выдаёт запрос
-prune используется, когда вы хотите исключить из поиска определённые каталоги


Примеры использования unix команд

ls | grep '\.sh' | sort | tee test1.log

Получает список содержимого текущей директории, который фильтруется, оставляя только строки содержащие «.sh», затем этот отфильтрованный список лексически сортируется и окончательный результат помещается в файл test1.log и выводиться на экран.


find . \( -name "my*" -o -name "qu*" \) -print

Найти все файлы, начиная с текущей директории, название которых начинается на my или qu. Обратите внимание, что по умолчанию все аргументы соединены с помощью логического и (опция «-a»). Если необходимо объединить несколько аргументов логическим или — используйте опцию «-o».


find / -mmin -1 -print

Вывести список файлов во всей файловой системе, изменённых в течение последней минуты.

find / -mtime +31 -print

Вывести список файлов во всей файловой системе, которые были изменены более 31 дня назад.


find . -name "oldfile.name" -exec cp newfile.name {} \;

Найти и заменить текст файла oldfile.name на текст файла newfile.name во всех подпапках.


tar cvf - -C $FILE_DIR --exclude '.svn' . | tar xvf - -C $COPY

Скопировать содержимое дирректории $FILE_DIR, кроме файлов «.svn», в новую дирректорию $COPY.


find $FILE_DIR -name "newfile.name" -exec cp {} $COPY \;

Находим файл «newfile.name» в дирректории $FILE_DIR и копируем его в дирректорию $COPY.


find . ! -name "test.log" -a -name "*.log"

Вывести все файлы в текущей дирректории с расширением «.log», кроме файла «test.log»


find  $APPL_TOP -name "FORM_NAME.fmx"  -exec strings -a {}  \; | grep Header

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


find $JAVA_TOP/oracle/apps/ -name "NAME.class"  -exec strings -a {}  \; | grep '$Header'

Получить информацию о версии java класса


find $JAVA_TOP/oracle/apps/ -name "*VO.xml" -type f -exec grep -l "fnd_global" {} \;

Найти все файлы «*VO.xml» с текстом «fnd_global»


echo "test.txt"|awk -F . '{print $NF}'

txt

или

fileName="test.txt"
formatFile=`echo "$fileName" | awk -F . '{print $NF}'`
echo $formatFile

txt

Получить формат файла


basename /usr/bin/fsort.log
fsort.log

basename /usr/bin/fsort.log .log2
fsort.log

basename /usr/bin/fsort.log .log
fsort

Убирает имена каталогов и суффикс из имени файла. Если суффикс задан и идентичен концу имени, то он также удаляется из имени.


dirname /usr/bin/fsort.log
/usr/bin

dirname fsort.log
.

Получить путь к файлу


sed -e 's/"RU"/"US"/g' file1 > file2

Изменить в файле file1 строку <"RU"> на строку <"US"> и поместить в новый файл file2


chmod a=rwx file_name

Все права для всех на файл — чтение, изменение, выполнение


to_process=`echo "$file" | grep ".java"`

Положить в переменную to_process значение $file, только если оно содержит подстроку «.java»



По мере появления,  буду добавлять сюда новые unix команды (примеры использования).

Похожие записи:

Categories: Others Tags: ,
  1. Пока что нет комментариев.