- •II. First steps on the command line
- •5. Man pages
- •6. Working with directories (работа с папками)
- •7.Working with files
- •8. Working with file contents
- •9. The Linux file tree
- •III. Shell expansion
- •10. Commands and arguments
- •11. Control operators
- •12. Variables
- •13. Shell history
- •14. File globbing
- •IV. Pipes and commands
- •Глава 16. Фильтры.
- •16.3 Grep
- •16.7. Sort
- •16.8. Uniq
- •16.9. Comm
- •16.12. Примеры пайпов
- •Глава 17. Основные инструменты Unix
- •17.1. Find
- •17.2. Размещение
- •17.3. Date
- •17.5. Sleep
- •17.6. Time
- •17.7. Gzip - gunzip
- •17.8. Zcat - zmore
- •18.3. Замена и удаление символов (r X X)
- •18.4. Отменить и повторить (u .)
- •18.5. Вырезать, копировать и вставить строчки (dd yy p p)
- •18.6. Вырезать, копировать и вставить строчки (3dd 2yy)
- •18.8. Объединения двух и более линий (j)
- •18.9. Слова (w b)
- •18.10. Сохранить (или нет) и выход (:w :q :q! )
- •18.11. Поиск (/ ?)
- •18.13. Чтение файлов (:r :r !cmd)
- •19.1. Предпосылки
- •19.2. Hello World
- •19.4. Комментарии
- •20.2. Если, затем, иначе (if then else)
- •20.3. If then elif
- •20.4. For loop
- •20.5. While loop
- •21.2. Shift through parameters.
- •21.3. Runtime input.
- •21.3. Sourcing a config file.
- •21.5. Get script options with getopts.
- •21.6. Get shell options with shopt.
- •Глава 22 More scripting.
- •22.1. Eval.
- •22.4. Case.
- •22.5. Shell functions.
- •Раздел VII. Local user management. Глава 23. Users.
- •23.1. Identify yourself.
- •23.2. Users.
- •23.3. Passwords.
- •23.4 Home directories
- •23.5 User shell
- •23.6. Switcj users with su
- •23.7 Run a program as another user
- •23.10 Shell environment
- •Глава 24. Groups
- •24.1 About groups
- •24.2 Groupadd
- •24.3 /Etc/group
- •24.4 Usermod
- •24.5 Groupmod
- •24.6 Groupdel
- •24.7 Groups
- •24.8 Gpasswd
- •24.9 Vigr
22.5. Shell functions.
Shellфункции(function) могут быть использованы для логической группировки команд.
kahlan@solexp11$ cat funcs.ksh
#!/bin/ksh
function greetings {
echo Hello World!
echo and hello to $USER to!
}
echo We will now call a function
greetings
echo The end
Вот пример вывода этого скрипта с function.
kahlan@solexp11$ ./funcs.ksh
We will now call a function
Hello World!
and hello to kahlan to!
The end
Shell функция также может получать параметры.
kahlan@solexp11$ cat addfunc.ksh
#!/bin/ksh
function plus {
let result="$1 + $2"
echo $1 + $2 = $result
}
plus 3 10
plus 20 13
plus 20 22
Данный скрипт производит следующий вывод.
kahlan@solexp11$ ./addfunc.ksh
3 + 10 = 13
20 + 13 = 33
20 + 22 = 42
Раздел VII. Local user management. Глава 23. Users.
23.1. Identify yourself.
Whoami
Команда whoami сообщает ваше имя пользователя(username).
[root@RHEL5 ~]# whoami
root
[root@RHEL5 ~]# su - paul
[paul@RHEL5 ~]$ whoami
Paul
Who
Команда who показывает информацию о том, у кого выполнен вход(loggedin) в систему.
[paul@RHEL5 ~]$ who
root tty1 2008-06-24 13:24
sandra pts/0 2008-06-24 14:05 (192.168.1.34)
paul pts/1 2008-06-24 16:23 (192.168.1.37)
Who am i
В отличие от who,who am I показывает только строку, отвечающую за текущую сессию.
[paul@RHEL5 ~]$ who am i
paul pts/1 2008-06-24 16:23 (192.168.1.34)
W
Команда w показывает, у кого выполнен вход в систему, и чем они заняты.
$ w
05:13:36 up 3 min, 4 users, load average: 0.48, 0.72, 0.33
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 05:11 2.00s 0.32s 0.27s find / -name shad
inge pts/0 192.168.1.33 05:12 0.00s 0.02s 0.02s -ksh
paul pts/2 192.168.1.34 05:13 25.00s 0.07s 0.04s top
Id
Команда id покажет вам ваш идентификатор(id) пользователя,idосновной группы(primarygroup) и список групп, к которым вы принадлежите.
root@laika:~# id
uid=0(root) gid=0(root) groups=0(root)
root@laika:~# su - brel
brel@laika:~$ id
uid=1001(brel) gid=1001(brel) groups=1001(brel),1008(chanson),11578(wolf)
23.2. Users.
user management
Управление пользователями(usermanagement) на любыхUnixможет быть осуществлено 3 способами. Вы можете использоватьграфическиеинструменты, предоставленные вашим дистрибутивом. Данный способ рекомендован для пользователей-новичковLinux, пользующихся домашней системой, т.к. вы не столкнетесь с проблемами.
Другой вариант – использовать инструменты командной строки(command line tools) такие какuseradd,usermod,gpasswd,passwdи другие. Серверные администраторы используют эти инструменты, т.к. они очень похожи во многих различных дистрибутивах. Эта глава будет сконцентрирована именно на инструментах командной строки.
Третий и ,скорее, экстремистский способ – это редактирование файлов настройки (локальной конфигурации) (edit the local configuration files) напрямую, используяvi(илиvipw/vigr). Не пытайтесь это сделать на производственных системах, если вы новичок.
/etc/passwd
Локальная база данных пользователей на Linux(и большинствеUnix) это/etc/passwd
[root@RHEL5 ~]# tail /etc/passwd
inge:x:518:524:art dealer:/home/inge:/bin/ksh
ann:x:519:525:flute player:/home/ann:/bin/bash
frederik:x:520:526:rubius poet:/home/frederik:/bin/bash
steven:x:521:527:roman emperor:/home/steven:/bin/bash
pascale:x:522:528:artist:/home/pascale:/bin/ksh
geert:x:524:530:kernel developer:/home/geert:/bin/bash
wim:x:525:531:master damuti:/home/wim:/bin/bash
sandra:x:526:532:radish stresser:/home/sandra:/bin/bash
annelies:x:527:533:sword fighter:/home/annelies:/bin/bash
laura:x:528:534:art dealer:/home/laura:/bin/ksh
Как вы можете заметить, этот файл содержит 7 столбцов, разделенных двоеточие. Они содержат имя пользователя, x,idпользователя,idосновной группы, описание, название домашней директории, иlogin shell.
Root
Root пользователь, также называющийсяsuperuser, является самым могущественным аккаунтом на вашейLinuxсистеме. Этот пользователь может делать почти всё, включая создание других пользователей.Rootпользователь всегда имеетuerid0 (независимо от имени аккаунта).
[root@RHEL5 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
Useradd
Вы можете добавлять пользователей с помощью команду useradd. Пример ниже показывает, как добавить пользователяyanina(последний параметр) , создать домашнюю директорию (-m), задать её имя (-d) и создать описание (-с).
[root@RHEL5 ~]# useradd -m -d /home/yanina -c "yanina wickmayer" yanina
[root@RHEL5 ~]# tail -1 /etc/passwd
yanina:x:529:529:yanina wickmayer:/home/yanina:/bin/bash
Пользователь, названный yanina, получилuserid529 иprimary group id529.
Default/useradd
Как RedHatEnterpriseLinux, так иDebian/Ubuntuимеет файл с названиемetc/default/useradd, который содержит несколько стандартных опций пользователя. Кроме использованияcatдля отображения этого файла, вы также можете использоватьuseradd –D.
[root@RHEL4 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
Userdel
Вы можете удалить пользователя yaninaс помощьюuserdel. Опция –rтакже удалит домашнюю дерикторию.
[root@RHEL5 ~]# userdel -r yanina
Usermod
Вы можете менять свойства пользователя с помощью команды usermod.В данноом примереusermod используется, чтобы сменить описание пользователяharry.
[root@RHEL4 ~]# tail -1 /etc/passwd
harry:x:516:520:harry potter:/home/harry:/bin/bash
[root@RHEL4 ~]# usermod -c 'wizard' harry
[root@RHEL4 ~]# tail -1 /etc/passwd
harry:x:516:520:wizard:/home/harry:/bin/bash