实验目的:
LINUX操作系统提供了图形用户界面和命令行界面,本实验主要熟悉命令行界面,为后续的实验编程做准备。
二、实验内容:
写出每个命令的功能及格式
1、有关目录和文件操作的命令
1.1cat
功能:
1.一次显示整个文件。
$ cat filename
2.从键盘创建一个文件。
$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。
$cat file1 file2 > file
格式:
cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 –show-nonprinting
1.2cd
功能:
主要用于 Unix、Linux 和 macOS 等操作系统中,用于改变当前工作目录。该命令支持绝对路径和相对路径两种形式。若未指定目录名称,cd 命令默认将工作目录切换至用户的主目录(即用户登录时的初始目录)。
格式:
基本格式是 cd [目录]。
- 如果不指定目录,它通常会切换到用户的主目录。
- 可以使用绝对或相对路径。
1.3chmod
功能:用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。
格式:
- 必要参数
-c 当发生改变时,报告处理信息
-f 错误信息不输出
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细处理信息
- 选择参数
–reference=<目录或者文件> 设置成具有指定目录或者文件具有相同的权限
–version 显示版本信息<权限范围>+<权限设置> 使权限范围内的目录或者文件具有指定的权限<权限范围>-<权限设置> 删除权限范围的目录或者文件的指定权限<权限范围>=<权限设置> 设置权限范围内的目录或者文件的权限为指定的值权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
- 权限代号
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限
两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
(1).文字设定法: chmod [who] [+ | - | =] [mode] 文件名
(2).数字设定法 我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
1.4cp
功能: 复制文件或目录。cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
格式: cp [选项] source dest。即复制 source 文件到 dest。
- 参数:
-a 相当于 -d、-p、-r 选项的集合
-r 递归复制整个文件夹
-i 若目标文件已经存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性,比如:源文件的权限、所有者和时间戳信息
-d 源文件为软连接,复制时也为软链接(对硬链接无效)。软连接接相当于 Windows 系统中的快捷方式。
-l 对源文件建立硬链接,而非复制文件
-s 对源文件建立软链接,而非复制文件
-b 覆盖已存在的目标文件前将目标文件进行备份
-v 详细显示 cp 命令执行的操作过程
-f 强制复制,即使目标文件已存在也会覆盖,而且不给出提示
1.5ln
功能:
为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
格式:
- 参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
1.6ls
功能:
是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。
格式: ls [选项] [目录名]
- 参数:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开
1.7pwd
功能:
显示用户当前工作目录的完整路径。这是一个常用的命令,帮助用户确定他们目前所在的目录位置。
格式:pwd [选项]
-L(逻辑):打印出逻辑工作目录的名称,即包含符号链接的路径。
-P(物理):显示不包含符号链接的物理路径,即实际路径。
-help : 显示帮助并退出
–version : 输出版本信息并退出
- 有关状态信息查询的命令
2.1date
功能:显示和设置系统的日期和时间。它可以显示当前的日期和时间,也可以根据指定的格式来输出日期和时间信息。
格式:date [选项] [+格式]
- 常用的 date 命令选项的说明:
-d:指定要显示的日期和时间,可以是具体的日期和时间字符串,也可以是表示时间间隔的字符串。
-u:显示协调世界时(UTC)。
-R:以 RFC 2822 格式输出日期和时间。
-I:以 ISO 8601 格式输出日期和时间。
-s:设置系统的日期和时间。
-r:显示指定文件的最后修改时间。
--help:显示帮助信息,列出可用的选项和参数。
- date 命令格式的说明:
%Y:四位数的年份。
%m:两位数的月份(01-12)。
%d:两位数的日期(01-31)。
%H:两位数的小时(00-23)。
%M:两位数的分钟(00-59)。
%S:两位数的秒数(00-59)。
%A:完整的星期几名称(例如:Sunday)。
%a:缩写的星期几名称(例如:Sun)。
%B:完整的月份名称(例如:January)。
%b:缩写的月份名称(例如:Jan)。
2.2df
功能:显示有关每个 指定FILE 所在的文件系统的信息,或者默认显示所有文件系统的信息。
格式:df [选项]... [文件]...
- 参数:
-a或--all 显示所有系统,包括虚拟(伪)、重定向、不可访问的文件系统
-B[=]SIZE或--block-size=SIZE
按 SIZE指定的单位来打印大小信息
SIZE 包括一个整数和可选单位K、M、G、T、P、E、Z、Y(1024 的幂)或 KB、MB、...(1000 的幂)。
例如:
-BM 以1024*1024 = 1,048,576 字节为单位来打印
-B10M 是以 10*1024*1024 = 10,485,760 字节为单位来打印
--direc 显示文件而不是挂载点统计信息
--total 追加显示统计信息
-h或--human-readable 以人类可读格式打印尺寸(例如,1K 234M 2G)
-H或--si 使用 1000 的幂而不是 1024 的幂
-i或--inodes 列出 索引节点 信息而不是块使用情况。
-k 类似--block-size=1K
-l或--local 只显示本地文件系统
--no-sync 在获取使用情况信息之前不调用同步(默认)
--output[=FIELD_LIST] 使用FIELD_LIST定义的输出格式,如果省略FIELD_LIST则打印所有字段。
-P或--portability 使用 POSIX 输出格式
--sync 在获取使用情况信息之前调用同步
-t[=]TYPE或--type[=]TYPE 显示TYPE 指定类型的文件系统信息
-T或--print-type 打印文件系统类型
-x=TYPE或--exclude-type=TYPE 显示非指定 TYPE 类型的文件系统信息
-v (忽略)
--help 显示此帮助并退出
--version 输出版本信息并退出
2.3file
功能:用来探测给定文件的类型;file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程
格式:file (选项) (参数)
- 参数:
-b 只显示文件格式以及编码,不显示文件名称
- i
输出文件的类型字符串
text/plain 普通文本
text/html HTML文本
application/pdf PDF文档
application/msword Word文档
image/png PNG图片
mage/jpeg JPEG图片
application/x-tar TAR文件
application/x-gzip GZIP文件
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 使用-L选项来查看软链接文件,则查看的是软链接指向的目标文件的信息
-F 设置输出分隔符
-f 指定一个文本文件,file 就会去逐个查看每一个文件的类型信息(里面必须有文件没有文件会吧内容列出来并且报错)
-z 尝试去解读压缩文件的内容(只支持对 gzip 包内部文件的窥探;不支持 tar、tar.gz、tar.bz2 和 bz2 )
2.4kill
功能:杀死(结束)进程。Linux系统中如需结束某个进程,既可以使用如service或systemctl这样的管理命令来结束服务,也可以使用kill命令直接结束进程信息。
格式:kill 参数 进程号
- 参数:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
2.5nice
功能:用于调整进程的优先级,帮助系统资源的合理分配。
格式:nice [选项] [命令 [参数]...]
- 参数:
-g PGID 匹配进程组ID,有些nice版本不支持本选项
-n N/--adjustment=N 将优先级调整为N,-20≤ N ≤19,默认为10
-p PID 匹配进程ID(PID)有些nice版本不支持本选项
-u UID 匹配用户ID(UID)有些nice版本不支持本选项
--help 显示此帮助并退出
--version 输出版本信息并退出
2.6ps
功能:是 Process Status 的缩写,是一个命令行实用程序,用于显示或查看与Linux系统中运行的进程相关的信息。
命令原理:ps 是通过读取虚拟文件:/proc 拿到进程数据的,不需要给 ps 设置任何的权限就可以运行。
格式:
- 参数:
a :选择所有进程(BSD-Style)。
-A :选择所有进程,与 -e 等同(标准格式)。
-a :选择除 session 领导者和没有与终端关联的进程之外的所有进程。
-d :选择除了 session leader 的所有进程。
--deselect :选择除满足指定条件之外的所有进程,即反选,与 -N 等同。
-e :选择所有进程,与 -A 等同。
-N :与 --deselect 等同。
T :选择与该终端关联的所有进程,和不带参数的 t 选项等同。
r :仅选择运行中的进程。
x :与 a 一起配合使用。
三、实验结果:
每个命令运行结果的截图(每个命令至少1个 )
1、有关目录和文件操作的命令
1.1cat
(1)显示出test1.txt中的内容
(2)给所有行编号
1.2cd
(1)切换目录
- 返回上一级目录
1.3chmod
1.4cp
1.5ln
1.6ls
1.7pwd
2、有关状态信息查询的命令
2.1date
2.2df
2.3file
2.4kill
1)SIGHUP信号用于断开进程与父进程的连接,这也可以用于重新启动进程,这对于内存泄漏的守护程序很有用。终端断线
用途:当控制终端(通常是终端会话)结束或挂起时发送。常用于通知守护进程(daemon)重新读取配置文件。
2)SIGINT: 该信号与按Ctrl+C相同,在某些系统上delete + break会向进程发送相同的信号,该进程被中断并停止,但是该进程自身可以忽略此信号。
用途:当用户按下中断键(通常是Ctrl+C)时发送。用于中断前台进程。
3)SIGQUIT: 这类似于SIGINT,但由于QUIT字符通常是由Ctrl+\来控制,进程在收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。 退出(同 Ctrl + \)
用途:与SIGINT类似,但会产生核心转储(core dump)。常用于调试。
4)SIGILL: 当一个进程执行一个错误的、禁止的或未知的功能时,系统向该进程发送SIGILL信号,这是代表非法操作的信号。
用途:当进程执行了非法或未知的指令时发送。用于指示进程中的指令错误。
5)SIGTRAP: 此信号用于调试目的,当某个进程执行了某个操作或满足了调试器正在等待的条件时,此信号将被发送到该进程。
用途:常用于调试器,当遇到断点(breakpoint)时暂停进程。
6)SIGABRT: 该终止信号是中止信号,通常进程会在自身上发出此终止信号。
用途:当程序调用abort()函数时发送。用于程序自我终止并可能产生核心转储。
7)SIGBUS: 当一个进程被发送SIGBUS信号时,是因为该进程导致了一个总线错误,通常这些总线错误是由于进程试图使用假物理地址或进程的内存对齐设置不正确造成的。
用途:模拟指令异常,较少使用。
8)SIGFPE: 被零除的进程使用SIGFPE终止。
用途:当发生浮点错误(如除以零)时发送。用于指示浮点运算中的错误。
9)SIGKILL: SIGKILL这是一个强制终止信号,进程不能忽略它。当 SIGTERM 信号无效或需要立即终止进程时,可以使用此信号。。强制终止
用途:强制终止进程。该信号不能被进程忽略或捕获,常用于强制结束无法响应的进程。
10)SIGUSR1: 这表示用户定义的条件,用户可以通过在sigusr1.c中编程命令来设置此信号。
用途:当进程访问了无效的内存地址或发生了其他总线错误时发送。
11)SIGSEGV: 当应用程序有分段冲突时,这个信号被发送到进程。
用途:当进程访问了无效的内存地址时发送,也称为段错误。
SIGUSR2: 这表示用户定义的条件。
用途:当进程执行了非法的系统调用时发送。
SIGPIPE: 当进程尝试写入缺少与读取器连接的一端的管道时,此信号将发送到进程,读取器是在管道末端读取数据的过程。
用途:当进程向没有读者的管道写数据时发送。通常用于指示管道问题。
SIGALRM: 当实时或时钟计时器到期时,将发送SIGALRM。:通常用于实现定时器或超时功能。
用途:定时器到期时发送。常用于实现定时器或超时功能。
SIGTERM:这是 kill 命令的默认信号。它会请求进程优雅地终止,允许进程在退出前执行清理操作。进程可以选择忽略这个信号,但大多数进程会响应并正常退出。
用途:请求进程终止。默认的信号,进程可以捕获该信号并执行清理操作后退出。