Журнал лабораторных работ

Содержание

Журнал

Пятница (12/21/18)

/dev/pts/4
13:33:52
$cd .aws/

13:33:58
$ls -la
total 36
drwxr-xr-x  2 user user  4096 Dec 21 10:42 .
drwxr-xr-x 25 user user  4096 Dec 21 15:32 ..
-rw-------  1 user user    29 Dec 19 14:28 config
-rw-------  1 user user   116 Dec 19 14:28 credentials
-rw-r--r--  1 user user   127 Dec 21 10:33 cr.txt
-rw-r--r--  1 user user 13380 Dec 21 10:42 get-docker.sh
13:34:00
$more config
13:34:05
$more credentials
13:34:16
$more get-docker.sh
13:34:33
$cd ..

13:34:35
$ls -la
total 179316
drwxr-xr-x 25 user user      4096 Dec 21 15:32 .
drwxr-xr-x  4 root root      4096 Dec 16 14:01 ..
drwxr-xr-x  2 user user      4096 Dec 21 10:42 .aws
drwxr-xr-x  4 user user      4096 Dec 20 15:46 AWS
-rw-------  1 user user     12882 Dec 21 15:32 .bash_history
-rw-r--r--  1 user user       220 May 15  2017 .bash_logout
-rw-r--r--  1 user root        10 Dec 16 14:23 .bash_profile
-rw-r--r--  1 user user       666 Dec 19 14:41 .bashrc
drwx------ 11 user user      4096 Dec 21 14:53 .cache
...
-rw-r--r--  1 user user      4109 Dec 19 15:04 .saws.log
-rw-r--r--  1 user user       596 Dec 19 17:05 .sawsrc
-rw-r--r--  1 user user      2256 Dec 19 14:49 .saws.shortcuts
drwx------  2 user user      4096 Dec 19 11:33 .ssh
-rw-------  1 user user     12288 Dec 19 11:19 .tatyanaDNS.txt.swp
-rw-r--r--  1 user user      1796 Dec 20 11:48 teacher_script_1.txt
drwxr-xr-x  2 user user      4096 Dec 17 12:15 Templates
drwxr-xr-x  2 user user      4096 Dec 17 12:15 Videos
-rw-------  1 user user     14049 Dec 21 10:33 .viminfo
-rw-r--r--  1 user user       103 Dec 17 14:43 V.json
13:34:38
$cd .ssh/

13:34:41
$ls -la
total 32
drwx------  2 user user 4096 Dec 19 11:33 .
drwxr-xr-x 25 user user 4096 Dec 21 15:32 ..
-rw-r--r--  1 user user  168 Dec 19 11:33 config
-rw-------  1 user user 1766 Dec 19 10:45 id_rsa
-rw-r--r--  1 user user  389 Dec 19 10:45 id_rsa.pub
-rw-r--r--  1 user user 3330 Dec 20 12:17 known_hosts
-rw-r--r--  1 user user  389 Dec 19 11:01 m2_id_rsa.pub
-rw-------  1 user user 1692 Dec 18 12:49 user3.pem
13:34:42
$more config
прошло 14 минут
13:49:01
$cd AWS/

13:49:17
$mkdir docker

13:49:24
$cd docker/

13:49:26
$mkdir qrencode

13:49:45
$cd qrencode/

13:49:50
$vim Dockerfile
13:51:31
$vim Dockerfile
13:56:04
$ls -la
total 12
drwxr-xr-x 2 user user 4096 Dec 21 15:56 .
drwxr-xr-x 3 user user 4096 Dec 21 15:49 ..
-rw-r--r-- 1 user user  144 Dec 21 15:56 Dockerfile
13:56:19
$docker build
"docker build" requires exactly 1 argument.
See 'docker build --help'.
Usage:  docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
13:56:26
$vim Dockerfile
13:57:02
$vim Dockerfile
13:57:16
$docker build.
docker: 'build.' is not a docker command.
See 'docker --help'
13:57:32
$docker built.
docker: 'built.' is not a docker command.
See 'docker --help'
13:57:36
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM debian:8
8: Pulling from library/debian
4b105072aa89: Pull complete
Digest: sha256:14e15b63bf3c26dac4f6e782dbb4c9877fb88d7d5978d202cb64065b1e01a88b
Status: Downloaded newer image for debian:8
 ---> 39db55273026
