当前位置:   article > 正文

实验一 Linux 简介,Shell 基本命令,vim 编辑 器、gcc 编译器 和 gdb 调试器的基本使用_linux常用shell命令使用及文本编辑方法实验总结

linux常用shell命令使用及文本编辑方法实验总结
1. 了解如何使用 Linux; 
2. 熟悉 Linux 文件目录结构 
3. 了解 Linux Shell 的基本用法及命令使用格式; 
4. 掌握 Linux 常用基本命令如:pwd、ls、cd、mkdir、rmdir、cp、rm、mv、sudo、man 等命令; 
5. 掌握 vim 编辑器的基本用法。 
6. 掌握使用 gcc 编译程序,运行程序的基本方法。 
7. 了解使用 gdb 调试器,调试程序的基本方法。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
一、 Linux 的登录与退出
1.登录

​ Linux 是一个多用户操作系统,可以有多个用户同时使用一台计算机,运行各自的应用程序。为了区分 各个用户,每个用户都拥有自己独立的用户帐号。用户在使用 Linux 时以各自的用户名登录。登录提示为 login:

在 bash shell 下”#”为 root 用户的命令行提示符,”$”为一般用户的命令行提示符。

login: (输入用户名)

password: (输入密码)

从 shell 登录时,不显示输入的密码位数(不回显*)。

2.退出

在 Linux 系统提示符下$下,输入 logout、exit 可以退出系统。

例:$logout

\3. 关闭系统 关机一般由 root 用户执行,或普通用户使用 sudo 提权后执行。关机的命令:

halt 或 shutdown –h now 或 poweroff 或 init 0

二、 Linux 系统常用命令格式:

command [option] [argument1] [argument2] …

其中 option 以“-”开始,多个 option 可用一个“-”连起来,如“ls -l -a” 与“ls -la”的效果是一样的。 根据命令的不同,参数分为可选的或必须的;所有的命令默认从标准输入接受输入,输出结果默认显示在 4 标准输出,而错误信息则默认显示在标准错误输出设备。可使用重定向功能对这些设备进行重定向。 命令在正常执行结果后返回一个 0 值,如果命令出错或未完全完成,则返回一个非零值(在 shell 中可用 变量$?查看)。 在 shell script 中可用此返回值作为控制逻辑的一部分。

三、 Linux 常用命令:
1.帮助命令:

(1).man 获取相关命令的帮助信息

eg:man dir 可以获取关于 dir 的使用信息。

(2).info 获取相关命令的详细使用方法

eg:info info 可以获取如何使用 info 的详细信息。

注:按 q 键或者 ctrl+c 退出,在 linux 下可以使用 ctrl+c 终止当前程序运行

2.文件操作:

(1).cat 和 more:

显示文件内容和合并多个文件

两个命令所不同的是:cat 把文件内容一直打印出来,而 more 则分屏显示。

eg:cat > 1.c //就可以把代码粘帖到 1.c 文件里,按 ctrl+d 保存代码。

cat 1.c 或 more 1.c //都可以查看里面的内容,与 DOS 的 type 命令同

(2).clear 清屏

clear:清屏,相当于 Windows cmd 下的 cls

(3).cp 拷贝文件

cp source target 将文件 source 复制为 target

eg:

cp 1.c netseek/2.c  //将 1.c 拷到 netseek 目录下并重命名为 2.c

cp –av source_dir target_dir 将整个目录复制,两目录完全一样

cp –fr source_dir target_dir 将整个目录复制,并且是以非链接方式复制,当source 目录带有符号链接时,两个目录不相同
  • 1
  • 2
  • 3
  • 4
  • 5

(4).diff 比较两个文本文件,列出行不同之处

diff file1 file2 比较文件 1 与文件 2 的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的。

(5).grep 文本内容搜索

grep test *file 
  • 1

在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件

grep test file*
  • 1

在当前目录中,查找前缀带有file字样的文件中包含test字符串的文件

eg: grep success 查找当前目录下面所有文件里面含有 success 字符的文件

(6).rm 删除文件

rm file 删除某个文件

eg: rm 1.c //将 1.c 这个文件删除

(7). find 查找文件

find -name /path file 在/path 目录下查找看是否有文件 file

语法格式:find [路径] [参数]

-user匹配所有者
-group匹配所有组
-size匹配文件的大小
-name匹配名称

通过查看目录可以看到tmp1目录下有unique文件,通过下列命令进行查询

find ./tmp1 -name unique
  • 1

在这里插入图片描述

(8).mv 文件或目录的移动或更名

mv source target 将文件或者目录 source 更名为 target

mv filename1 filename2 //将 filename1 改名为 filename2

