Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
elearning:workbooks:rhel:6:utilisateur:l105 [2020/01/30 03:28] – external edit 127.0.0.1 | elearning:workbooks:rhel:6:utilisateur:l105 [2023/07/27 13:56] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Dernière mise-à-jour | + | Version |
- | ======Command Line Interface====== | + | Updated : ~~LASTMOD~~ |
+ | |||
+ | ====== | ||
+ | |||
+ | =====Contents===== | ||
+ | |||
+ | * **LCE405 - Command Line Interface** | ||
+ | * Contents | ||
+ | * The Shell | ||
+ | * /bin/bash | ||
+ | * Internal And External Commands | ||
+ | * Aliases | ||
+ | * The Prompt | ||
+ | * The history Command | ||
+ | * The TAB key | ||
+ | * Metacharacters | ||
+ | * Protecting Metacharacters | ||
+ | * Exit Status | ||
+ | * Redirections | ||
+ | * Pipes | ||
+ | * Command Substitution | ||
+ | * Conditional Command Execution | ||
+ | * Environment Variables | ||
+ | * Principal Variables | ||
+ | * Internationalisation and Localisation | ||
+ | * Special Variables | ||
+ | * The env Command | ||
+ | * Bash Shell Options | ||
+ | * noclobber | ||
+ | * noglob | ||
+ | * nounset | ||
+ | * Basic Shell Scripting | ||
+ | * Execution | ||
+ | * The read command | ||
+ | * The test Command | ||
+ | * The %%[[ expression ]]%% Command | ||
+ | * Shell Operators | ||
+ | * The expr Command | ||
+ | * The let Command | ||
+ | * Control Structures | ||
+ | * Loops | ||
+ | * Start-up Scripts | ||
+ | * LAB #1 - Start-up Scripts | ||
=====The Shell===== | =====The Shell===== | ||
Ligne 20: | Ligne 62: | ||
| zsh | Z Shell | 1990 | Paul Falstad | zsh | Zsh is an extended Bourne shell with a large number of improvements, | | zsh | Z Shell | 1990 | Paul Falstad | zsh | Zsh is an extended Bourne shell with a large number of improvements, | ||
- | In RHEL/ | + | In RHEL/ |
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | lrwxrwxrwx. 1 root root 4 30 sept. 06:01 /bin/sh -> bash | + | lrwxrwxrwx. 1 root root 4 Jul 21 2020 /bin/sh -> bash |
</ | </ | ||
Ligne 49: | Ligne 91: | ||
The /bin/bash shell comes with a set of built-in or // | The /bin/bash shell comes with a set of built-in or // | ||
- | |||
- | * /bin, | ||
- | * /sbin, | ||
- | * /usr/bin, | ||
- | * /usr/sbin. | ||
- | |||
- | To check if a command is internal to the shell or external, use the **type** command: | ||
< | < | ||
Ligne 62: | Ligne 97: | ||
</ | </ | ||
- | External commands are either binaries or scripts that can be found in /bin, / | + | External commands are either binaries or scripts that can be found in /usr/bin or /usr/sbin: |
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | passwd | + | cd is a shell builtin |
</ | </ | ||
Ligne 74: | Ligne 109: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
ls is aliased to `ls --color=auto' | ls is aliased to `ls --color=auto' | ||
</ | </ | ||
Ligne 85: | Ligne 120: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | total 4 | + | total 0 |
- | -rw-rw-r--. 1 trainee trainee | + | -rw-rw-r--. 1 trainee trainee 0 Apr 20 03:46 aac |
- | -rw-rw-r--. 1 trainee trainee | + | -rw-rw-r--. 1 trainee trainee 0 Apr 20 03:46 abc |
- | -rw-rw-r--. 1 trainee trainee | + | -rw-rw-r--. 1 trainee trainee 0 Apr 20 03:46 bca |
- | drwxr-xr-x. 2 trainee trainee | + | -rw-rw-r--. 1 trainee trainee 0 Apr 20 03:46 xyz |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | drwxr-xr-x. 2 trainee trainee | + | |
- | -rw-rw-r--. 1 trainee trainee | + | |
- | -rw-rw-r--. 1 trainee trainee | + | |
</ | </ | ||
Ligne 110: | Ligne 136: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
alias dir=' | alias dir=' | ||
alias egrep=' | alias egrep=' | ||
Ligne 119: | Ligne 145: | ||
alias ls='ls --color=auto' | alias ls='ls --color=auto' | ||
alias vi=' | alias vi=' | ||
- | alias which=' | + | alias which=' |
+ | alias xzegrep=' | ||
+ | alias xzfgrep=' | ||
+ | alias xzgrep=' | ||
+ | alias zegrep=' | ||
+ | alias zfgrep=' | ||
+ | alias zgrep=' | ||
</ | </ | ||
Ligne 129: | Ligne 161: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | aac bca | + | aac |
- | abc Desktop | + | |
</ | </ | ||
Ligne 137: | Ligne 168: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | aac bca | + | aac |
- | abc Desktop | + | |
</ | </ | ||
Ligne 146: | Ligne 176: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
root: | root: | ||
bin: | bin: | ||
Ligne 159: | Ligne 189: | ||
games: | games: | ||
ftp: | ftp: | ||
- | nobody:x:99:99:Nobody:/:/ | + | nobody:x:65534:65534:Kernel Overflow User:/:/ |
- | avahi-autoipd: | + | |
- | systemd-bus-proxy: | + | |
- | systemd-network: | + | |
dbus: | dbus: | ||
- | polkitd:x:997:995:User for polkitd:/:/ | + | systemd-coredump:x:999:997:systemd Core Dumper:/:/ |
- | abrt:x:173:173::/etc/ | + | systemd-resolve:x:193:193:systemd Resolver:/:/ |
- | usbmuxd: | + | |
- | colord: | + | |
- | libstoragemgmt: | + | |
- | setroubleshoot: | + | |
- | rpc: | + | |
- | rtkit: | + | |
- | chrony: | + | |
- | unbound: | + | |
tss: | tss: | ||
- | geoclue:x:991:988:User for geoclue:/var/ | + | polkitd:x:998:996:User for polkitd:/:/ |
- | ntp:x:38:38::/etc/ntp:/ | + | unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/ |
- | sssd:x:990:987:User for sssd:/:/ | + | libstoragemgmt:x:996:993:daemon account |
- | rpcuser: | + | cockpit-ws:x:995:991:User for cockpit-ws:/nonexisting:/ |
- | nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/ | + | sssd:x:994:990:User for sssd:/:/ |
- | pulse:x:171:171:PulseAudio System Daemon:/var/ | + | setroubleshoot:x:993:989::/var/lib/setroubleshoot:/ |
- | gdm:x:42:42::/var/lib/gdm:/ | + | |
- | gnome-initial-setup: | + | |
- | avahi: | + | |
- | postfix: | + | |
sshd: | sshd: | ||
+ | chrony: | ||
tcpdump: | tcpdump: | ||
trainee: | trainee: | ||
- | vboxadd:x:988:1::/var/run/vboxadd:/bin/false | + | cockpit-wsinstance:x:991:987:User for cockpit-ws instances:/ |
- | named:x:25:25:Named:/var/named:/ | + | rngd: |
+ | gluster: | ||
+ | qemu:x:107:107:qemu user:/:/ | ||
+ | rpc: | ||
+ | rpcuser: | ||
+ | saslauth: | ||
+ | radvd: | ||
+ | dnsmasq: | ||
</ | </ | ||
Ligne 195: | Ligne 218: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
/bin/sh | /bin/sh | ||
/bin/bash | /bin/bash | ||
- | / | ||
/usr/bin/sh | /usr/bin/sh | ||
/ | / | ||
- | / | ||
- | /bin/tcsh | ||
- | /bin/csh | ||
</ | </ | ||
Ligne 209: | Ligne 228: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
/bin/bash | /bin/bash | ||
</ | </ | ||
Ligne 220: | Ligne 239: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
Changing shell for trainee. | Changing shell for trainee. | ||
- | New shell [/bin/bash]: /bin/sh | + | New shell [/bin/bash] |
+ | /bin/sh | ||
Password: trainee | Password: trainee | ||
Shell changed. | Shell changed. | ||
Ligne 234: | Ligne 254: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
/bin/bash | /bin/bash | ||
</ | </ | ||
Ligne 241: | Ligne 261: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
trainee: | trainee: | ||
</ | </ | ||
Ligne 252: | Ligne 272: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
Changing shell for trainee. | Changing shell for trainee. | ||
New shell [/bin/sh]: /bin/bash | New shell [/bin/sh]: /bin/bash | ||
Ligne 275: | Ligne 295: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
1 su - | 1 su - | ||
- | 2 | + | 2 |
3 su - | 3 su - | ||
- | 4 | + | 4 |
- | 5 | + | 5 |
- | 6 | + | 6 |
- | 7 | + | 7 |
- | 8 | + | 8 |
- | 9 | + | 9 |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
--More-- | --More-- | ||
</ | </ | ||
Ligne 331: | Ligne 351: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | aac bca | + | aac |
- | abc Desktop | + | [trainee@centos8 |
- | [trainee@centos7 | + | |
ls | ls | ||
- | aac bca | + | aac |
- | abc Desktop | + | |
</ | </ | ||
Ligne 343: | Ligne 361: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 ~]$ history |
+ | 1 su - | ||
+ | ... | ||
+ | | ||
+ | | ||
+ | | ||
+ | [trainee@centos8 | ||
ls | ls | ||
- | aac bca | + | aac |
- | abc Desktop | + | |
</ | </ | ||
Ligne 352: | Ligne 375: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
HISTSIZE=1000 | HISTSIZE=1000 | ||
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL | export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL | ||
Ligne 362: | Ligne 385: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | 1 su - | + | 54 ls |
- | 2 df -h | + | |
- | 3 su - | + | |
- | | + | |
- | 5 su - | + | |
- | 6 su - | + | |
- | 7 vi vitext | + | |
- | | + | |
- | 9 vi vitext | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | 17 clear | + | |
- | 18 stty | + | |
- | | + | |
- | | + | |
- | 21 who | + | |
- | 22 df | + | |
- | 23 df -h | + | |
- | --More-- | + | |
</ | </ | ||
Ligne 402: | Ligne 411: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | .bash_history | + | .bash_history |
</ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez qu'en appuyant sur la touche < | ||
+ | </ | ||
This same technique can also be used to auto-generate command names. Consider the following example: | This same technique can also be used to auto-generate command names. Consider the following example: | ||
Ligne 413: | Ligne 426: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | mobj_dump | + | modinfo |
- | modifyrepo | + | modprobe |
- | modinfo | + | modulemd-validator |
- | modprobe | + | modulemd-validator-v1 |
</ | </ | ||
Ligne 440: | Ligne 453: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
+ | [trainee@centos8 training]$ ls | ||
+ | f1 f2 f3 f4 | ||
</ | </ | ||
Ligne 450: | Ligne 465: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f1 f2 f3 f4 f5 | f1 f2 f3 f4 f5 | ||
</ | </ | ||
Ligne 463: | Ligne 478: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
</ | </ | ||
Ligne 469: | Ligne 484: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f52 f62 | f52 f62 | ||
</ | </ | ||
Ligne 490: | Ligne 505: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
</ | </ | ||
Ligne 496: | Ligne 511: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
a100 f1 f2 f3 f4 f5 f52 f62 | a100 f1 f2 f3 f4 f5 f52 f62 | ||
- | [trainee@centos7 | + | [trainee@centos8 |
a100 f1 f2 f3 f4 f5 f52 f62 | a100 f1 f2 f3 f4 f5 f52 f62 | ||
</ | </ | ||
Ligne 507: | Ligne 522: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f1 f2 f3 f4 f5 f52 f62 | f1 f2 f3 f4 f5 f52 f62 | ||
</ | </ | ||
Ligne 516: | Ligne 531: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
a100 | a100 | ||
</ | </ | ||
Ligne 525: | Ligne 540: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
[a-f] | [a-f] | ||
</ | </ | ||
Ligne 538: | Ligne 553: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
</ | </ | ||
Ligne 546: | Ligne 561: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
autocd | autocd | ||
cdable_vars | cdable_vars | ||
Ligne 597: | Ligne 612: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
</ | </ | ||
Ligne 603: | Ligne 618: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f123.txt | f123.txt | ||
</ | </ | ||
Ligne 616: | Ligne 631: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f123123123.txt | f123123123.txt | ||
</ | </ | ||
Ligne 629: | Ligne 644: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f123123123.txt | f123123123.txt | ||
</ | </ | ||
Ligne 642: | Ligne 657: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f123.txt | f123.txt | ||
</ | </ | ||
Ligne 655: | Ligne 670: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
f123123123.txt | f123123123.txt | ||
</ | </ | ||
Ligne 675: | Ligne 690: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
a100 f f1 f123123123.txt f123123.txt f123.txt f2 f3 f4 f5 f52 f62 f.txt est un caractère spécial | a100 f f1 f123123123.txt f123123.txt f123.txt f2 f3 f4 f5 f52 f62 f.txt est un caractère spécial | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | * est un caractère spécial | + | * is a metacharacter |
- | [trainee@centos7 | + | [trainee@centos8 |
- | * est un caractère spécial | + | * is a metacharacter |
- | [trainee@centos7 | + | [trainee@centos8 |
- | * est un caractère spécial | + | * is a metacharacter |
</ | </ | ||
Ligne 695: | Ligne 710: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
0 | 0 | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
rmdir: failed to remove ‘codes’: | rmdir: failed to remove ‘codes’: | ||
- | [trainee@centos7 | + | [trainee@centos8 |
1 | 1 | ||
</ | </ | ||
- | As you can see when the exit status is 0, the command has executed correctly. If the exit status is anything else, the command has executed with errors. | + | As you can see when the exit status is 0, the command has executed correctly. If the exit status is anything else, the command has executed with errors. |
====Redirections==== | ====Redirections==== | ||
Ligne 719: | Ligne 734: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
/ | / | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
total used free shared | total used free shared | ||
Mem: | Mem: | ||
Ligne 736: | Ligne 751: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
Mon 28 Nov 15:48:09 CET 2016 | Mon 28 Nov 15:48:09 CET 2016 | ||
</ | </ | ||
Ligne 744: | Ligne 759: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
Mon 28 Nov 15:48:09 CET 2016 | Mon 28 Nov 15:48:09 CET 2016 | ||
total used free shared | total used free shared | ||
Ligne 765: | Ligne 780: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
rmdir: failed to remove ‘training/ | rmdir: failed to remove ‘training/ | ||
</ | </ | ||
Ligne 778: | Ligne 793: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
</ | </ | ||
Ligne 786: | Ligne 801: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
8 | 8 | ||
</ | </ | ||
Ligne 801: | Ligne 816: | ||
====Pipes==== | ====Pipes==== | ||
- | A pipe is used to present the standard output on the first command to the standard input of the second command: | + | A pipe is used to present the standard output on the first command to the standard input of the second command |
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | 17 | + | 7 |
</ | </ | ||
Ligne 812: | Ligne 827: | ||
</ | </ | ||
- | Standard output can generally | + | Standard output can generaly |
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:14:24 CET 2016 | + | Tue 20 Apr 10:39:47 EDT 2021 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:14:24 CET 2016 | + | Tue 20 Apr 10:39:47 EDT 2021 |
</ | </ | ||
Ligne 824: | Ligne 839: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:15:57 CET 2016 | + | Tue 20 Apr 10:40:36 EDT 2021 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:15:57 CET 2016 | + | Tue 20 Apr 10:40:36 EDT 2021 |
</ | </ | ||
Ligne 840: | Ligne 855: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
date | date | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:19:35 CET 2016 | + | Tue 20 Apr 10:41:33 EDT 2021 |
- | [trainee@centos7 | + | [trainee@centos8 |
- | Mon 28 Nov 16:19:35 CET 2016 | + | Tue 20 Apr 10:41:45 EDT 2021 |
</ | </ | ||
Ligne 852: | Ligne 867: | ||
Commands can be grouped using brackets: | Commands can be grouped using brackets: | ||
- | < | + | |
- | $ (ls -l; ps; who) > list | + | |
- | </ | + | |
Conditional command execution can be obtained by using the exit status value and either **&& | Conditional command execution can be obtained by using the exit status value and either **&& | ||
Ligne 931: | Ligne 944: | ||
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | en_GB.UTF-8 | + | |
- | [trainee@centos7 ~]$ echo $LC_CTYPE | + | |
- | [trainee@centos7 | + | [trainee@centos8 |
- | en_GB.UTF-8 | + | |
- | [trainee@centos7 | + | [trainee@centos8 ~]$ echo $LANG |
+ | en_GB.UTF-8 | ||
+ | [trainee@centos8 | ||
LANG=en_GB.UTF-8 | LANG=en_GB.UTF-8 | ||
LC_CTYPE=" | LC_CTYPE=" | ||
Ligne 952: | Ligne 964: | ||
LC_MEASUREMENT=" | LC_MEASUREMENT=" | ||
LC_IDENTIFICATION=" | LC_IDENTIFICATION=" | ||
- | LC_ALL=en_GB.UTF-8 | + | LC_ALL= |
</ | </ | ||
Ligne 967: | Ligne 979: | ||
| $@ | Contains all of the arguments passed to the script | | | $@ | Contains all of the arguments passed to the script | | ||
- | ====The env Commande==== | + | ====The env Command==== |
- | The **env** command can be used to run a program in a modified environment or just list the values of all environmental variables associated with the user calling the program env: | + | The **env** command can be used to run a program in a modified environment or just list the values of all environmental variables associated with the user calling the program env: |
< | < | ||
- | [trainee@centos7 | + | [trainee@centos8 |
- | XDG_SESSION_ID=1 | + | LS_COLORS=rs=0: |