Step 2/7 : RUN apt-get update
 ---> Running in 095bc50b398b
Get:1 http://security.debian.org jessie/updates InRelease [44.9 kB]
Ign http://deb.debian.org jessie InRelease
Get:2 http://deb.debian.org jessie-updates InRelease [145 kB]
Get:3 http://deb.debian.org jessie Release.gpg [2420 B]
Get:4 http://deb.debian.org jessie Release [148 kB]
Get:5 http://security.debian.org jessie/updates/main amd64 Packages [782 kB]
Get:6 http://deb.debian.org jessie-updates/main amd64 Packages [23.0 kB]
Get:7 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
^C
14:02:01
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM debian:8
 ---> 39db55273026
Step 2/7 : RUN apt-get update
 ---> Running in 4828f3e8b083
Ign http://deb.debian.org jessie InRelease
Get:1 http://deb.debian.org jessie-updates InRelease [145 kB]
Get:2 http://security.debian.org jessie/updates InRelease [44.9 kB]
Get:3 http://deb.debian.org jessie Release.gpg [2420 B]
Get:4 http://deb.debian.org jessie Release [148 kB]
...
Also creating executable in ve/bin/python
Installing setuptools, pip...done.
Running virtualenv with interpreter /usr/bin/python2
Removing intermediate container 4fc7530f8e48
 ---> 07d6cec1a65d
Step 7/7 : RUN ve/bin/pip install -r requirements.txt
 ---> Running in cc36c74e3ddb
Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
Storing debug log for failure in /root/.pip/pip.log
The command '/bin/sh -c ve/bin/pip install -r requirements.txt' returned a non-zero code: 1
/dev/pts/2
14:04:44
$cd AWS/
docker/  .git/    scripts/
14:04:44
$cd AWS/docker/qrencode/

14:05:02
$ls -la
total 12
drwxr-xr-x 2 user user 4096 Dec 21 15:57 .
drwxr-xr-x 3 user user 4096 Dec 21 15:49 ..
-rw-r--r-- 1 user user  213 Dec 21 15:57 Dockerfile
14:05:03
$more Dockerfile
14:05:05
$vi Dockerfile
/dev/pts/4
14:08:19
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM debian:8
 ---> 39db55273026
Step 2/6 : RUN apt-get update
 ---> Using cache
 ---> 25505e0c19f0
Step 3/6 : RUN apt-get install -y git-core python-virtualenv
 ---> Using cache
 ---> b9b1fd616825
Step 4/6 : RUN git clone https://github.com/chubin/qrenco.de
...
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2721, in parse_requirements
    "version spec")
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2697, in scan_list
    raise ValueError(msg, line, "at", line[p:])
ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'")
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-RT_1xn/gevent
Storing debug log for failure in /root/.pip/pip.log
The command '/bin/sh -c cd qrenco.de && ve/bin/pip install -r requirements.txt' returned a non-zero code: 1
14:11:07
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM debian:8
 ---> 39db55273026
Step 2/6 : RUN apt-get update
 ---> Using cache
 ---> 25505e0c19f0
Step 3/6 : RUN apt-get install -y git-core python-virtualenv
 ---> Using cache
 ---> b9b1fd616825
Step 4/6 : RUN git clone https://github.com/chubin/qrenco.de
...
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2721, in parse_requirements
    "version spec")
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2697, in scan_list
    raise ValueError(msg, line, "at", line[p:])
ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'")
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-Bi2MfY/gevent
Storing debug log for failure in /root/.pip/pip.log
The command '/bin/sh -c cd qrenco.de && ve/bin/pip install -r requirements.txt' returned a non-zero code: 1
14:12:02
$docker build .
Sending build context to Docker daemon  14.85kB
Step 1/6 : FROM debian:8
 ---> 39db55273026