mv qib.tgz ../qib.tgz //移到上一级目录

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(9). chmod 改变文件或目录的权限

chmod 一位 8 进制数 filename

eg:

chmod u+x filenmame //只想给自己运行,别人只能读

chmod u+wxr filename //自己可以读写运行

chmod g+wxr filename //组内成员可以读写运行

chmod o+wxr filename//其他人可以读写运行
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

//u 表示文件主人, g 表示文件文件所在组. o 表示其他人;r 表可读,w 表可写,x 表可以运行

3.目录操作命令:

(1). ls 查看目录或者文件的属,列举出任一目录下面的文件,相当于 DOS 中的 dir 命令。

ls 以默认方式显示当前目录文件列表

ls-a 显示所有文件包括隐藏文件

ls-l 显示文件属性,包括大小,日期,符号连接,是否可读(r)可写(w)及是否可执行(x)
  • 1
  • 2
  • 3
  • 4
  • 5

(ps:其中ls -l 查看的时候,第一位代表文件类型,中间三位代表文件主人的权限,中间三位表示文件所在组成员的权限,后三位代表其他人的权限,如下:)

在这里插入图片描述

拓展:

  1. 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x—的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限
  2. 第二列表示链接数,表示有多少个文件链接到inode号码。
  3. 第三列表示拥有者
  4. 第四列表示所属群组
  5. 第五列表示文档容量大小,单位字节
  6. 第六列表示文档最后修改时间,注意不是文档的创建时间哦
  7. 第七列表示文档名称。以点(.)开头的是隐藏文档

(2). cd 命令: 改变当前目录 pwd 查看当前所在目录完整路径

cd dir 切换到当前目录下的 dir 目录

cd .. 切换到上一级目录

cd~ 退出当前目录,切换到用户目录, 比如是 root 用户,则切换到/root 下

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(3).mkdir 创建目录

eg:

mkdir netseek //创建 netseek 这个目录
  • 1

(4). rmdir 删除目录 //使用该命令要确保目录下已无任何文件

rm -rf dir 删除当前目录下叫 dir 的整个目录
  • 1
-i删除前会询问用户是否操作
-r/R递归删除
-v显示指令的详细执行过程
-f强制删除(不二次询问)

(5). diff 比较目录

diff dir1 dir2 比较目录 1 与目录 2 的文件列表是否相同,但不比较文件的实际内容,不同则列出。

(6). pwd 显示当前工作目录

(7). fdisk /dev/hda 就像执行了 dos 的 fdisk 一样

在这里插入图片描述

8). mount/umount 加载文件系统/卸载文件系统

mount [参数] 要加载的设备载入点

mount -t ext2 /dev/hda1 /mnt 把/dev/hda1 装载到 /mnt 目录

cd /mnt/cdrom 进入光盘目录

umount /mnt 将/mnt 目录卸载,/mnt 目录必须处于空闲状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
4.系统操作命令:

(1). alias 设置别名

在这里插入图片描述

(2). date 显示或设置系统时间与日期

(3). passwd 可以设置口令

(4). finger 查找并显示用户信息

eg:

 finger //查看所用用户的使用资料

finger root //查看 root 的资料
  • 1
  • 2
  • 3

(5). who,whoami,whereis,which,id

who 列出正在使用系统的用户

whoami 确认自己身份.

whereis 查询命令所在目录以及帮助文档所在目录.

which 查询该命令所在目录(类似 whereis)

id 打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的 UID 和 GID)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

eg:

whoami //显示你自已登陆的用户名

whereis bin //显示 bin 所在的目录, 将显示为:/usr/local/bin

which bin //显示 bin 所在的目录, 将显示为:/usr/local/bin
  • 1
  • 2
  • 3
  • 4
  • 5

(6). su 用户名 切换到另一个指定用户

(7). reboot 重启计算机

5.压缩与备份

(1).tar 解压命令

eg1:

 tar xfzv file.tgz 将文件 file.tgz 解压
  • 1

(2).gzip/gunzip .gz 文件的压缩/解压缩程序

gzip directory.tar 将覆盖原文件生成压缩的 directory.tar.gz

gunzip directory.tar.gz 覆盖原文件解压生成不压缩的 directory.tar。
  • 1
  • 2
  • 3

四、文本编辑器 vi 的使用

进入 vim 的命令:

vim file 打开或新建编辑文件 file,并将光标置于第一行首

vim –r file 在上次正用 vim 编辑时发生系统崩溃,恢复 file

vim file1….file 打开多个文件,依次进行编辑
  • 1
  • 2
  • 3
  • 4
  • 5

