MainTerminalCommands - aleksei-khitev/knowledge_base GitHub Wiki

Основные команды

Навигация

Текущий каталог

pwd - чтоб узнать, в каким каталоге сейчас находишься

[...@... ~]$ pwd
/home/user_name

Смена каталога

cd absolute/relative path - сделать указанный каталог своим текущим
Используй символ . чтоб сослаться на текущий каталог
Используй символ .. чтоб сослаться на родительский каталог
Используй символ ~ чтоб сослаться на домашний каталог

[...@... log]$ cd /var
[...@... var]$ pwd
/var
[...@... var]$ cd log
[...@... log]$ pwd
/var/log
[...@... log]$ cd ..
[...@... var]$ pwd
/var
[...@... var]$ cd ./log
[...@... log]$ pwd
/var/log
[...@... log]$ cd ~
[...@... ~]$ pwd
/home/user_name
[...@... ~]$ cd ../../var
[...@... var]$ pwd
/var

Содержимое каталога

ls - показывает содержимое каталога. Если ввести просто ls без аргументов, то будет показано содержимое текущего каталога. Также, можно указать какой нибудь путь в аргументе к ls.
ls -a - покажет все, включая скрытые файлы (если имя файла или каталога начинается в символа ., то он считается скрытым)
ls -l - покажет детальную информацию включая права доступа, размер, владельца и т.д.
ls -R - покажет файлы в подкаталогах