Step 2/6 : RUN apt-get update
 ---> Using cache
 ---> 25505e0c19f0
Step 3/6 : RUN apt-get install -y git-core python-virtualenv
 ---> Using cache
 ---> b9b1fd616825
Step 4/6 : RUN git clone https://github.com/chubin/qrenco.de
...
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2721, in parse_requirements
    "version spec")
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/pkg_resources.py", line 2697, in scan_list
    raise ValueError(msg, line, "at", line[p:])
ValueError: ("Expected ',' or end-of-list in", "cffi >= 1.11.5 ; sys_platform == 'win32' and platform_python_implementation == 'CPython'", 'at', " ; sys_platform == 'win32' and platform_python_implementation == 'CPython'")
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-f8tZoU/gevent
Storing debug log for failure in /root/.pip/pip.log
The command '/bin/sh -c cd qrenco.de && ve/bin/pip install -r requirements.txt' returned a non-zero code: 1
14:14:02
$docker built .
docker: 'built' is not a docker command.
See 'docker --help'
/dev/pts/2
14:14:46
$vi Dockerfile
/dev/pts/4
14:14:56
$docker built .
docker: 'built' is not a docker command.
See 'docker --help'
14:15:05
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM debian:9
9: Pulling from library/debian
Digest: sha256:df6ebd5e9c87d0d7381360209f3a05c62981b5c2a3ec94228da4082ba07c4f05
Status: Downloaded newer image for debian:9
 ---> 4879790bd60d
Step 2/6 : RUN apt-get update
 ---> Running in 81a861cbd5b9
Get:1 http://security-cdn.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Ign:2 http://cdn-fastly.deb.debian.org/debian stretch InRelease
...
  Downloading https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl (154kB)
Collecting six>=1.5 (from python-dateutil->-r requirements.txt (line 4))
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask->-r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/bc/3a/6bfd7b4b202fa33bdda8e4e3d3acc719f381fd730f9a0e7c5f34e845bd4d/MarkupSafe-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl
Installing collected packages: greenlet, gevent, click, Werkzeug, itsdangerous, MarkupSafe, Jinja2, flask, urllib3, idna, chardet, certifi, requests, six, python-dateutil
Successfully installed Jinja2-2.10 MarkupSafe-1.1.0 Werkzeug-0.14.1 certifi-2018.11.29 chardet-3.0.4 click-7.0 flask-1.0.2 gevent-1.3.7 greenlet-0.4.15 idna-2.8 itsdangerous-1.1.0 python-dateutil-2.7.5 requests-2.21.0 six-1.12.0 urllib3-1.24.1
Removing intermediate container b07fb0e2fd89
 ---> 2740a2897715
Successfully built 2740a2897715
14:19:36
$vi Dockerfile
14:21:06
$docker build .
Sending build context to Docker daemon  2.048kB
Step 1/8 : FROM debian:9
 ---> 4879790bd60d
Step 2/8 : RUN apt-get update
 ---> Using cache
 ---> daf1a37e0566
Step 3/8 : RUN apt-get install -y git-core python-virtualenv qrencode
 ---> Running in 528ade974968
Reading package lists...
Building dependency tree...
...
 ---> ab31ab9d6b69
Step 7/8 : EXPOSE 8003
 ---> Running in 80b2ee3d5b8c
Removing intermediate container 80b2ee3d5b8c
 ---> 14dd1c4fa4ba
Step 8/8 : CMD qrenco.de/ve/bin/python qrencode.de/bin/srv.py
 ---> Running in 249bf09a184f
Removing intermediate container 249bf09a184f
 ---> ae04bd379156
