Last active
April 19, 2021 17:49
-
-
Save Farrukhraz/1141abb5cfbd4932a81478dea666cfbd to your computer and use it in GitHub Desktop.
bash commands
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. | |
ls -la /etc | |
ls -la /proc | |
ls -la /home | |
___________________________________________ | |
2. | |
cat - в основном служит для чтения файла и объяденения содержимого нескольких файлов в один. | |
cat /etc/adduser.conf > file1 | |
cat /etc/adduser.conf > file2 | |
cat file1 file2 > file_total | |
cat file_total | |
mv file_total file_final | |
___________________________________________ | |
3. | |
touch file1 | |
cat /etc/adduser.conf > file2 | |
echo 'any text' > file3 | |
mkdir tmp | |
mv file* ./tmp | |
rm -r ./* | |
___________________________________________ | |
4. | |
ls -ld .* | grep -v total | grep -v "\.$" | wc -l | |
___________________________________________ | |
5. | |
ls -p /etc | grep -v /$ | cat > std_okey 2> std_err | |
___________________________________________ | |
6. | |
pass | |
___________________________________________ | |
7. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Создать файл file1 и наполнить его произвольным содержимым. Скопировать его в file2. | |
Создать символическую ссылку file3 на file1. Создать жесткую ссылку file4 на file1. | |
Посмотреть, какие айноды у файлов. Удалить file1. Что стало с остальными созданными файлами? | |
Попробовать вывести их на экран. | |
ls -lah /etc > file1 | |
cp file1 file2 | |
ln -s file1 file3 | |
ln file1 file4 | |
У file1 и file4 одинаковые айноды. | |
rm file1 | |
file3 отображается в директории красным, но более не доступен для чтения. | |
file4 стал "оригиналом", вместо file1 | |
file2 с эти файлом нечего не изменилось | |
___________________________________________ | |
2. Дать созданным файлам другие, произвольные имена. Создать новую символическую ссылку. | |
Переместить ссылки в другую директорию. | |
rename 's/file/test/' file* | |
ln -s test2 test5 | |
mkdir tmp | |
mv test5 tmp/ # После перемещения ссылка сломаласть | |
___________________________________________ | |
3. Создать два произвольных файла. Первому присвоить права на чтение, запись для владельца | |
и группы, только на чтение для всех. Второму присвоить права на чтение, запись только для | |
владельца. Сделать это в численном и символьном виде. | |
touch file{1..2} | |
chmod 664 file1 | |
chmod 600 file2 | |
chmod u-rwx,g-rwx,o-rwx file1 file2 # заберем все права | |
chmod u+rw,g+rw,o+r file1 | |
chmod u+rw file2 | |
___________________________________________ | |
4. Создать пользователя, обладающего возможностью выполнять действия от имени суперпользователя. | |
sudo useradd -ou 0 -g 0 new_admin | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Домашка: | |
-rw-...... # this is file (start with "-") | |
ls -ld # show only dirs' names (-d). But not their content | |
ls -lad \.* # показать скрытые файлы | |
ls -lad \.* | grep -v ^total$ # вывести всё кроме total # -v "" (вывести всё что не содержится в "тут"); ковычки нужны только если это регулярок | |
ls -lad \.* | grep -v ^total$ | grep -v "\.$" # не выводить "." и ".." | |
___________________________________________________________________________________________________________________ | |
Lecture first part: | |
id user_login # show user info | |
uid # идентификатор пользователя | |
у процесса есть uid. Это uid пользователя, чей это процесс | |
Пользователи делятся на 2 группы | |
1) root | |
2) все остальные | |
id root # у "root" uid = 0 (пользователь root) | |
others: | |
uid < 1000 служебные программы | |
uid >= 1000 пользователи # у самого первого (главного простого) пользователя uid = 1000 | |
___________________________________________________________________________________________________________________ | |
У каждого файла есть свой владелец. Это тот кто создал этот файл. | |
3 типа прав: права на чтение/запись/исполнение | |
ls -l если ввести то: | |
переслушать 1:00 - 1:10 | |
drwxrwxrwx 1 farrukhraz farrukhraz 4096 Mar 22 19:24 media | |
права^ владелец^ группа^ | |
drwxrwxrwx (read/write/execute) | |
rwx... для владельца; ...rwx... для группы; ...rwx для всех остальных | |
Где храниться инфа о пользователях? | |
cat /etc/passwd # файл где храняться инфа о пользователях | |
cat /etc/group # файл где храняться инфа о группах пользователей | |
cat /etc/shadow # файл где храняться хэши | |
/etc/passwd uid = (user id) | |
каждый пользователь описывается одной строкой. data делится ":". user_name:password:uid:any_coment:/home/path/dir/: | |
cat /etc/group gid = (group id) | |
каждая группа описывается одной строкой. "group:password:gid" | |
Аутенфикация - проверка есть ли на сервере такой пользователь и его пароль, проходим | |
Авторизация - проверка есть ли у пользователя доступ до определенного файла | |
Хэш - это хэш функция. Хэш функция это функция без обратного преобразования. | |
!!!! Посмотреть что такое хэш/хэш-функция в linux. | |
______________________________ | |
Забрать/добавить права у "user/group/others" | |
chmod o-w file_name # у "others" забрать права "w" (записи) | |
chmod u+w file_name # "user"'у добавить права "w" (записи) | |
chmod u+rwx,g+rw,o-rwx ./file # Разом дать почти все права "root" и "user", а забрать все права у "others" | |
______________________________ | |
Побитовое присвоение прав: | |
111 - считается справа, 1-я справа = 1, 2-я справа = 2, 3-я справа = 4, следовательно 111 = 7 | |
-rw-r--r-- == 644; -rw-rw-r-- = 664 | |
-rwxrwxrwx ==> chmod 444 ==> -r--r--r-- | |
______________________________ | |
Hard links | |
ln целевой_файл файл_ссылка # hard link | |
ln -s целевой_файл файл_ссылка # soft link | |
Всё что мы видим при вызове ls -l, это ссылки в память, в которой она | |
Всё информация файла храниться в айнодах | |
ls -li ### 1195317 -rw-rw-r-- 1 user user 21 мар 23 21:17 1.py | |
^ inode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[command] --help # manual of [command] not as big as "man" | |
man [command] # manual of [command]; (not built in program) | |
ls -lah # list of files; -l list; -a show hidden files; -h human readable | |
cd folder # go some folder | |
cd .. # go to parent dir | |
cd ./program # run script | |
mkdir folder # create folder | |
touch file.txt # create file | |
echo 'smth' >> file.txt # add some text to file | |
mv file/folder # move/rename file/folder | |
cp file folder/new_file # create a file copy with different name | |
cp file folder/ # if file name in distination path is empty than file will be copied with the same name | |
cp -r folder new_folder # create a folder copy with different name | |
cat file # read file content. Content will be displayed in current window | |
less file # read file content. Content will be displayed in new window. To quit press "q". | |
more file # read file content. Content will be displayed in new window. "less" command is faster than this 'cause it doesn't load entire file. | |
rm file # remove file | |
rm -r folder # remove directory | |
rmdir folder # remove empty directory | |
head file # show first 10 lines of the file | |
head -3 file # show first 3 lines of the file | |
tail file # show last 10 lines of the file | |
tail -f file # show last 10 lines of the file and constantly update them | |
wc -l -w -c file # count -w wordc; -l lines; -c charecters in the given file | |
grep any_text /path/to/file # find 'any_text' in file in the given path | |
grep text /path/ | wc -l # count how many lines grep found | |
find |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment