从上一章节中,我们已经将实验与教学的环境给建置起来了,在这一章节中,将会演示使用「workstation」之虚拟主机来存取终端机的方法以及基本的Bash shell之介绍。
首先,先打开VirtualBox,接着选取「workstation」後,按下启动的按钮,就可以把这台虚拟机器给启动了,相关的操作画面如下图所示:
接着会显示登入画面,如下图所示:
从上面的登入画面可以得知,使用者为:rockylinux,点击下去之後,要输入密码,密码为:rocky,输入完密码按下「enter」键之後,就可以登入到桌面环境了,相关的操作图示如下所示:
Bash全名叫做「GNU Bourne-Again Shell」,将这个Bash之shell呼叫出来的方式如下:登入进去到桌面之後,可以执行一个终端机,在Rocky Linux这个Linux发行版本底下预设执行shell为Bash,可以点桌面上方的「Activities」,并会得到下面的图示:
接着选择画面左边的黑色图示,从下面数来第二个,这个图示就是开启终端机的图示,点击下去之後,就会打开终端机,并启动互动式模式的Bash shell了,相关的操作如下图所示:
从上述的操作,就可以把一个终端机给呼叫出来了,接着会有一个文字,如下所示:
[rockylinux@workstation ~]$
从上面这一行的文字来看,rockylinux
指的是登入的使用者名称,而中间用小老鼠隔开,後面指的是这台主机的名称,像以这台主机为例,就叫做workstation,而~
则是目前停在的目录,这在Bash shell的世界中,这个代表的是当前使用者的家目录路径,而$
是这个结尾的意思,後面开始的地方就是我们可以输入指令的地方了。
成功登入了桌面环境以及打开了终端机之後,我们也可以进行登出本地端的主机,由於我们有安装桌面环境的缘故,因此当输入了「exit」指令时,只会把当前所开启的终端机给关闭,桌面环境所执行的shell还是在登入的状态,若要回到原来前面小节中,一开始在使用者的登入状态的话,需要关闭终端机之後,按下右上角的电源键之图示并选择使用者名称选项,点下去之後,有一个「log out」选项,按下去之後,才会回到先前一开始使用者登入图示的画面,相关的图示如下图所示:
回到桌面环境,这是一个叫做GNOME之桌面环境,这个桌面环境也是一种广为流行的桌面环境,有了桌面环境就可以有图示之外,还可以选择图形化的应用程序出来,像是前面小节中所提到的终端机就是桌面图形化程序的其中一种,而我们可以照着下图所示,点击左边的最後一个选项,叫做「show applications」,就会把所有在这台主机上所安装的图形化应用程序都列出来,有点类似像Windows作业系统上的应用程序集,相关的操作如下图所示:
利用上面小节中所提到的终端机开启的方法,将终端机打开之後,输入「whoami」之指令,可以得到下面的文字:
[rockylinux@localhost ~]$ whoami
rockylinux
[rockylinux@localhost ~]$
上述的指令是查看当前使用者名称,接着,输入「date」则可以跳出当前的时间的字串,相关的输出如下所示:
[rockylinux@localhost ~]$ date
Sun Sep 19 21:01:12 CST 2021
[rockylinux@localhost ~]$
如果要显示目前的时间并以「时:分」之格式来表示的话,输出的结果如下所示:
[rockylinux@localhost ~]$ date +%R
21:02
[rockylinux@localhost ~]$
[rockylinux@localhost ~]$
而「+%R」是一个格式化日期字串之参数,显示出来就是我们上面所要格式的结果,表示的时分字串是以24小时制,而使用「+%x」之格式化选项,则是会输出:「月/日/年」之格式化日期字串。
[rockylinux@localhost ~]$ date +%x
09/19/2021
有关於「date」指令所用到的日期之格式化字串选项还有很多,如「%F」、「+%Y」、「+%m」以及「+%d」等,要看一个指令的用法或是相观的说明将会在後面的章节中提到,这个章节只要会基本的操作指令输入即可。
接着再介绍一个指令叫做「passwd」,这个指令是用来修改当前的使用者密码的,当我们执行这个指令下去的时候,就会得到下面的输出文字:
[rockylinux@localhost ~]$ passwd
Changing password for user rockylinux.
Current password:
接着就会要求输入当前使用者的密码,当成功的输入当前这个使用者密码之後,就会要求输入新的密码,接着就会得到下列的文字:
[rockylinux@localhost ~]$ passwd
Changing password for user rockylinux.
Current password:
New password:
当输入新的密码之後,则会输入下列的文字:
[rockylinux@localhost ~]$ passwd
Changing password for user rockylinux.
Current password:
New password:
Retype new password:
从上面的输出文字来看,会再要求再输入一次密码,当两次输入的密码都相同之後,则当前的使用者修改密就算成功了,整个成功的修改密码过程之输出文字如下所示:
[rockylinux@localhost ~]$ passwd
Changing password for user rockylinux.
Current password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
有时候,当设定新的密码太简单的话,则会出现下列的错误:
[rockylinux@localhost ~]$ passwd
Changing password for user rockylinux.
Current password:
New password:
BAD PASSWORD: The password is shorter than 8 characters
passwd: Authentication token manipulation error
从上面的输出文字得知,就是密码设定的长度太短,没有到8个字元,因此不允许修改此过短的密码,但是若要设定这个密码也是可以的,可以用root使用者,或是当前使用者有使用「sudo」权限的话,也可以做到,这部分在後面的章节会再提到。
所有的使用者与相对应的密码都会存在档案里面,存在的路径为:「/etc/passwd」这个路径底下,可以用「cat」这个指令将此密码档案给印出来到终端机上面,相关的输出文字如下所示:
[rockylinux@localhost ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pipewire:x:996:992:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
libstoragemgmt:x:995:989:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
clevis:x:994:988:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
unbound:x:993:987:Unbound DNS resolver:/etc/unbound:/sbin/nologin
gluster:x:992:986:GlusterFS daemons:/run/gluster:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
setroubleshoot:x:991:984::/var/lib/setroubleshoot:/sbin/nologin
saslauth:x:990:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dnsmasq:x:983:983:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
sssd:x:982:982:User for sssd:/:/sbin/nologin
cockpit-ws:x:981:980:User for cockpit web service:/nonexisting:/sbin/nologin
cockpit-wsinstance:x:980:979:User for cockpit-ws instances:/nonexisting:/sbin/nologin
chrony:x:979:978::/var/lib/chrony:/sbin/nologin
flatpak:x:978:977:User for flatpak system helper:/:/sbin/nologin
colord:x:977:976:User for colord:/var/lib/colord:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:976:975::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rockylinux:x:1000:1000:rockylinux:/home/rockylinux:/bin/bash
[rockylinux@localhost ~]$
从上述的密码档案来看,内容除了记录使用者的资讯之外,还有使用者对应的家目录路径、使用者id等资讯,此档案的资讯解读在後面的章节也会提到,有监於用cat /etc/passwd
这个指令会把密码档案所有内容都印出来,若要此档案内容的前几行要怎麽做?这时我们可以使用「head」这个指令来做到,相关指令输出的结果如下:
[rockylinux@localhost ~]$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
从上述的指令来看,head预设会印出指定档案之前10行内容出来,若要印出更少行或更多行,则可以使用「-n」选项做到,例如:「head -n 5 /etc/passwd」,接着就会得到下列的输出结果:
[rockylinux@localhost ~]$ head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
有印出档案前几行的内容,当然也有印出档案内容後面几行的内容之指令,那就是「tail」,使用这个tail指令与head指令相仿,什麽参数都没有加上去的话,则印出档案内容中最後10行的内容,若要指定印出最後几行,则可以使用「-n」之参数做到。
指令参数有时候很多,不是人可以记得起来的,这时可以使用TAB按键来做到,以tail这个指令来说,可以这样做:
[rockylinux@localhost ~]$ tail
.bash_history .bashrc Desktop/ .esd_auth .mozilla/ .pki/ Videos/
.bash_logout .cache/ Documents/ .ICEauthority Music/ Public/
.bash_profile .config/ Downloads/ .local/ Pictures/ Templates/
从上述输出的文字,当指输入tail指令并按下TAB键时,则会跳出所有路径选项,因为要接上档案的路径,或是打上一个「-」并按下TAB则会再跳出「-」,接着按两下TAB键,则会跳出所有可能的长选项供使用者所使用,相关的输出指令如下所示:
[rockylinux@localhost ~]$ tail --
--bytes= --lines= --silent --zero-terminated
--follow --max-unchanged-stats= --sleep-interval=
--follow= --pid= --verbose
--help --retry --version
假设要印出/etc/passwd档案里面之前5行则可以使用长选项之「--lines」或是短选项的「-n」来做到,相关输出文字如下所示:
[rockylinux@localhost ~]$ tail --lines=5 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:976:975::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rockylinux:x:1000:1000:rockylinux:/home/rockylinux:/bin/bash
[rockylinux@localhost ~]$ tail -n 5 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:976:975::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rockylinux:x:1000:1000:rockylinux:/home/rockylinux:/bin/bash
TAB按键是一个很实用的按键,尤其当使用不知道指令有什麽选项参数可以选用的时候,可以透过这按键将所有情况的选项列出,供使用者做选择。
当打了很多指令之後,需要将之前打过的指令历史列出,则可以使用「history」来做到,相关输出的文字如下所示:
[rockylinux@localhost ~]$ history
1 ls /home/
2 ip a show
3 sudo reboot
4 whoami
5 date
6 date +%R
7 date +%X
8 date +%x
9 date +%d
10 date +%F
11 who
12 date +%F
13 date +%f
14 date +%Y
15 date +%M
16 date +%m
17 date +%d
18 passwd
19 cat /etc/passwd
20 head /etc/passwd
21 head -n 5 /etc/passwd
22 tail /etc/passwd
23 tail --lines=1 /etc/passwd
24 tail --lines=5 /etc/passwd
25 tail -n 5 /etc/passwd
26 history
当我们要用上面列出来之第25行指令再执行一次时,可以使用「!25」来做到,相关输出如下所示:
[rockylinux@localhost ~]$ !25
tail -n 5 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:976:975::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rockylinux:x:1000:1000:rockylinux:/home/rockylinux:/bin/bash
当指令一多的时候,难免会有打错的可能,为了要更方便的编辑指令,以下介绍几个实用的组合键可以做到编辑指令的方法:
看完了印度整体的网页规划,这个时候我会做一点竞品分析,不免俗的先去看看其他人怎麽做这个产品,毕竟踩在...
今天要介绍netmask,是可以让我们自由转换各种不同表示类型的网路地址以及子网遮罩,在划分子网路的...
大家好,我是YIYI,今天要开始用Whimsical画架构图了~ 进入Whimsical 先透过【D...
耶!上完课、通过考试之後,是不是就可以出去稽核客户了咧? 是不是可以执行稽核活动,然後就可以稽他!稽...
大家好~昨天我们建立好 Google Analytics 与 AWS 连线,现在我们就可以透过 AW...