table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}
1、获取一个带有图形桌面的Ubuntu系统。启动系统并登录。
可以通过以下方式获取Ubuntu系统来启动并登录:
从可引导介质运行Ubuntu
:下载Ubuntu Live镜像并刻录到DVD或USB驱动器,然后从该介质启动以使用。
永久安装Ubuntu
:将Ubuntu安装到硬盘并从那里启动。
当前Ubuntu版本默认使用GNOME 3界面。启动系统后,按照系统提示输入用户名和密码进行登录。
2、启动火狐浏览器并访问 GNOME 主页(www.gnome.org)。
可以按下 Windows 键进入活动屏幕,然后输入“Firefox”以高亮显示火狐浏览器图标,按下回车键启动它。在地址栏输入
gnome.org
,再按下回车键。
3、从 GNOME 艺术网站(www.gnome – look.org)挑选一张你喜欢的背景图,将其下载到你的图片文件夹,并将其设置为当前桌面背景。
a. 在 Firefox 的地址栏中输入 `gnome - look.org/` 并按回车键。
b. 找到你喜欢的背景图并选中它。然后点击下载按钮,将其下载到你的图片文件夹。
c. 打开你的图片文件夹,右键点击该图片,选择“设为壁纸”。该图片即被用作你的桌面背景。
4、启动一个鹦鹉螺文件管理器窗口并将其移动到桌面的第二个工作区。
按下 Windows 键。
从 Dash(左侧)中选择“文件”图标,当前工作区将启动一个新的鹦鹉螺实例。
在“文件”窗口的标题栏上右键单击,然后选择“移动到下方监视器”,“文件”窗口将移动到第二个工作区。
5、找到你下载用作桌面背景的图像,并在任何图像查看器中打开它。
首先转到主文件夹,然后打开图片文件夹。双击图像以在图像查看器中打开它。
6、在包含Firefox的工作区和包含Nautilus文件管理器的工作区之间来回切换。
## 方法一
a. 按下 Windows 键
b. 在右列中选择你想要的工作区
## 方法二
按下 Alt + Tab,再次按下 Tab 并使用方向键,以突出显示你想要打开的应用程序,从而直接切换到该应用程序所在的工作区
7、打开系统上已安装的应用程序列表,并从中选择一个图像查看器打开。尽可能减少点击次数或按键次数。
点击 Dock 底部的应用程序按钮(一个框中有九个点的按钮),打开应用程序列表视图,然后在其中找到图像查看器的图标并左键点击打开。
8、将当前工作区中的窗口视图更改为可逐个查看的较小视图。选择你想要的任何窗口,使其成为当前窗口。
将鼠标移到左上角以显示所有窗口的最小化视图,可逐个查看小视图,点击任意窗口可使其成为当前窗口。
9、从你的桌面切换到第三个虚拟控制台并登录你的用户账户。运行一些命令。然后退出 shell 并返回桌面。
按住
Ctrl + Alt
键,然后按
F3
(在某些笔记本键盘上调用
F
键可能需要额外操作),你会看到一个纯文本登录提示。
使用你的用户名和密码登录。
运行一些命令,例如
id
、
pwd
和
ls
。
输入
exit
退出 shell。
按
Ctrl + Alt + F1
返回你的图形桌面界面(不同 Linux 系统中,桌面可能位于不同的虚拟控制台,
Ctrl + Alt + F7
和
Ctrl + Alt + F2
也是常见位置)。
10、打开一个终端窗口,将字体颜色更改为红色,背景颜色更改为黄色。
从 GNOME 桌面,按
Ctrl + Alt + T
打开一个终端窗口。
从终端窗口,选择“编辑” ➪ “首选项”。
选择“颜色”选项卡,取消选择“使用系统主题颜色”框。
选择“文本颜色”旁边的框,从可用选项中点击你想要的红色,然后点击“选择”。
选择“背景颜色”旁边的框,从可用选项中点击你想要的黄色,然后点击“选择”。
点击“配置文件”窗口上的“关闭”,以使用新颜色返回终端窗口。
11、输入命令 cat /etc/passwd、ls $HOME、date。使用命令行召回功能召回cat命令,并将 /etc/passwd 更改为 /etc/group。
以下是调整为 Markdown 格式的内容:
依次输入以下命令:
cat /etc/passwd
ls $HOME
date
之后,使用命令行召回功能(例如在 Bash 中按下上箭头键)召回
cat
命令,然后将命令中的
/etc/passwd
修改为
/etc/group
。
12、依次输入命令 $ cat /etc/passwd、$ ls $HOME、$ date。调用 ls 命令,通过查看手册页确定按时间列出文件的选项,并将该选项添加到 ls $HOME 命令行中。
可通过以下步骤完成:
先输入
$ man ls
查看
ls
命令手册页。
找到按时间列出文件的选项(如
-t
)。
将该选项添加到
ls $HOME
命令行,即输入
$ ls -t $HOME
。
13、输入命令 $ cat /etc/passwd、$ ls $HOME、$ date。为 date 命令添加格式指示符,使日期输出格式为月/日/年。
在执行
date
命令时添加格式指示符
%m/%d/%Y
,命令为:
$ date +'%m/%d/%Y'
14、运行以下命令,使用尽可能少的字符(利用制表符补全功能):basename /usr/share/doc/
输入
basename
/u
sh
do
可得到
basename /usr/share/doc/
15、使用 cat 命令列出 /etc/services 文件的内容,并将这些内容通过管道传递给 less 命令,以便你可以逐页查看(完成后输入 q 退出)。
$ cat /etc/services | less
16、以某种方式运行 date 命令,使该命令的输出显示当前的星期、月份、日期和年份。将其读入另一个命令行,生成类似以下形式的文本(当然,你的日期会不同):Today is Thursday, December 19, 2019。
可以使用命令:$ echo “Today is $(date +’%A, %B %d, %Y’)”
17、使用变量,找出你当前的主机名、用户名、shell 和主目录分别设置为什么。
可以使用以下命令来查看:
查看主机名:
echo $HOSTNAME
查看用户名:
echo $USER
查看 shell:
echo $SHELL
查看主目录:
echo $HOME
18、创建一个名为 mypass 的别名,用于在屏幕上显示 /etc/passwd 文件的内容,并且每次从你的用户账户登录或打开新的 shell 时,该别名都可用。
要创建一个名为
mypass
的别名,使其每次登录或打开新 shell 时都能显示
/etc/passwd
文件的内容,可按以下步骤操作:
打开用户主目录下的
.bashrc
文件(如果你使用的是 Bash shell),使用命令
bash
nano ~/.bashrc
或
bash
vim ~/.bashrc
在文件末尾添加一行代码:
bash
alias mypass='cat /etc/passwd'
保存并关闭文件。
使更改生效,使用命令:
bash
source ~/.bashrc
之后,每次登录或打开新的 shell,都可以使用
mypass
命令来显示
/etc/passwd
文件的内容。
19、显示挂载系统调用的手册页。
使用
man -k
命令查找包含“mount”一词的手册页,然后使用带有正确章节编号(2)的
man
命令来获取正确的
mount
手册页,具体命令如下:
$ man -k mount | grep ^mount
$ man 2 mount
20、在你的主目录下创建一个名为 projects 的目录。在 projects 目录中,创建九个空文件,分别命名为 house1、house2、house3 等等,直到 house9。假设该目录中有很多其他文件,想出一个
ls
命令的参数,使其仅列出这九个文件。
ls
mkdir $HOME/projects
for i in {1..9}; do touch $HOME/projects/house$i; done
ls $HOME/projects/house{1..9}
21、创建目录路径 $HOME/projects/houses/doors/,并在该目录路径下创建以下空文件(尝试使用从主目录开始的绝对路径和相对路径):$HOME/projects/houses/bungalow.txt、$HOME/projects/houses/doors/bifold.txt、$HOME/projects/outdoors/vegetation/landscape.txt
创建目录路径及文件命令
使用绝对路径
创建
$HOME/projects/houses/
目录(使用绝对路径):
mkdir -p $HOME/projects/houses
在
$HOME/projects/houses/
目录下创建
bungalow.txt
文件(使用绝对路径):
touch $HOME/projects/houses/bungalow.txt
创建
$HOME/projects/houses/doors/
目录(使用绝对路径):
mkdir -p $HOME/projects/houses/doors
在
$HOME/projects/houses/doors/
目录下创建
bifold.txt
文件(使用绝对路径):
touch $HOME/projects/houses/doors/bifold.txt
创建
$HOME/projects/outdoors/vegetation/
目录(使用绝对路径,
-p
选项用于创建多级目录):
mkdir -p $HOME/projects/outdoors/vegetation
在
$HOME/projects/outdoors/vegetation/
目录下创建
landscape.txt
文件(使用绝对路径):
touch $HOME/projects/outdoors/vegetation/landscape.txt
使用相对路径
假设当前目录是主目录
$HOME
:
创建
projects/houses/
目录:
mkdir -p projects/houses
在
projects/houses/
目录下创建
bungalow.txt
文件:
touch projects/houses/bungalow.txt
创建
projects/houses/doors/
目录:
mkdir -p projects/houses/doors
在
projects/houses/doors/
目录下创建
bifold.txt
文件:
touch projects/houses/doors/bifold.txt
创建
projects/outdoors/vegetation/
目录:
mkdir -p projects/outdoors/vegetation
在
projects/outdoors/vegetation/
目录下创建
landscape.txt
文件:
touch projects/outdoors/vegetation/landscape.txt
22、将文件 house1 和 house5 复制到 $HOME/projects/houses/ 目录。
cp house1 house5 $HOME/projects/houses/
23、将 /usr/share/doc/initscripts* 目录递归复制到 $HOME/projects/ 目录,并保留当前的日期/时间戳和权限。
$ cp -ra /usr/share/doc/initscripts*/ $HOME/projects/
24、递归列出 $HOME/projects/ 目录的内容。将输出通过管道传递给 less 命令,以便可以逐页查看输出。
$ ls -lR $HOME/projects/ | less
25、将 house3 和 house4 文件移动到 $HOME/projects/houses/doors 目录。
$ mv $HOME/projects/house{3,4} $HOME/projects/houses/doors/
26、删除 $HOME/projects/houses/doors 目录及其内容。
$ rm -rf $HOME/projects/houses/doors/
27、更改 $HOME/projects/house2 文件的权限,使得文件所有者可以对其进行读写操作,所属组只能进行读操作,其他用户没有任何权限。
使用命令 chmod 640 $HOME/projects/house2
28、递归更改 $HOME/projects/ 目录的权限,使文件系统中该目录以下的任何文件或目录都没有写入权限。
使用命令
$ chmod -R a-w $HOME/projects/
来递归更改权限,然后可以使用
$ ls -lR $HOME/projects/
命令查看更改后的目录内容。
29、将 /etc/services 文件复制到 /tmp 目录。在 vim 中打开 /tmp/services 文件,搜索术语 WorldWideWeb 并将其更改为 World Wide Web。
执行以下命令:
$ cp /etc/services /tmp
$ vi /tmp/services
在 Vim 编辑器中执行以下操作:
按下
/
键,输入
WorldWideWeb
后按回车键;
按下
cw
键,输入
World Wide Web
,再按下
Esc
键
30、在 /tmp/services 文件中找到以下段落,并将其移动到文件末尾。段落内容为:# Note that it is presently the policy of IANA to assign a single well – known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn’t support UDP operations. # Updated from RFC 1700, “Assigned Numbers” (October 1994). Not all ports # are included, only the more common ones.
可以通过以下步骤完成:
$ vi /tmp/services
/Note that it is<Enter>
5dd
G
p
31、使用 ex 模式,在 /tmp/services 文件中搜索所有出现的术语 tcp(区分大小写),并将其更改为 WHATEVER。
执行以下命令:
$ vi /tmp/services
进入 vi 编辑器后,切换到 ex 模式(一般在命令模式下即可),然后输入:
:%s/tcp/WHATEVER/g<Enter>
原答案中的
:g/tcp/s//WHATEVER/g
有误,正确的替换命令格式通常是:
:%s/原内容/替换内容/g
其中:
%
表示对整个文件进行操作
s
是替换的意思
g
表示全局替换
32、作为普通用户,在 /etc 目录中搜索所有名为 passwd 的文件,并将搜索过程中的错误消息重定向到 /dev/null。
find /etc -name passwd 2> /dev/null
33、在你的主目录中创建一个名为TEST的目录。在该目录中创建名为one、two和three的文件,这些文件对所有人(用户、组和其他用户)都有完整的读/写/执行权限。构建一个find命令,从你的主目录及其子目录中查找这些文件以及其他对“其他用户”开放写权限的文件。
以下是完成该任务的步骤和命令:
创建TEST目录:
bash
mkdir ~/TEST
进入TEST目录:
bash
cd ~/TEST
创建文件one、two和three并赋予所有人完整权限:
bash
touch one two three
chmod 777 one two three
使用find命令查找主目录及其子目录中对“其他用户”开放写权限的文件:
bash
find ~ -perm /o=w
34、查找 /usr/share/doc 目录下超过 300 天未修改的文件。
使用命令 find /usr/share/doc -mtime +300
35、查找 /tmp/FILES 目录中的每个文件,并在同一目录中为每个文件创建一个备份副本。使用每个文件的现有名称,仅附加 .mybackup 来创建每个备份文件。
$ find /tmp/FILES/ -type f -exec cp {} {}.mybackup ;
36、列出系统上运行的所有进程,并显示完整的列信息。将该输出通过管道传递给 less 命令,以便可以逐页查看进程列表。
使用命令
$ ps aux | less
,其中:
ps aux
用于列出系统上所有用户的所有进程及其完整列信息;
管道符
|
用于将
ps aux
的输出作为
less
命令的输入;
less
命令可让你逐页查看进程列表。
37、列出系统上运行的所有进程,并按运行每个进程的用户的名称对这些进程进行排序。
$ ps -ef –sort=user | less
38、列出系统上运行的所有进程,并显示以下信息列:进程ID、用户名、组名、虚拟内存大小、常驻内存大小和命令。
可以使用以下命令:
$ ps -eo pid,user,group,vsz,rss,comm | less
39、运行 top 命令查看系统上正在运行的进程。在按 CPU 使用率和内存消耗排序之间来回切换。
运行 top 命令后,按 M 键可按内存使用情况排序,按 P 键可返回按 CPU 排序。
40、从桌面启动 gedit 进程。确保以你登录的用户身份运行它。使用系统监视器窗口终止该进程。
执行以下操作:
执行命令启动
gedit
:
bash
$ gedit &
从活动屏幕中,输入“系统监视器”并按回车键。
在“进程”选项卡中找到
gedit
进程:
– 可以点击“进程名称”标题按字母顺序排序,以便更轻松地找到它。
右键单击
gedit
命令,然后选择“结束进程”或“终止进程”;屏幕上的
gedit
窗口应会消失。
41、再次运行 gedit 进程。这次,使用 kill 命令向 gedit 进程发送一个信号,使其暂停(停止)。尝试在 gedit 窗口中输入一些文本,并确保此时没有文本显示。
执行以下命令:
$ gedit &
[1] 21532
$ kill -SIGSTOP 21532
然后在 gedit 窗口输入文本,确保无文本显示。
42、使用 killall 命令让之前暂停的 gedit 命令继续工作,并确保在 gedit 暂停后输入的文本现在显示在窗口中。
输入命令
$ killall -SIGCONT gedit
,然后确保在
gedit
暂停后输入的文本显示在窗口中。
43、作为普通用户,以优先级值为 5 启动 gedit 命令。
nice -n 5 gedit &
44、使用renice命令将刚刚启动的gedit命令的优先级值更改为7。使用任意命令验证gedit命令当前的优先级值已设置为7。
首先需要获取
gedit
进程的 PID,可使用命令:
ps -ef | grep gedit
找到其 PID。假设其 PID 为
$PID$
,输入以下命令更改优先级值:
renice -n 7 $PID
可使用如下命令验证:
ps -eo 'pid,user,nice,comm' | grep gedit
45、在你的$HOME/bin目录下创建一个名为myownscript的脚本。当脚本运行时,它应输出如下信息:今天是当前日期和时间、当前所在目录以及主机名。此外,要包含关于脚本功能的注释,并指明脚本应使用/bin/bash shell运行。
创建脚本文件并使其可执行:
$ touch $HOME/bin/myownscript
$ chmod 755 $HOME/bin/myownscript
脚本内容如下:
#!/bin/bash
# myownscript:此脚本用于输出当前日期、当前工作目录和主机名。
current_date=$(date)
current_dir=$(pwd)
hostname=$(hostname)
echo "今天是 $current_date。"
echo "你在 $current_dir 目录,你的主机是 $hostname。"
46、创建一个脚本,从命令行读取三个位置参数,分别将这些参数赋值给名为 ONE、TWO 和 THREE 的变量,并按以下格式输出信息:There are X parameters that include Y. The first is A, the second is B, the third is C。将 X 替换为参数数量,Y 替换为所有输入的参数。然后将 A 替换为变量 ONE 的内容,B 替换为变量 TWO 的内容,C 替换为变量 THREE 的内容。
以下是创建该脚本的步骤:
脚本内容示例:
bash
#!/bin/bash
ONE=$1
TWO=$2
THREE=$3
echo "There are $# parameters that include: $@"
echo "The first is $ONE, the second is $TWO, the third is $THREE."
创建脚本文件并使其可执行:
bash
$ touch $HOME/bin/myposition
$ chmod 755 $HOME/bin/myposition
测试脚本:
bash
$ myposition Where Is My Hat Buddy?
运行后会按要求输出信息。
47、创建一个脚本,提示用户输入他们成长所在的街道和城镇的名称。将城镇和街道分别赋值给名为 mytown 和 mystreet 的变量,并按照以下示例所示的句子输出(当然,$mystreet 和 $mytown 将显示用户输入的实际街道和城镇名称):我成长的街道是 $mystreet,所在的城镇是 $mytown
要创建这样的脚本,可按以下步骤操作:
创建文件并使其可执行:
$ touch $HOME/bin/myhome
$ chmod 755 $HOME/bin/myhome
脚本内容如下:
#!/bin/bash
# myhome
read -p "What street did you grow up on? " mystreet
read -p "What town did you grow up in? " mytown
echo "我成长的街道是 $mystreet,所在的城镇是 $mytown"
运行脚本检查是否正常工作:
$ myhome
What street did you grow up on? [用户输入街道名]
What town did you grow up in? [用户输入城镇名]
我成长的街道是 [用户输入的街道名],所在的城镇是 [用户输入的城镇名]