[...@... ~]$ ls
my_notes
[...@... ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .cache  .config  .landscape  .local  .motd_shown  .profile  .ssh  .sudo_as_admin_successful  my_notes
[...@... ~]$ ls -l
total 0
-rw-rw-rw- 1 aleksei_khitev aleksei_khitev 4 Aug 19 13:01 my_notes
[...@... ~]$ ls -al
total 12
drwxr-xr-x 1 aleksei_khitev aleksei_khitev 4096 Aug 19 13:01 .
drwxr-xr-x 1 root           root           4096 Aug 17 11:46 ..
-rw------- 1 aleksei_khitev aleksei_khitev  775 Aug 18 15:10 .bash_history
-rw-r--r-- 1 aleksei_khitev aleksei_khitev  220 Aug 17 11:46 .bash_logout
-rw-r--r-- 1 aleksei_khitev aleksei_khitev 3771 Aug 17 11:46 .bashrc
drwx------ 1 aleksei_khitev aleksei_khitev 4096 Aug 17 12:17 .cache
drwx------ 1 aleksei_khitev aleksei_khitev 4096 Aug 17 12:17 .config
drwxr-xr-x 1 aleksei_khitev aleksei_khitev 4096 Aug 17 11:46 .landscape
drwx------ 1 aleksei_khitev aleksei_khitev 4096 Aug 17 12:17 .local
-rw-rw-rw- 1 aleksei_khitev aleksei_khitev    0 Aug 19 12:44 .motd_shown
-rw-r--r-- 1 aleksei_khitev aleksei_khitev  807 Aug 17 11:46 .profile
drwxrwxrwx 1 aleksei_khitev aleksei_khitev 4096 Aug 18 12:29 .ssh
-rw-r--r-- 1 aleksei_khitev aleksei_khitev    0 Aug 17 11:47 .sudo_as_admin_successful
-rw-rw-rw- 1 aleksei_khitev aleksei_khitev    4 Aug 19 13:01 my_notes
[...@... ~]$ ls /var
backups  cache  crash  lib  local  lock  log  mail  opt  run  snap  spool  tmp
[...@... ~]$ ls -R /var/log
/var/log:
alternatives.log  apt  btmp  dist-upgrade  dpkg.log  journal  landscape  lastlog  unattended-upgrades  wtmp
 
/var/log/apt:
eipp.log.xz  history.log  term.log
 
/var/log/dist-upgrade:
 
/var/log/journal:
 
/var/log/landscape:
 
/var/log/unattended-upgrades:

Стоит заметить, что аргументы-ключи можно комбинировать в таком виде: ls -al или ls -a -l

Поиск

Поиск файлов

find some_path -name "file_name or regular expresion"

[...@... ~]$ find /var/log -name "history.log"
/var/log/apt/history.log
[...@... ~]$ find /var/log -name "history.*"
/var/log/apt/history.log

Поиск папок

find /some/path -type d -name "Some Name" 
```

### Поиск текста
`grep "some string" file` - поиск строк со вхождением искомого текста в указанном файле<br/>
`grep "some string" -R path` - поиск строк со вхождением искомого текста во всех файлах в указанном каталоге
```bash
[...@... ~]$ grep "startup" /var/log/dpkg.log
2020-08-04 21:47:42 startup packages remove
2020-08-04 21:47:43 startup packages configure
2020-08-04 21:47:44 startup packages purge
2020-08-04 21:47:44 startup packages configure
2020-08-04 21:47:46 startup packages remove
2020-08-04 21:47:47 startup packages configure
2020-08-04 21:47:47 startup packages purge
2020-08-04 21:47:48 startup packages configure
2020-08-04 22:07:39 startup archives unpack
2020-08-04 22:07:47 startup packages configure
2020-08-17 11:48:15 startup archives unpack
2020-08-17 11:48:17 startup packages configure
[...@... ~]$ grep "startup" -R /var/log
grep: /var/log/btmp: Permission denied
/var/log/dpkg.log:2020-08-04 21:47:42 startup packages remove
/var/log/dpkg.log:2020-08-04 21:47:43 startup packages configure
/var/log/dpkg.log:2020-08-04 21:47:44 startup packages purge
/var/log/dpkg.log:2020-08-04 21:47:44 startup packages configure
/var/log/dpkg.log:2020-08-04 21:47:46 startup packages remove
/var/log/dpkg.log:2020-08-04 21:47:47 startup packages configure
/var/log/dpkg.log:2020-08-04 21:47:47 startup packages purge
/var/log/dpkg.log:2020-08-04 21:47:48 startup packages configure
/var/log/dpkg.log:2020-08-04 22:07:39 startup archives unpack
/var/log/dpkg.log:2020-08-04 22:07:47 startup packages configure
/var/log/dpkg.log:2020-08-17 11:48:15 startup archives unpack
/var/log/dpkg.log:2020-08-17 11:48:17 startup packages configure
```
## Операции с файлами
### Создание каталога
`mkdir name`
```bash
[...@... ~]$ mkdir some_dir
[...@... ~]$ ls
my_notes  some_dir
```
### Создание файла
Есть много разных путей для создания нового файла. К примеру, можно использовать текстовый редактор _nano_
```bash
[...@... ~]$ nano my_notes
```
Когда редактор откроется можно добавить нужный текст и нажать **Ctrl** + **X**, чтобы сохранить и выйти
### Копирование файлов
`cp file file`
```bash
[...@... ~]$ cp my_notes my_notes_backup
[...@... ~]$ ls
my_notes  my_notes_backup
```
### Переименование или перемещение (вырезать, вставить) файлов
Аналогично `cp`, но `mv`
```bash
[...@... ~]$ ls
my_notes
[...@... ~]$ mv my_notes notes
[...@... ~]$ ls
notes
```
### Просмотр содержимого файла
`less file` - открыть файл для просмотра (не редактирования). Чтобы выйти из просмотра, нужно нажать **q**<br/>
`tail file` - Вывести последние несколько строк<br/>
`tail -f file` - Выводить последние несколько строк в реальном времени. Когда новые строки будут появляться в файле, они будут автоматически выведены в консоль. Очень удобно при работе с логами и отлове ошибок в реальном времени. Чтобы прекратить отслеживание, нужно нажать **Ctrl** + **C**.
```bash
[...@... ~]$ tail /var/log/dpkg.log
2020-08-17 11:48:17 status installed mc:amd64 3:4.8.24-2ubuntu1
2020-08-17 11:48:17 trigproc man-db:amd64 2.9.1-1 <none>
2020-08-17 11:48:17 status half-configured man-db:amd64 2.9.1-1
2020-08-17 11:48:18 status installed man-db:amd64 2.9.1-1
2020-08-17 11:48:18 trigproc mime-support:all 3.64ubuntu1 <none>
2020-08-17 11:48:18 status half-configured mime-support:all 3.64ubuntu1
2020-08-17 11:48:19 status installed mime-support:all 3.64ubuntu1
2020-08-17 11:48:19 trigproc libc-bin:amd64 2.31-0ubuntu9 <none>
2020-08-17 11:48:19 status half-configured libc-bin:amd64 2.31-0ubuntu9
2020-08-17 11:48:19 status installed libc-bin:amd64 2.31-0ubuntu9
[...@... ~]$ tail -f /var/log/dpkg.log
2020-08-17 11:48:17 status installed mc:amd64 3:4.8.24-2ubuntu1
2020-08-17 11:48:17 trigproc man-db:amd64 2.9.1-1 <none>
2020-08-17 11:48:17 status half-configured man-db:amd64 2.9.1-1
2020-08-17 11:48:18 status installed man-db:amd64 2.9.1-1
2020-08-17 11:48:18 trigproc mime-support:all 3.64ubuntu1 <none>
2020-08-17 11:48:18 status half-configured mime-support:all 3.64ubuntu1
2020-08-17 11:48:19 status installed mime-support:all 3.64ubuntu1
2020-08-17 11:48:19 trigproc libc-bin:amd64 2.31-0ubuntu9 <none>
2020-08-17 11:48:19 status half-configured libc-bin:amd64 2.31-0ubuntu9
2020-08-17 11:48:19 status installed libc-bin:amd64 2.31-0ubuntu9
```
## Управление сессией
### Выход из терминала
`exit` - закрывает соединение с терминалом
### Дополнительное приложение screen
[Смотри на этой странице вики](https://github.com/aleksei-khitev/knowledge_base/wiki/Screen)
## Информаци о системе, свободном месте и т.д.
### lshw
Команда `lshw` (с правами суперпользователя) выведет информация о системе, включая марку процессора, материнской платы, объемы ОЗУ и т.д.
```bash
[...@... ~]$ sudo lshw
[sudo] password for aleksei_khitev:
eprupetw039f
    description: Computer
    width: 64 bits
    capabilities: smp
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 31GiB
     *-cpu
          product: Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz
          vendor: Intel Corp.
          physical id: 1
          bus info: cpu@0
...
```
### Информация о свободном месте на различных томах
```bash
[...@... ~]$ df
Filesystem             1K-blocks       Used        Available Use% Mounted on
devtmpfs                32965208         72         32965136   1% /dev
tmpfs                   32975828          0         32975828   0% /dev/shm
/dev/xvda1               8123812    6828600          1194964  86% /
...
```
### Информация об использовании места в каталоге
```bash
[...@... ~]$ du -hs /var/log
133M    /var/log
```
⚠️ **GitHub.com Fallback** ⚠️