目录
任务描述
欢迎进行 Linux 世界,当你进入了 Linux 的世界,在下载、安装了某个 Linux 发行版(笔者喜欢使用Ubuntu
),体验了 Linux 桌面并安装了一些你喜爱和需要的软件之后,应该去了解下 Linux 真正的魅力所在:命令行。每一个 Linux 命令其实就是一个程序,借助这些命令,我们可以办到非常多的事情。
你的第一个任务就是切换当前工作目录为根目录/
,列出根目录下所有的文件信息。
相关知识
为了完成本关任务,你需要掌握:
- Linux 目录结构介绍;
- Linux 用户介绍;
- Linux 常用命令介绍。
Linux 目录结构介绍
对 Linux 文件系统目录结构的了解是学习和掌握 Linux 系统的基础。Linux 文件系统是树形层次结构,具体如下图所示。
Linux 用户介绍
Linux 用户通常分为两类:
- 管理员用户(
root
); - 普通用户(类似 Windows 上的普通用户)。
Linux 登录系统后,默认当前所在目录为用户主目录,类似 Windows 登录系统后,默认的所在目录为桌面。
-
管理员(
root
)登录系统后默认目录为/root
; -
普通用户登录系统后默认目录为
/home/username
,username
为用户名。 例如:笔者用普通用户fzm
登录系统后,那么当前所在目录为/home/fzm
。
Linux 常用命令介绍
pwd
命令
pwd
(Print Working Directory ):显示当前所在目录。
例如:笔者用普通用户fzm
登录系统后,那么当前所在目录为/home/fzm
cd
命令
cd
(Change Directory): 切换当前目录。
常用特殊目录表示:
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为"/",则执行完后还在"/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
例如:切换当前目录为/bin
目录。
ls
命令
ls
(list): 列出指定目录列表信息,如果没有参数默认列出当前目录下的所有文件和文件夹(隐藏文件和文件夹除外)。
常见ls
命令选项:
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-a:显示所有文件和文件夹(包括隐藏文件/文件夹);
例如:显示根目录下所有文件和文件夹。
编程要求
本关的任务是让用户简单的在 Linux 系统下使用pwd
、cd
和ls
命令,具体任务如下:
切换当前目录到根目录。
列出根目录下所有文件和文件夹(包括隐藏文件/文件夹)。
#!/bin/bash
#在以下部分写出完成任务的命令
#*********begin*********#
cd /;
ls -a
#********* end *********#
任务描述
恭喜你已经通过了第一关的实训,现在你掌握了pwd
、cd
和ls
命令的基本使用方法。接下来你应该学会关于文件和文件夹的常用操作。
本关你的任务是创建一个文件和一个文件夹,并且将新创建的文件拷贝到新建的文件夹下并重新命名。
相关知识
为了完成本关卡,你需要掌握:
- Linux 文件操作;
- Linux 文件夹操作。
Linux 文件操作
Linux 系统中最常用的文件操作有创建、删除文件等操作。
创建文件
linux 中创建文件的常用命令是touch
,命令格式如下:
touch filename
有时可能需要创建一个空的文件的情况。在这种情况下,可以使用touch
命令来轻松创建一个空文件。
例如:创建一个新的文件testfile
可以使用如下命令:
touch testfile
如果想同时创建多个文件也可以使用touch
命令完成,具体格式如下:
touch file1 file2 ...
只需将不同的文件名用空格分隔即可完成创建多个文件。
删除文件
Linux 中常用的删除文件的命令是rm
,使用格式如下:
rm [命令选项] filename
常用命令选项:
-f:强制删除文件或目录;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
-i:删除已有文件或目录之前先询问用户;
例如,删除我们刚刚创建的文件testfile
可以使用如下命令:
rm -f testfile
Linux 文件夹操作
Linux 中关于文件夹的操作主要包括创建和删除等。
创建文件夹
Linux 中创建文件夹命令是mkdir
,命令格式如下:
mkdir [命令选项] dirname
常用命令选项:
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
例如:我们新创建一个文件夹testdir
可以使用如下命令。
mkdir testdir
因为新创建的文件夹是一个空的文件夹,所以使用ls -l
显示的结果是空。
删除文件夹
Linux 中删除文件夹的命令是rmdir
或者rm -r
,命令格式如下:
rmdir [命令选项] dirname
常用命令选项:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
例如:将刚刚新创建的文件夹testdir
删除可以使用如下命令。
rmdir testdir
Linux 文件和文件夹拷贝
Linux 使用cp
命令用来将一个或多个源文件或者目录复制到指定的目录中,命令格式如下:
cp [命令选项] 源文件 目的文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理。
例如:新建一个文件newfile
和一个文件夹newdir
,将newfile
复制到newdir
目录下。具体命令如下:
touch newfile
mkdir newdir
cp newfile newdir
Linux 文件和文件夹移动/重命名
Linux 使用mv
命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中,命令格式如下:
mv [命令选项] 源文件 目标文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理。
例如:新建一个文件newfile
和一个文件夹newdir
,将newfile
剪切到newdir
目录下,并重新命名为newfileCpy
。具体命令如下:
touch newfile
mkdir newdir
mv newfile newdir/newfileCpy
编程要求
本关的任务是让用户学会文件操作,具体任务如下:
在当前目录下新建一个新的文件(名称为`newfile`)。
在当前目录下新建一个新的文件夹(名称为`newdir`)。
将`newfile`文件拷贝到`newdir`目录下并命名为`newfileCpy`。
#!/bin/bash
#在以下部分写出完成任务的命令
#*********begin*********#
touch newfile
mkdir newdir
cp newfile newdir/newfileCpy
#********* end *********#
任务描述
恭喜你已经通过了第二关的实训,现在你掌握了 Linux 常用命令的基本使用方法,Linux 中有上千个命令,背命令这条路是相当的坎坷;如果不背的话,那咱们就查命令呗。这时候就要祭奠出命令神器 man
与 info
。
本关你的任务是学会离线在 Linux 系统上查询命令的使用方法。
相关知识
为了完成本关卡,你需要掌握:
- Linux man 命令;
- Linux info 命令;
- Linux whatis 命令。
Linux man 命令
linux 中使用man
命令来查询命令的帮助文件,命令格式如下:
man [章节] command
常用命令如下:
d, Ctrl+D: 向文件尾部翻半屏
u, Ctrl+U: 向文件首部翻半屏
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
命令的帮助文件通常存放在/usr/share/man
目录下。
man
包含9
个章节,章节用数字表示,分别是:
用户命令
系统调用
C库调用
设备文件及特殊文件
配置文件格式
游戏
杂项
管理类的命令
Linux 内核API
如果查询命令的时候不追加章节,则默认从第一个章节开始查询,以此类推,直到找到对应要查询的命令为止。
例如:使用man
命令查询open
命令的使用方法。
man open
如果想查询系统库函数的open
函数的使用方法,则使用如下命令:
man 2 open
使用man
搜索命令
/KEYWORD:
以KEYWORD
指定的字符串为关键字,从当前位置向文件尾部搜索,不区分字符大小写;
n: 下一个
N:上一个
?KEYWORD:
以KEYWORD
指定的字符串为关键字,从当前位置向文件首部搜索,不区分字符大小写;
n: 跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个
Linux info 命令
linux 中使用info
命令来查询命令的帮助文件。info
页面比man page
编写得要更好、更容易理解,也更友好,但man page
使用起来确实要更容易得多。一个man page
只有一页,而info
页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。
命令格式如下:
info [命令参数] command
常用命令参数选项:
-d:添加包含info格式帮助文档的目录;
-f:指定要读取的info格式的帮助文档;
-n:指定首先访问的info帮助文件的节点;
-o:输出被选择的节点内容到指定文件。
常见命令如下:
?键:它就会显示info的常用快捷键。
N键:显示(相对于本节点的)下一节点的文档内容。
P键:显示(相对于本节点的)前一节点的文档内容。
U键:进入当前命令所在的主题。
M键:敲M键后输入命令的名称就可以查看该命令的帮助文档了。
G键:敲G键后输入主题名称,进入该主题。
L键:回到上一个访问的页面。
SPACE键:向前滚动一页。
BACKUP或DEL键:向后滚动一页。
Q:退出info。
例如:我们使用info
来查询info
的帮助手册。
info info
Linux whatis 命令
whatis
用来显示命令的简短描述。
命令格式如下:
whatis command
例如:我们使用whatis
来查询ls
的使用方法。
编程要求
本关的任务是让用户学会查询命令帮助的方法,具体任务如下:
使用man查询C库中的fopen函数使用方法。
#!/bin/bash
#在以下部分写出完成任务的命令
#*********begin*********#
man 3 fopen
#********* end *********#