Successfully built ae04bd379156
14:27:52
$docker im
image   images  import
14:27:52
$docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
<none>              <none>              ae04bd379156        About a minute ago   337MB
<none>              <none>              2740a2897715        9 minutes ago        337MB
<none>              <none>              431a808bf814        17 minutes ago       291MB
<none>              <none>              07d6cec1a65d        20 minutes ago       291MB
nginx               latest              568c4670fa80        3 weeks ago          109MB
ubuntu              latest              93fd78260bd1        4 weeks ago          86.2MB
debian              9                   4879790bd60d        5 weeks ago          101MB
debian              latest              4879790bd60d        5 weeks ago          101MB
debian              8                   39db55273026        5 weeks ago          127MB
busybox             latest              59788edf1f3e        2 months ago         1.15MB
/dev/pts/2
14:28:41
$~
curl: (7) Failed to connect to localhost port 80: Connection refused
/dev/pts/4
14:28:52
$docker run --rm -it ae04bd379156 bash
root@9fe8480a843b:/# uname -a
Linux 9fe8480a843b 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
root@9fe8480a843b:/# exit
exit
14:33:40
$docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tagnema             latest              e6b28e7a15fd        3 minutes ago       337MB
<none>              <none>              ae04bd379156        5 minutes ago       337MB
<none>              <none>              2740a2897715        14 minutes ago      337MB
<none>              <none>              431a808bf814        22 minutes ago      291MB
<none>              <none>              07d6cec1a65d        25 minutes ago      291MB
nginx               latest              568c4670fa80        3 weeks ago         109MB
ubuntu              latest              93fd78260bd1        4 weeks ago         86.2MB
debian              9                   4879790bd60d        5 weeks ago         101MB
debian              latest              4879790bd60d        5 weeks ago         101MB
debian              8                   39db55273026        5 weeks ago         127MB
busybox             latest              59788edf1f3e        2 months ago        1.15MB
14:33:48
$docker run --rm -it tagnema
^CKeyboardInterrupt
2018-12-21T13:35:29Z
Traceback (most recent call last):
  File "bin/srv.py", line 168, in <module>
    server.serve_forever()
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/gevent/baseserver.py", line 364, in serve_forever
    self._stop_event.wait()
  File "src/gevent/event.py", line 240, in gevent._event.Event.wait
  File "src/gevent/event.py", line 140, in gevent._event._AbstractLinkable._wait
  File "src/gevent/event.py", line 117, in gevent._event._AbstractLinkable._wait_core
  File "src/gevent/event.py", line 119, in gevent._event._AbstractLinkable._wait_core
  File "src/gevent/_greenlet_primitives.py", line 59, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 59, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 63, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/__greenlet_primitives.pxd", line 35, in gevent.__greenlet_primitives._greenlet_switch
KeyboardInterrupt
/dev/pts/2
14:35:13
$curl http://localhost:8003/123
curl: (7) Failed to connect to localhost port 8003: Connection refused
14:35:20
$curl http://localhost:8003/123
█████████████████████████████
█████████████████████████████
████ ▄▄▄▄▄ █▀█ █ █ ▄▄▄▄▄ ████
████ █   █ █▄█▄▄▀█ █   █ ████
████ █▄▄▄█ █   ▄▄█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █▄█▄█▄▄▄▄▄▄▄████
████  ▀▄█▀▄▄▀▀  ▄▀▄ ▄█▄▄▀████
████▄█▀▄ █▄ ▄  ▄▀▀   █▄▄█████
█████▄▄██▄▄▄ ██▄█  ▄▀▀▄▄▄████
████ ▄▄▄▄▄ █▄██▄▄█ █▄▀▄ ▄████
████ █   █ █▀ ▄█▄  ▀██   ████
████ █▄▄▄█ █▀▄  ▀▄▄ █▀█▀▄████
████▄▄▄▄▄▄▄█▄████▄█▄█▄▄██████
█████████████████████████████
█████████████████████████████
/dev/pts/4
14:35:29
$docker run --rm -it -p 8003:8003 tagnema
::ffff:172.17.0.1 - - [2018-12-21 13:35:54] "GET /123 HTTP/1.1" 200 1320 0.008166
::ffff:172.17.0.1 - - [2018-12-21 13:35:59] "GET /12234234 HTTP/1.1" 200 1312 0.008944
^CKeyboardInterrupt
2018-12-21T13:38:10Z
Traceback (most recent call last):
  File "bin/srv.py", line 168, in <module>
    server.serve_forever()
  File "/qrenco.de/ve/local/lib/python2.7/site-packages/gevent/baseserver.py", line 364, in serve_forever
    self._stop_event.wait()
  File "src/gevent/event.py", line 240, in gevent._event.Event.wait
  File "src/gevent/event.py", line 140, in gevent._event._AbstractLinkable._wait
  File "src/gevent/event.py", line 117, in gevent._event._AbstractLinkable._wait_core
  File "src/gevent/event.py", line 119, in gevent._event._AbstractLinkable._wait_core
  File "src/gevent/_greenlet_primitives.py", line 59, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 59, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/_greenlet_primitives.py", line 63, in gevent.__greenlet_primitives.SwitchOutGreenletWithLoop.switch
  File "src/gevent/__greenlet_primitives.pxd", line 35, in gevent.__greenlet_primitives._greenlet_switch
