[关闭]
@yanbo01haomiao 2021-03-28T13:20:41.000000Z 字数 7223 阅读 1370

Linux常用命令的使用

操作系统实验 Linux



实验目的

1. 掌握Linux一般命令格式。
2. 熟练使用man命令。
3. 掌握有关文件和目录操作的常用命令。
4. 学习使用vi编辑器建立、编辑、显示及加工处理文本文件。

实验内容

  1. 正确地登录和退出系统(logout或exit)。
  2. 利用man显示date等命令的手册页。
  3. 在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。
  4. 对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。
  5. 使用vi 建立一个文本文件,并在该文件上移动光标位置,对该文件执行删除、复原、修改、替换等操作。

实验步骤

  1. 通过使用简单命令date, cal, who, echo, clear等,了解Linux命令格式。
  2. 浏览文件系统
    (1) 运行pwd命令,确定当前工作目录。
    (2) 运行ls –l命令,理解各字段含义。
    (3) 运行ls –ai命令,理解各字段含义。
    (4) 使用cd命令,将工作目录改为根目录(/)。运行ls –l命令,了解各目录的作用。
    (5) 直接使用cd,回到哪里了?用pwd验证。
    (6) 用mkdir建立一个子目录subdir。
    (7) 将工作目录改到subdir。
  3. 文件操作
    (1) 验证当前工作目录在subdir。
    (2) 运行date > file1,然后运行cat file1,看到什么信息?
    (3) 运行cat subdir,会有什么结果?为什么?
    (4) 利用man命令显示date命令的使用说明。
    (5) 运行man date >>file1,看到什么?运行cat file1,看到什么?
    (6) 利用ls –l file1,了解链接计数是多少?运行ln file1 ../fa,再运行ls –l file1,看链接计数有无变化?用cat命令显示fa文件内容。
    (7) 显示file1的前10行,后10行。
    (8) 运行cp file1 file2,然后ls –l,看到什么?运行mv file2 file3,然后ls –l,看到什么?运行cat f*,结果怎样?
    (9) 运行rm file3,然后ls –l,结果如何?
    (10) 运行ls –l,理解各文件的权限是什么?
  4. vi 编辑器
    (1) 建立一个文件,如file.c。进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。最后,将该文件存盘。回到shell状态下。
    (2) 运行gcc file.c –o myfile,编译该文件,会发现错误提示。理解其含义。
    (3) 重新进入vi,对该文件进行修改。然后存盘,退出vi。重新编译该文件。如果编译通过了,可以用./myfile运行该程序。
    (4) 运行man date > file10,然后vi file10。使用x,dd等命令删除某些文本行。使用u命令复原此前的情况。

附录 Linux常用命令

一、帮助命令
man命令:显示联机帮助手册
格式:man 命令
如:man ls 显示出ls命令的功能及选项的含义

