Цель работы: познакомиться с базовыми командами Linux и принципами работы терминала.
Структура командной строки:user@hostname:~$
user - имя пользователяhostname - имя хоста (компьютера)~ - текущий каталог (домашний каталог пользователя)$ - обычный пользователь,# - суперпользователь (root)su -
/(root filesystem)./home/имя_пользователяили~.pwd— показать текущий каталог
ls— показать содержимое каталога
ls # краткий список
ls -l # подробный список (права, владелец, размер, дата)
ls -a # показать все, включая скрытые (начинаются с .)
ls -la # подробно + скрытые
cd— смена каталога
cd /etc # перейти в /etc
cd ~ # в домашний каталог
cd # то же самое, что cd ~
cd .. # на уровень выше
cd ../.. # на два уровня выше
cd /var/log # абсолютный путь
cd Documents # относительный путь (от текущего каталога)
mkdir— создать каталогmkdir test_dir
mkdir -p dir1/dir2/dir3 # создать вложенную структуру
touch— создать пустой файл или обновить время последнего измененияtouch file1.txt
cp— копированиеcp file1.txt file2.txt # копия в тот же каталог
cp file1.txt /tmp/ # копия в другой каталог
cp -r dir1 dir2 # рекурсивное копирование каталога
mv— перемещение и переименованиеmv file1.txt /tmp/ # переместить
mv oldname.txt newname.txt # переименовать
rm— удаление файлов и каталоговrm file1.txt # удалить файл
rm -i file1.txt # удаление с подтверждением
rm -r dir1 # удалить каталог рекурсивно
rm -rf dir1 # рекурсивно и без подтверждения (ОСТОРОЖНО!)
cat— вывести содержимое файла целикомcat file1.txt
less— постраничный просмотрless /etc/passwd
# управление: стрелки, PgUp/PgDn, q - выход
headиtail— начало и конец файлаhead file1.txt # первые 10 строк
head -n 5 file1.txt # первые 5 строк
tail file1.txt # последние 10 строк
tail -n 20 file1.txt # последние 20 строк
tail -f /var/log/syslog # непрерывное отслеживание изменений
find— поиск файлов по критериямfind /home -name "file1.txt"
find . -name "*.log" # в текущем каталоге и ниже
grep— поиск текста в файлахgrep "root" /etc/passwd
grep -n "error" /var/log/syslog # показать строки с номерами
ls -l
-rw-r--r-- 1 user user 1234 Mar 5 10:00 file1.txt
drwxr-xr-x 2 user user 4096 Mar 5 09:30 dir1
-(файл),d(каталог),l(ссылка) и т.д.rwx— для владельца (user)r-x— для группы (group)r-x— для остальных (others)r — чтение (read, 4)w — запись (write, 2)x — исполнение (execute, 1)
chmodДва варианта: символьный и цифровой.
Символьный:
chmod u+x script.sh # добавить право x владельцу
chmod g-w file1.txt # убрать право w у группы
chmod o+r file1.txt # добавить право чтения для остальных
chmod +r file1.txt # для всех (u, g, o)
Цифровой:
chmod 644 file1.txt→rw-r--r--chmod 755 script.sh→rwxr-xr-xИзменение владельца (только от root):
chownchown user:group file1.txt
ps— просмотр процессовps # процессы текущего терминала
ps aux # все процессы в системе (часто используют с grep)
topилиhtop— интерактивный монитор процессовtop
# q — выход
kill— завершение процесса по PIDkill 1234 # послать SIGTERM, где 1234 PID процесса
kill -9 1234 # SIGKILL (форсированно, осторожно)
man— руководство (manual)man ls
man chmod
Управление: q — выход, /строка — поиск, n — следующее вхождение.
--help— краткая справка по командеls --help
cp --help
ip a— просмотр сетевых интерфейсов и IP-адресовip -c a - для вывода с подсветкойping— проверка доступности узлаping 8.8.8.8
ping ya.ru
# Ctrl+C - остановить
Определите текущий каталог:
pwd
Посмотрите содержимое домашнего каталога:
ls
ls -la
Создайте каталогlinux_labв домашнем каталоге и перейдите в него:
mkdir ~/linux_lab
cd ~/linux_lab
pwd
Внутриlinux_labсоздайте структуру каталогов:
mkdir -p project1/docs project1/src project2
ls -R
Перейдите вproject1/docsи вернитесь разными способами:
cd project1/docs
pwd
cd .. # вверх
pwd
cd ../.. # снова вверх
pwd
В каталогеlinux_labсоздайте несколько файлов:
cd ~/linux_lab
touch file1.txt file2.txt
touch project1/src/main.c
Скопируйтеfile1.txtвproject2/:
cp file1.txt project2/
ls project2/
Переименуйтеfile2.txtвnotes.txt:
mv file2.txt notes.txt
ls
Скопируйте весь каталогproject1вproject3:
cp -r project1 project3
ls -R
Удалите каталогproject3:
rm -r project3
ls
Откройте файлfile1.txtв редактореnanoи запишите в него несколько строк текста (ФИО, группа, дата). Сохраните файл.
vim file1.txt
#для выхода с сохранения нажмите ESC и введите :wq (должно отобразиться в левой нижней части)
#для выхода без сохраниения нажмите ESC и введите :w!
Выведите содержимое файла:
cat file1.txt
Посмотрите только первые 2 строки файла:
head -n 2 file1.txt
Посмотрите последние 2 строки:
tail -n 2 file1.txt
Посмотрите права на файлы вlinux_lab:
ls -l
Измените права файлаfile1.txtнаrw-r-----(640):
chmod 640 file1.txt
ls -l file1.txt
Создайте файлnotes.txt и сделайте его исполняемым для владельца, оставив остальные права без изменений:
chmod u+x notes.txt
ls -l notes.txt
Найдите файлfile1.txt, начиная поиск из домашнего каталога:
find ~ -name "file1.txt"
Найдите в файлеfile1.txtстроку с вашим именем:
grep "Иванов" file1.txt # замените на свою фамилию/имя
Посмотрите список процессов текущего пользователя:
ps
Запуститеtop, понаблюдайте за процессами и выйдите:
top
# q - выход
Просмотрите IP-адреса интерфейсов:
ip a
Проверьте доступностьya.ru:
ping ya.ru
# через 3-4 пакета остановите Ctrl+C
Получите справку по командеlsдвумя способами:
man ls
ls --help
1. В домашнем каталоге создайте структуру:
lab2/
config/
logs/
bin/
2. В каталогеconfigсоздайте файлыapp.conf,db.conf,net.confи заполните их в редакторе nano строками с вашими ФИО и группой.
3. Скопируйте все.confфайлы в каталогlogsс сохранением имен.
4. Переименуйте файлnet.confвnetwork.confв каталогеconfig.
5. Установите следующие права:
app.conf—600(только владелец может читать и писать).db.conf—640.network.conf—644.6. Проверьте, что права установлены корректно с помощьюls -l.
7. Найдите все.confфайлы в каталогеlab2с помощьюfind.
8. Найдите во всех.confфайлах строки с вашей фамилией командойgrep.