KeyboardInterrupt
/dev/pts/2
14:35:54
$curl http://localhost:8003/12234234
█████████████████████████████
█████████████████████████████
████ ▄▄▄▄▄ █ ▄ ▄ █ ▄▄▄▄▄ ████
████ █   █ █ ▀▀▀██ █   █ ████
████ █▄▄▄█ █▀▀█▀▄█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ ▀ █▄▄▄▄▄▄▄████
████▄ █▀▄ ▄▀█▄▀ ▀██▄█   ▄████
████   ▀█ ▄ █▀█▄█▀   ██▀ ████
██████▄▄▄█▄▄ █ █   ██▄▄▀ ████
████ ▄▄▄▄▄ █▀█▀▀ ▄█▄ ▀██▀████
████ █   █ █▄▀▄ ▀█▄▄█▄   ████
████ █▄▄▄█ █▀▄▀▄█▀  ▀ ▄▀█████
████▄▄▄▄▄▄▄█▄███▄▄▄███▄▄▄████
█████████████████████████████
█████████████████████████████
14:35:59
$curl http://localhost:8003/12234234
curl: (7) Failed to connect to localhost port 8003: Connection refused
/dev/pts/4
14:38:12
$cd ..

14:39:45
$cd ..

14:39:45
$cd ..

14:39:47
$git status
fatal: Not a git repository (or any of the parent directories): .git
14:39:57
$cd AWS/

14:40:00
$git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        docker/
nothing added to commit but untracked files present (use "git add" to track)
14:40:05
$git add -p
No changes.
14:40:13
$git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        docker/
nothing added to commit but untracked files present (use "git add" to track)
14:40:16
$git add
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?
14:40:19
$git add docker/

14:40:23
$git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
        new file:   docker/qrencode/Dockerfile
14:40:25
$git commit -m 'new Dockerfile'
[master 40633f0] new Dockerfile
 Committer: ValeryBarai <user@m3.class.sl>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
    git config --global user.name "Your Name"
    git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
    git commit --amend --reset-author
 1 file changed, 11 insertions(+)
 create mode 100644 docker/qrencode/Dockerfile
14:41:02
$git config --global user.name "ValeryBarai"

14:41:16
$git push
Username for 'https://github.com': ValeryBarai
Password for 'https://ValeryBarai@github.com':
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 581 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/ValeryBarai/AWS.git
   0423fce..40633f0  master -> master
14:41:33
$cd ..

прошло 14 минут
14:56:15
$vi email.txt

Статистика

Время первой команды журнала13:33:52 2018-12-21
Время последней команды журнала14:56:15 2018-12-21
Количество командных строк в журнале66
Процент команд с ненулевым кодом завершения, %27.27
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 1.37
Количество командных строк в единицу времени, команда/мин 0.80
Частота использования команд
docker18|===========================| 27.27%
cd13|===================| 19.70%
git10|===============| 15.15%
more5|=======| 7.58%
ls5|=======| 7.58%
vi4|======| 6.06%
curl4|======| 6.06%
vim4|======| 6.06%
mkdir2|===| 3.03%
~1|=| 1.52%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ 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
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

  9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

  11. Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

  13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

  15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$