二、文件与目录的操作
1. cd命令:切换目录
cd tony 切换到当前目录下的tony子目录
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd 切换到用户主目录
cd /usr/bin 切换到/usr/bin目录

  1. ls命令:列出文件列表
    格式:ls [选项]
    选项说明:
    -a 显示所有文件,包括隐藏文件
    -k 显示文件大小,以K为单位
    -d 将根目录作为文件显示
    -s 显示每个文件所用的空间
    -S 指定按所用空间的大小排序文件
    -l 显示文件的详细信息
    在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容,如:
    ls -l /usr/wgh

  2. mkdir命令:在当前目录下创建子目录

  3. rmdir命令:删除空的子目录

  4. cp命令:复制文件
    cp data1.txt data2.txt 将data1.txt复制成data2.txt,相当于重命名
    cp data3.txt /tmp/data 将data3.txt复制到/tmp/data目录中
    cp –v zip.txt zip3.txt 加-v显示复制过程
    cp –v –R * backup 加-R递归复制,
    将当前目录下所有文件(含子目录文件)复制到backup目录下

  5. rm命令:删除文件或目录的命令
    rm file1.txt 删除指定的文件file1.txt
    rm * 删除当前目录下的所有文件
    rm –r dir1 加-r递归删除dir1目录下的所有文件及子目录
    rm –f file2.txt 加-f强迫删除文件file2.txt,即rm命令会直接删除文件,不再询问
    -v 显示删除过程

  6. more命令:让显示画面暂停
    为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停止显示。
    当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。如:
    ls –al more
    单独使用more命令时,可用来显示文字文件的内容。如:
    more data.txt

  7. cat命令:连接文件
    cat(concatenate) 命令可以显示文件的内容(经常和more命令搭配使用),或是将数个文件合并成一个文件。如逐页显示preface.txt的内容:
    cat preface.txt more
    如将preface.txt 附加到outline.txt文件之后:
    cat preface.txt >> outline.txt
    如将new.txt和info.txt合并成readme.txt文件
    cat new.txt info.txt >readme.txt

  8. mv命令:移动或更换文件、目录名称
    mv (move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。如: mv a.txt .. 将a.txt文件移到上层目录
    mv z1.txt z3.txt 将 z1.txt改名成z3.txt

  9. pwd命令:显示当前所在目录

  10. locate命令:查找文件
    locate 命令可用来搜索包含指定条件字符串的文件或目录。如:
    locate zh_CN 列出所有包含“zh_CN”字符串的文件和目录

由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。

  1. grep命令:搜索字符串
    grep 命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。如:
    grep text *.conf 搜索当前目录中扩展名为.conf且包含“text”字符串的文件

  2. 输入、输出重定向命令
    输出重定向命令>和>>:可将某命令的结构输出到文件中。“>”可将结果输出到文件中,该文件原有的内容会被删除;“>>”则将结果附加到文件中,原文件内容不会被清除。如:
    ls –a >dir.txt 将ls –a命令执行结果输出到dir.txt文件
    cat data1.txt >>data2.txt 将data1.txt 内容附加到data2.txt文件之后

输入重定向命令<:将文件的内容作为某命令的输入。如:
sort file2 sort命令从file1中取得输入,输出送到file2

  1. “|”管道命令:将某命令的结果输出给另一命令。如:
    ls | gerp conf 搜索并显示ls命令的运行结果中包含有“conf”的字符串
    cat file1 file2 file3 | sort >/dev/lp cat命令将三个文件合并,并将结果送出到sort命令,按字母表顺序排序,sort的输出又重定向到文件/dev/lp中,这通常是打印机。

  2. chmod命令:修改文件权限
    格式:chmod [选项] 文件或目录名
    选项说明:
    u 文件所有者
    g 文件所属组
    o 其它用户
    a 所有用户

    • 增加权限
    • 取消权限
      = 赋给权限
      r 读权限
      w 写权限
      x 执行权限

    如:chmod a+rw file1
    chmod 755 file2 即file2的保护位为:rwx r-x r-x

  3. chown命令:改变文件所有者
    格式:chown [选项] [用户名][组名] 文件或目录名
    选项说明:
    -c 文件属主改变时显示说明。
    -R/r 改变目录下的文件及其子目录下所有文件的属主。

    如:chown -R bugboy dir 改变 dir 目录下的文件及其子目录下的文件的属主为bugboy

  4. ln命令:在文件间建立链接
    格式:ln [选项] 源文件 目录文件或目录
    格式说明:
    -b 为删除的文件建立备份。
    -d 允许root用户建立硬链接。
    -F 与b相同。
    -f 强行删除目标文件。
    -i 在删除文件时给出提示。
    -n 当目标文件是目录的符号链接时,替代该符号链接。
    -s 用符号链接代替硬链接(建立符号链接)。
    -v 输出被链接文件的文件名。

三、打包、压缩与解压缩
1. tar命令:打包文件
tar命令位于/bin目录中,它能将用户所指定的文件或目录打包成一个文件,不过它并不做压缩。一般Unix上常用的压缩方式是先用tar命令将许多文件打包成一个文件,再以gzip等压缩命令压缩文件

格式:tar [选项]
选项说明:
-c 创建一个新的tar文件
-v 显示运作过程信息
-f 指定文件名称
-z 调用gzip压缩命令执行压缩;
-j 调用bzip2压缩命令执行压缩
-t 查看压缩文件内容
-x 解开tar文件
如:
tar cvf usr.tar /home 把/home目录下包括其子目录全部做备份文件usr.tar
tar czvf usr.tar.gz /home 把/home目录下包括其子目录全部做备份文件,并进行压缩
tar tvf usr.tar | more 查看usr.tar备份文件的内容,并以分屏方式显示
tar xvf file1.tar 解开file1.tar文件
tar zxvf file2.tar.gz 使用-z参数来解开.tar.gz文件
tar jxvf file3.tar.bz2 使用-j参数来解开.tar.bz2文件

  1. gzip、unzip命令
    gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令;可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。

格式:gzip [选项] 压缩(解压缩)的文件名
选项说明:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

如:gzip usr.tar 将usr.tar压缩为usr.tar.gz文件
gzip file1.txt 将file1.txt压缩为file1.txt.gz文件
gzip –dv usr.tar.gz 将压缩文件usr.tar解压,并列出详细的信息

格式:unzip [选项] 压缩文件名.zip
选项说明:
-x 文件列表 解压缩文件,但不包括指定的file文件。
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录 把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同一目录下

如:uzip text.zip 将压缩文件text.zip在当前目录下解压缩

四、编辑命令vi
格式:vi 文件名

  1. 命令模式(默认):可移动光标、删除、移动、复制
    i 当前光标前插入
    a 当前光标后插入
    o 当前光标所在行下插入空行
    I 当前光标所在行上插入空行
    A 插于行首
    O 插于行尾
    x 删除一个字符
    dd 删除光标所在的行

  2. 文本输入模式:进行字符的输入和文件的编辑
    按ESC返回命令模式。
    按ESC后输入“:”,进入末行命令模式(可输入查找命令和退出命令等)

  3. 查找命令
    /string、?string——从光标所在处向后或向前查找相应的字符串的命令。

  4. 退出命令
     先存再退:按ESC键,:w <文件名>
    :q
     存盘退出:按ESC键,:wq
     不存盘退出:按ESC键,:q!
     有修改时才存盘:按ESC键,:x或ZZ

五、其他命令
1. ps命令:查看进程状态
格式:ps [选项]
选项说明:
-e/A 列出所有进程。
-u 选择有效的用户ID。
-p 选择指定终端下的进程。
-C 选择指定的文件名。
-f 列出所有详细信息。
-l 按长格式显示。
-j 按job格式显示。
-x 选择没有控制终端的进程。

  1. who命令:列出所有正在使用系统的用户、所有终端名和注册到系统的时间

  2. passwd命令:修改密码

  3. su命令:改变当前用户的ID

  4. gcc命令:编译命令
    格式:gcc -o <可执行文件名> <源文件名>

  5. 运行可执行程序:
    格式:./可执行程序名
    若无执行(x)权限,需用chmod命令改变文件的保护位。

  6. date命令:显示或设置系统的日期或时间。

  7. cal命令:显示公元1-9999年中任意一年或任意一个月的日历。

  8. echo命令:将命令行中的参数显示到标准输出(即屏幕)上。

  9. clear命令:清除屏幕上的信息。

vi编辑器

vi 编辑器是Linux 系统下的标准编辑器,vi 可以分为三种状态,分别是命令模式(命令行模式)、插入模式(Insert mode)和底行模式(底行模式),各模式的功能区分如下:
 命令行模式(命令行模式):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式。
 插入模式(Insert mode):只有在Insert mode 下,才可以做文字输入,按ESC 键可回到命令行模式。
 底行模式(底行模式):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。
在使用时通常把 vi 简化成两个模式,将底行模式也算入命令行模式。
1、 启动与退出
 启动 vi :在系统提示符号输入vi 及文件名称后,就进入vi 全屏幕编辑画面,例如:$ vi myfile。

注意:进入vi 之后,处于命令行模式,要切换到插入模式才能够输入文字,在命令行模式下按下字母 i 进入插入模式。
 退出 vi 及保存文件:在命令行模式下,按一下冒号:键进入底行模式,例如:
w filename (输入w filename 将文件以指定文件名filename 保存)
wq (输入wq,存盘并退出vi)
q! (输入q!, 不存盘强制退出vi)
2、 命令模式功能键
(1) 插入模式
按 i 进入插入模式后,是从光标当前位置开始输入文字;
按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。
从插入模式切换为命令行模式,按 ESC 键。
(2) 移动光标
vi 可以直接用键盘上的光标来上下左右移动,但正规的vi 是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。
按 ctrl+b:屏幕往后移动一页。
按 ctrl+f:屏幕往前移动一页。
按 ctrl+u:屏幕往后移动半页。
按 ctrl+d:屏幕往前移动半页。
按数字 0:移到文章的开头。
按 G:移动到文章的最后。
按$:移动到光标所在行的行尾。
按^:移动到光标所在行的行首。
按 w:光标跳到下个字的开头。
按 e:光标跳到下个字的字尾。
按 b:光标回到上个字的开头。
按#l:光标移到该行的第#个位置,如:5l,56l。
(3) 删除文字
x:每按一次,删除光标所在位置的"后面"一个字符。
#x:例如,6x 表示删除光标所在位置的"后面"6 个字符。
X:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
#X:例如,20X 表示删除光标所在位置的"前面"20 个字符。
dd:删除光标所在行。#dd:从光标所在行开始删除#行
(4) 复制
yw:将光标所在之处到字尾的字符复制到缓冲区中。
#yw:复制#个字到缓冲区
yy:复制光标所在行到缓冲区。
#yy:例如,6yy 表示拷贝从光标所在的该行"往下数"6 行文字。
p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
(5) 修改
修改文本对象,用新输入的文本代替老的文本。它们等价于用删除命令删除老文本,然后用i命令插入新文本。注意:输入修改命令后,就进入到输入方式。所以输入新文本后,还要按ESC键,才能回到命令方式。
c:替换光标所在处的字符。
(6) 替换
r:替换光标所在处的字符。
R:替换光标所到之处的字符,直到按下ESC 键为止。
u:恢复上一次操作。如果误执行一个命令,可以马上按下u,回到上一个操作。按多次"u"可以执行多次恢复。
cw:更改光标所在处的字到字尾处c#w:例如,c3w 表示更改3个字
3、 底行模式下命令
在使用底行模式之前,先按ESC 键确定已经处于命令行模式下后,再按:冒号即可进入底行模式。
(1) 列出行号 set nu:输入set nu 后,会在文件中的每一行前面列出行号。
(2) 跳到文件中的某一行#:#号表示一个数字,在冒号后输入一个数字,再按回车键跳到该行,如输入数字15,再回车,就会跳到文件的第15 行。
(3) 查找字符
 /关键字:先按 / 键,再输入你想寻找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往后寻找到要的关键字为止。
 ?关键字:先按 ? 键,再输入你想寻找的字符,如果第一次找的关键字不是想要的,可以一直按n 会往前寻找到您要的关键字为止。

思考题

  1. 如何找到用户主目录的绝对路径名?在自己的系统上,用户主目录的绝对路径名是什么?
  2. 将当前工作目录从/home/xxq转到/home/wang需要使用什么命令?
  3. 如何显示当前目录?
  4. 如何在当前目录下建立子目录text?
  5. 如何删除子目录text?
  6. 如何查看当前目录下的内容?
  7. 如何将文件text的权限设定为:text属主可读、可写、可执行,同组用户可读、可执行,其他用户可执行?
  8. 如何将当前目录包括所有子目录全部做备份文件,备份文件名为first.tar?
  9. 如何将目录/home下每一个文件压缩成.gz文件?
  10. 如何把上例中每个压缩的文件解压,并列出详细的信息?
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注