vim 分为编辑状态和命令状态。输入命令要先按 ESC,退出编辑状态,然后输入命令。

常用行方式命令:

:e file 打开文件 file 进行编辑

:w 保存当前文件

:w! 不询问方式写入文件

:x 保存当前文件并退出

:x! 退出不保存当前文件

:q 退出 vim

:q! 不保存文件并退出

:r file 读文件 file

:r! command 将命令 command 的输出结果放到当前行

:!command 执行 shell 命令 command

i 进入编辑插入状态

ESC 退出编辑状态
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
五、gcc 编译器的基本使用

\1. 阅读在线帮助命令 man gcc 的内容,了解 gcc 的基本使用

\2. gcc 简介

Unix 上使用的 C 语言编译器 cc,在 Linux 上的派生就是 gcc。在使用 vi 编写完源程序之后,返回到 shell下面,使用 gcc 对源程序进行编译的命令是:

gcc 源文件

其中,“源文件”即为我们编写的以.c 为扩展名的 C 语言源代码文件。

如果源代码没有语法错误,使用以上命令编译,会在当前目录下生成一个名为 a.out 的可执行文件。

如果源代码有语法错误,则不会生成任何文件,gcc 编译器会在 shell 中提示你错误的位置和类型。根据错误提示,继续使用 vim 编辑器对代码进行修改、保存后,再次尝试编译,直至编译成功。

也可以使用以下方法编译源代码文件,生成自命名的可执行文件:

gcc 源文件 –o 自命名的文件名
  • 1

执行当前目录下的编译生成的可执行文件,使用以下格式:

./可执行文件名

当使用 gcc 编译生成的程序运行出错的时候,源代码中存在语义错误,这时候可以使用

“printf+getchar”调试法,或者使用 gdb 调试器来对程序进行调试。

六、gdb 调试器的基本使用

\1. 阅读在线帮助命令 man gdb 的内容,了解 gdb 的基本使用

\2. gdb 简介

Linux 包含了一个叫 gdb 的 GNU 调试程序。 gdb 是一个用来调试 C 和 C++ 程序的强力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。以下是 gdb 所提供的一些功能:

l 能监视你程序中变量的值

l 能设置断点以使程序在指定的代码行上停止执行。

l 能一行行的执行你的代码。

在命令行上键入 gdb 并按回车键就可以运行 gdb 了,如果一切正常的话,gdb 将被启动并且你将在 屏幕上看到类似的内容:

在这里插入图片描述

当启动 gdb 后,能在命令行上指定很多的选项。你也可以以下面的方式来运行 gdb:

gdb <fname>
  • 1

​ 当你用这种方式运行 gdb ,就能直接指定想要调试的程序。这将告诉 gdb 装入名为 fname 的可执行文件。你也可以用 gdb 去检查一个因程序异常终止而产生的 core 文件, 或者与一个正在运行的程序相 连。你可以参考 gdb 指南页或在命令行上键入 gdb -h 得到一个有关这些选项的说明的简单列表。

​ 为调试编译代码(Compiling Code for Debugging)。为了使 gdb 正常工作, 你必须使你的程序在编译时包含调试信息。调试信息包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb 利用这些信息使源代码和机器码相关联。在编译时用 -g 选项打开调试选项。

​ gdb 支持很多的命令使你能实现不同的功能。这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令,下表列出了你在用 gdb 调试时会用到的一些命令。想了解 gdb 的详细使用请参考 gdb的指南页(man gdb)。

基本 gdb 命令的功能描述如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3bbH1moe-1666707741775)(file:///C:/Users/李福临/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)]

个因程序异常终止而产生的 core 文件, 或者与一个正在运行的程序相 连。你可以参考 gdb 指南页或在命令行上键入 gdb -h 得到一个有关这些选项的说明的简单列表。

​ 为调试编译代码(Compiling Code for Debugging)。为了使 gdb 正常工作, 你必须使你的程序在编译时包含调试信息。调试信息包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb 利用这些信息使源代码和机器码相关联。在编译时用 -g 选项打开调试选项。

​ gdb 支持很多的命令使你能实现不同的功能。这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令,下表列出了你在用 gdb 调试时会用到的一些命令。想了解 gdb 的详细使用请参考 gdb的指南页(man gdb)。

基本 gdb 命令的功能描述如下:

在这里插入图片描述

​ gdb 支持很多与 Linux shell 程序一样的命令编辑特征。你能象在 bash 或 tcsh 里那样按 Tab 键让gdb 帮你补齐一个唯一的命令,如果不唯一的话 gdb 会列出所有匹配的命令。你也能用光标键上下翻动历史命令。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/812004
推荐阅读
相关标签
  

闽ICP备14008679号