Ubuntu系统操作与命令行实践指南

内容分享2小时前发布
0 0 0

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

命令的参数,使其仅列出这九个文件。


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? [用户输入城镇名]
我成长的街道是 [用户输入的街道名],所在的城镇是 [用户输入的城镇名]
© 版权声明

相关文章

暂无评论

none
暂无评论...