/l3/users/16-07-2018/NT-Ladm/debian3.net.nt/user :1 :2 :3 :4 :5 |
|
$test $EUID -ne 0 -a -w /etc/shadow && echo prive
|
$test $EUID -ne 0 -a -w /etc/shadow && "echo privet"
|
$?
1 |
$test $EUID -ne 0 -a -r /etc/shadow && echo 'Warning : File /etc/shadow is accessible for reading!'
|
$?
1 |
$test $EUID -ne 0 -a -r /etc/shadow && echo 'Warning : File /etc/shadow is accessible for reading!'
|
$test $EUID -ne 0 -a -r /etc/shadow || echo 'Warning : File /etc/shadow is accessible for reading!'
Warning : File /etc/shadow is accessible for reading! |
$echo $EUID
1000 |
$ls -l /etc/shadow
-rw-r----- 1 root shadow 1029 Июл 16 10:44 /etc/shadow |
$echo "What is your favorite OS?" ; read FAV_OS ; [ "$FAV_OS" == "BSD" ] && \ echo "Good choise!"
l3script: !": event not found |
$echo "What is your favorite OS?" ; read FAV_OS ; [ "$FAV_OS" == "BSD" ] && \ echo 'Good choise!'
What is your favorite OS? |
$test -w /etc/pa
pam.conf pam.d/ passwd passwd- |
$test -w /etc/passwd || echo " You have not power here!"
l3script: !": event not found |
$a=0
|
$while [ $a -lt 10 ]
> do > a=$((a+1)) > echo $a > done 1 2 3 4 5 6 7 8 9 10 |
$for file in /etc/*
> do > [ -r $file ] || echo $file > done /etc/group- /etc/gshadow /etc/gshadow- /etc/passwd- /etc/shadow /etc/shadow- /etc/sudoers |
$echo 'About what command do you want to get information?' ; \
> select command in man touch mount make exit clear > do > whatis $command > break > done About what command do you want to get information? 1) man 2) touch 3) mount 4) make 5) exit 6) clear #? make whatis что? |
$echo 'About what command do you want to get information?' ; select command in man touch mount make exit clear; do whatis $command; break; done
About what command do you want to get information? 1) man 2) touch 3) mount 4) make 5) exit 6) clear #? clear whatis что? |
$echo "By what program you can get full documentaion about programm?"
By what program you can get full documentaion about programm? |
$vi about.sh
--- /dev/null 2018-07-16 08:39:23.339999990 +0300 +++ about.sh 2018-07-18 12:11:24.656843772 +0300 @@ -0,0 +1,18 @@ +#! /bin/bash + +echo "What is command is providing all FAQ about the programm?" + +read answer + +case $answer in +"man" | "info" ) + echo 'You are right. That it.' + ;; + +"whatis" | "appropos" ) + echo 'Not exactly true. You can get only short information.' + ;; + +*) echo 'You are wrong' + ;; +esac |
$chmod u+x about.sh
|
$ls -l about.sh
-rwxr--r-- 1 user user 286 Июл 18 12:11 about.sh |
$./about.sh
What is command is providing all FAQ about the programm? man You are right. That it. |
$./about.sh
What is command is providing all FAQ about the programm? hgd You are wrong |
$./about.sh
What is command is providing all FAQ about the programm? whatis Not exactly true. You can get only short information. |
$vi about.sh
|
$vi path.sh
--- /dev/null 2018-07-16 08:39:23.339999990 +0300 +++ path.sh 2018-07-18 12:24:57.224808311 +0300 @@ -0,0 +1,16 @@ +#1 /bin/bash + +echo 'Full way to the program which need to run :' +read PROGRAM \; +if [ -x "$PROGRAM" ] +then +"$PROGRAM" +else + echo -n "Can't run $PROGRAM." + if [ -e "$PROGRAM" ] + then + echo "This file is not executable" + else + echo "No such file" + fi +fi |
$ 16
1 #1 /bin/bash 2 3 echo 'Full way to the program which need to run :' 4 read PROGRAM \; 5 if [ -x "$PROGRAM" ] 6 then 7 "$PROGRAM" 8 else 9 echo -n "Can't run $PROGRAM." 10 if [ -e "$PROGRAM" ] 11 then 12 echo "This file is not executable" 13 else 14 echo "No such file" 15 fi 16 fi "path.sh" 16L, 254C |
$~
|
$./path.sh
Full way to the program which need to run : f ./path.sh: line 4: read: `;': неправильный идентификатор Can't run f.No such file |
$vi path.sh
|
$~
Full way to the program which need to run : bash ./path.sh: line 4: read: `;': неправильный идентификатор Can't run bash.No such file |
$./path.sh
Full way to the program which need to run : |
$which bash
/bin/bash |
$./path.sh
Full way to the program which need to run : /bin/bash ./path.sh: line 4: read: `;': неправильный идентификатор user@debian3:~$ exit exit |
$vi path.sh
--- /tmp/l3-saved-12088.2996.29249 2018-07-18 12:28:46.652848716 +0300 +++ path.sh 2018-07-18 12:29:10.060852831 +0300 @@ -1,7 +1,7 @@ #1 /bin/bash echo 'Full way to the program which need to run :' -read PROGRAM \; +read PROGRAM if [ -x "$PROGRAM" ] then "$PROGRAM" |
$./path.sh
Full way to the program which need to run : bgr Can't run bgr.No such file |
$./path.sh
Full way to the program which need to run : vi Can't run vi.No such file |
$wich wim
l3script: wich: команда не найдена |
$wich vim
l3script: wich: команда не найдена |
$which vim
/usr/bin/vim |
$./path.sh
1 |
$~
about.sh errlog FREEBSD.JPG LPI 2 NEWFILE path.sh soft TOUCHLIST BACKUP ERRLOG GRANATA.JPG MAN_SMB_CONF no_file_with_this_name PRESS_ANY_KEY_TO_CONTINUE.JPG SORTED UNSORTED BIGFILE errors LIGHT_ALLOY_4.4.784_RC2_BY_FAFNIR.EXE MATRIX.JPG OGO.JPG PROJ SORTED_PASSWD BIN FILE LPI 1 NAMES PAMYATKA.PDF SH TEXT |
$./path.sh
Full way to the program which need to run : /home/user/sorted Can't run /home/user/sorted.No such file |
$./path.sh
Full way to the program which need to run : /home/user/SORTED Can't run /home/user/SORTED.This file is not executable |
$touch func.sh | chmod u+x func.sh | vi func.sh
|
$~
1 "func.shlsb" [Новый файл] |
$~
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$l3script: [user@debian3:~]$: команда не найдена
|
$vi func.sh
--- /tmp/l3-saved-14565.22594.2239 2018-07-18 12:35:32.548850200 +0300 +++ func.sh 2018-07-18 12:40:38.184853587 +0300 @@ -0,0 +1,16 @@ +#! /bin/bash + +func () { + if [ -z "$1" ] + then + echo "No parameters passed to function." + return 0 + else + echo "Param #1 is $1." + fi + if [ "$2" ] + then + echo "Parameter #2 is $2." + fi +} + |
$./func.sh
|
$./func.sh first
|
$vi func.sh
|
$~
#! /bin/bash func () { if [ -z "$1" ] then echo "No parameters passed to function." return 0 else echo "Param #1 is $1." fi if [ "$2" ] then echo "Parameter #2 is $2." fi } |
$func () {
> if [ -z "$1" ] > then > echo "No parameters passed to function." > return 0 > else > echo "Param #1 is $1." > fi > if [ "$2" ] > then > echo "Parameter #2 is $2." > fi > } |
$func () {
> if [ -z "$1" ] > > then > > echo "No parameters passed to function." > > return 0 > > else > > echo "Param #1 is $1." > > fi > > if [ "$2" ] > > then > > echo "Parameter #2 is $2." > > fi > > } > > > ^C |
$./func.sh first
No parameters passed to function. Param #1 is one. Param #1 is one. Parameter #2 is two. |
$func () {
> if [ -z "$1" ] > then > echo "No parameters passed to function." > return 0 > else > echo "Param #1 is $1." > fi > if [ "$2" ] > then > echo "Parameter #2 is $2." > fi > } |
$./func.sh first
./func.sh |
$func
No parameters passed to function. |
$func first
Param #1 is first. |
$func two
Param #1 is two. |
$func two echo "Parameter #2 is $2."
Param #1 is two. Parameter #2 is echo. echo "Parameter #2 is $2." > > fi > > } |
$> > fi
l3script: syntax error near unexpected token `>' |
$> > }
l3script: syntax error near unexpected token `>' |
$echo "Parameter #2 is $2."
Parameter #2 is . |
$> > fi
l3script: syntax error near unexpected token `>' |
$> > }
l3script: syntax error near unexpected token `>' |
$logname
logname: регистрационное имя отсутствует |
$ls
about.sh errlog FREEBSD.JPG LPI 1 NAMES PAMYATKA.PDF SH TEXT BACKUP ERRLOG func.sh LPI 2 NEWFILE path.sh soft TOUCHLIST BIGFILE errors GRANATA.JPG MAN_SMB_CONF no_file_with_this_name PRESS_ANY_KEY_TO_CONTINUE.JPG SORTED UNSORTED BIN FILE LIGHT_ALLOY_4.4.784_RC2_BY_FAFNIR.EXE MATRIX.JPG OGO.JPG PROJ SORTED_PASSWD |
$ls -l
итого 3020 -rwxr--r-- 1 user user 286 Июл 18 12:11 about.sh drwxr-xr-x 3 user user 4096 Июл 16 14:32 BACKUP -rwxr-xr-x 1 user user 7994 Окт 9 2014 BIGFILE drwxr-xr-x 2 user user 4096 Июл 16 14:29 BIN -rw-r--r-- 1 user user 23790 Июл 17 16:40 errlog -rw-r--r-- 1 user user 119 Июл 17 12:41 ERRLOG -rw-r--r-- 1 user user 23436 Июл 17 16:36 errors -rw-r--r-- 1 user user 19 Июл 17 12:50 FILE -rwxr-xr-x 1 user user 232966 Окт 9 2014 FREEBSD.JPG ... -rwxr--r-- 1 user user 251 Июл 18 12:29 path.sh -rwxr-xr-x 1 user user 23048 Окт 9 2014 PRESS_ANY_KEY_TO_CONTINUE.JPG drwxr-xr-x 4 user user 4096 Июл 17 12:31 PROJ drwxr-xr-x 2 user user 4096 Окт 9 2014 SH drwxr-xr-x 2 user user 4096 Июл 17 16:52 soft -rw-r--r-- 1 user user 51 Июл 17 12:47 SORTED -rw-r--r-- 1 user user 986 Июл 17 13:38 SORTED_PASSWD drwxr-xr-x 2 user user 4096 Июл 17 12:31 TEXT -rwxr-xr-x 1 user user 75 Окт 9 2014 TOUCHLIST -rw-r--r-- 1 user user 51 Июл 17 12:47 UNSORTED |
$cd BACKUP/
|
$LS
l3script: LS: команда не найдена |
$ls
x-backup |
$cd x-backup/
|
$ls
x x-project y z |
$cd x-project/
|
$ls
x y z |
$chmod u=rx,g=,o= x
|
$ls -l
итого 0 -r-x------ 1 user user 0 Июл 16 14:31 x -rwxr-xr-x 1 user user 0 Июл 16 14:31 y -rwxr-xr-x 1 user user 0 Июл 16 14:31 z |
$chmod a=rx file2
chmod: невозможно получить доступ к «file2»: Нет такого файла или каталога |
$chmod a=rx y
|
$ls -l
итого 0 -r-x------ 1 user user 0 Июл 16 14:31 x -r-xr-xr-x 1 user user 0 Июл 16 14:31 y -rwxr-xr-x 1 user user 0 Июл 16 14:31 z |
$cmhod 600 z
l3script: cmhod: команда не найдена |
$chmod 600 z
|
$ls -l
итого 0 -r-x------ 1 user user 0 Июл 16 14:31 x -r-xr-xr-x 1 user user 0 Июл 16 14:31 y -rw------- 1 user user 0 Июл 16 14:31 z |
$chmod 777 x
|
$chmod 277 x
|
Время первой команды журнала | 10:33:32 2018- 7-18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Время последней команды журнала | 08:30:27 2018- 7-19 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в журнале | 101 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент команд с ненулевым кодом завершения, % | 16.83 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Процент синтаксически неверно набранных команд, % | 15.84 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Суммарное время работы с терминалом *, час | 1.42 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Количество командных строк в единицу времени, команда/мин | 1.18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Частота использования команд |
|
В журнал автоматически попадают все команды, данные в любом терминале системы.
Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.
Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
$ l s-l bash: l: command not found |
Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
$ test 5 -lt 4 |
Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
$ find / -name abc find: /home/devi-orig/.gnome2: Keine Berechtigung find: /home/devi-orig/.gnome2_private: Keine Berechtigung find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung find: /home/devi-orig/.metacity: Keine Berechtigung find: /home/devi-orig/.inkscape: Keine Berechtigung ^C |
Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
# id uid=0(root) gid=0(root) Gruppen=0(root) |
Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
$ vi ~/.bashrc
|
Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
$ patch ~/.bashrc |
Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.
Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.
Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.
Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора
Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.
Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.
Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:
$ whoami
user
$ #^ Интересно, кто я?в журнале это будет выглядеть так:
$ whoami
user
Интересно, кто я? |
Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:
$ whoami
user
$ cat > /dev/null #^ Интересно, кто я?
Программа whoami выводит имя пользователя, под которым мы зарегистрировались в системе. - Она не может ответить на вопрос о нашем назначении в этом мире.В журнале это будет выглядеть так:
$ whoami user
|
Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=
1 2 3 4Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.
LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008