分享

基于Redhat的Linux(完整版)

 hask578 2014-12-30
基于 Redhat 的 Linux(完整版) —— 清华大学电子工程系演示文稿 word 版 Linux 下文件名的最大长度可以是 256 个字符,通常由字母、数字、“.”(点号) 、“_” (下划线)和“-”(减号)组成。文件名中不能含有“/”符号,因为“/”在 Linux 目录 树中表示根目录或路径中的分隔符(如同 DOS 中的“\”) 。 Linux 系统中支持文件名中的通配符,具体如下: 星号(*) :匹配零个或多个字符; 问号(?) :匹配任何一个字符; 按查找文件的起点不同可以分为两种路径:绝对路径和相对路径。从根目录开始的 路径称为绝对路径,从当前所在目录开始的路径称为相对路径,相对路径是随着用 户工作目录的变化而改变的。 与 DOS 相同, 每个目录下都有代表当前目录的“.”文件和代表当前目录父目录的“..”文 件,相对路径名一般就是从“..”开始的。 注意:在 Linux 目录树中,表示根目录或是路径中的分隔符是“/”。 Linux 支持以下文件类型:普通文件、目录文件、设备文件以及符号链接文件。 1.普通文件 包括文本文件、数据文件、可执行的二进制程序等。 2.目录文件 简称目录,Linux 中把目录看成是一种特殊的文件,利用它构成文件系统的分层树 型结构。每个目录文件中至少包括两个文件,“..”表示上一级目录,“.”表示该目录本 身。 3.设备文件 设备文件是一种特别文件,Linux 系统利用它们来标识各个设备驱动器,核心使用 它们与硬件设备通信。有两类特别设备文件:字符设备和块设备。 4.符号链接 一种特殊文件, 它们存放的数据是文件系统中通向某个文件的路径。 当使用符号链接文件时, 系统自动地访问所保存的这个路径 目录 /bin /sbin 解释 存放普通用户可以使用的命令文件。目录 /usr/bin 也可用来贮存用户命令。 一般存放非普通用户使用的命令(有时普通用户也可能会用到) 。目录 /usr/sbin 中也包括了许多系统命令。 系统的配置文件。 系统管理员(root 或超级用户)的主目录。 包括与系统用户直接相关的文件和目录,一些主要的应用程序也保存在该目录下。 /etc /root /usr /hom e /dev 用户主目录的位置,保存了用户文件(用户自己的配置文件,文档,数据等) 。 设备文件。在 Linux 中设备以文件形式表现,从而可以按照操作文件的方式 简便地对设备进行操作。 文件系统挂载点。一般用于安装移动介质、其它文件系统(如 DOS) 的分区、网络共享文件系统或任何可安装文件系统。 包含许多由 /bin 和 /sbin 中的程序使用的共享库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。 包括内核和其它系统启动时使用的文件。 包含一些经常改变的文件。例如假脱机(spool)目录、文件日志目录、 锁文件、临时文件等等。 操作系统的内存映像文件系统,是一个虚拟的文件系统(没有占用磁盘空间) 。 当用户查看它们时,看到的是内存里的信息,这些文件有助于了解系统内部信息。 存放可选择安装的文件和程序。主要由第三方开发者用于安装和卸装他们的软件包。 用户和程序的临时目录,该目录中的文件被系统自动清空。 在系统修复过程中恢复的文件。 /mnt /lib /boot /var /proc /opt /tmp /lost+f ound 进入 Linux 环境时系统将自动启动相应的 shell,shell 是一种命令行解释程序,它提供用户 与操作系统之间的接口。Linux 下默认的 shell 是 bash。 bash 命令的基本格式如下:(Linux 命令的基本格式) 命令名 [选项] [参数 1] [参数 2]… 具体说明如下。 选项是对命令的特别定义, 以“–”开始, 多个选项可用一个“–”连起来, 如命令“ls –l –a” 与“ls –la”作用相同。 一般来说,单字符选项前使用一个减号(–),单词(多字符)选项前使用两个减号(--), 如“ls --help”。 Linux 命令与参数区分大小写,命令名一般由小写的英文字母构成,往往是表示相应功能的 英文单词或单词缩写 命令名、参数和操作参数都作为命令执行时的输入,它们之间用空格分隔开。 Command not Found”,这时需要检查键入命令的拼写及大小写是否正确 使用分号(; )可以将两个命令隔开,这样可以实现在一行中输入多个命令。命令的 执行顺序和输入的顺序相同。 当要输入的命令目录很深或命令中的文件名很长时,只要按一下 “Tab” 键,系统会在可能 的命令或文件名中找到相匹配的项, 自动帮用户补齐。 如果有一个以上的文件符合输入的字 符串,不能补齐时,可以按两下“Tab” 键,系统将把所有符合的文件名列出来。 下面的命令行将显示 cal 命令的手册页: [root@candy /]$ man cal 使用命令 “man man” 会显示出 man 命令本身的使用方法。在所查询的命令后加 --help 参数的方式,也可以显示出命令的参考信息。 一个磁盘设备可以包含一个或多个文件系统;如果用户想进入一个文件系统,首先要 做的是挂载文件系统;为了挂载文件系统,必须指定一个挂载点;一旦文件系统被 挂载,就可以通过一个挂载点或分挂载点进入相应的文件系统。将一个文件系统的 顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该 子目录称为挂载点。挂载点必须是一个目录。一个分区挂载在一个已存在的目录上, 这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系 统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系 统使用的文件系统的格式与 linux 使用的文件系统格式是不一样的。 挂载时使用 mount 命令格式:mount [-参数] [设备名称] [挂载点] Linux 采用的是树形结构,最上层是根目录,其他所有目录都是从根目录出发而生成 的。微软的 DOS 和 Windows 也采用树形结构,但目录树只有一个。 Linux 操作系统几乎支持目前主流的文件系统, (只读) FAT NTFS 、 (可读可写) ext2、 、 ext3、Reiserfs、Swap 交换分区等, 当在 Windows 系统下安装 Linux 时,必须注意硬盘文件系统不能是 NTFS 格式, 而应 该是 FAT/FAT32 格式如果从一个全新的没有任何数据的硬盘上安装 Linux,安装过程 中 Linux 也会对该硬盘以 ext2/ext3 格式进行格式化 Windows 下的文件类型由扩展名 决定,Linux 下的文件类型与文件名和扩展名无关,只与文件属性有关。 pwd 命令用于显示用户所在的位置 “root”表示登录用户名,“localhost”代表计算机名,而其后边“root”表示的是用户当 前目录,最后的字符“#”为命令提示符,默认的命令提示符为“$”。如果使用 root(即 超级用户账号需要更改系统配置)登录系统,则默认的命令提示符为“#”。 cd 命令用于改变当前所处的目录 cd /目录名利用点点(..)向上移动一级目录:cd .. 为了从系统中的任何地方返回到用户主目录,可以使用不带任何参数的 cd 命令。 “.”表示目前所在的目录, “..”表示目前目录位置的上一层目录。root 用户的主目 录是“/root” ,其他一般用户的主目录默认在“/home”下。如果要在最近工作过的 两个目录间切换,可以执行命令“cd –” find 命令用来查找文件和目录的位置。该命令的语法为: find /路径名 [选项] 其中,常用的选项有: -print:显示输出查找到的结果。如果未指定任何选项,则 系统默认是 -print。 -name:按文件名查找。 -size:按文件大小查找。 -user:按文件主查找。 -type:按文件类型查找。 (2) 查找/usr 目录下 10 天访问过的文件(仅第 10 天这一天)。find /usr –atime 10 (3) 查找/usr 目录下前 10 天之前访问过的文件。[root@localhost root]# find /usr – atime +10(4) 查找/usr 目录下前 10 天之后访问过的文件。 [root@localhost root]# find /usr –atime -10 列出当前目录下所有扩展名是“txt”的 文件。[root@localhost root]# find -name "*.txt" [root@localhost root]# find /etc /home –size -100k find 命令可接受的文件尺寸单位有字节(c),块(b,512 字节),K(k,1024 字节) 等。 与通过访问时间查找类似, 如果要查找文件尺寸大于 4K 的文件使用选项 “+4k” 。 locate 是一个使用方便且查询速度极快的文件和目录查找命令。该命令的语法为: locate 文件名或扩展名 [选项] 功能:通过文件名或扩展名搜索文件。 ls 用于查看目录和文件属性。命令的语法格式为: ls [选项] [文件名] ls 命令有多个命令行选项,如: -a:列出所有文件,包括那些以“.”开头的文件; -d:如果后面接的是一个目录,那么使用该参数只输出该目录的名称; -l:使用长格式显示文件条目,包括连接数目、所有者、大小、最后修改时间、权限 等; -t:按文件修改时间进行排序,而不是使用文件名排序; 在 ls 命令中还可以 使用通配符“*”、“?”。结果如下: 提示第一组为文件模式。文件模式中第一位代表文件类型,其余 9 位用于三组不同 用户的三组权限。 在文本模式,Linux 的文件类型由第一组的第一列表示。 ① 为“d”则是目录; ② 为“_”则是文件; ③ 若是“1”则表示为链接文件(link file), Linux 链接文件简单理解类似于 Windows 系统的快捷方式。 ④ 若是“b”则表示为块 设备文件。 ⑤ 若是“c”则表示为字符设备文件。 第二组为连接数。对文件而言, 此数表示该文件在系统中保存的备份数,通常为 1。对目录而言,表示的是该目录 中的子目录数(包括隐藏目录)。 第三组即所有者名。 指出该文件或目录是属于哪个用 户的。第四组即组名。指出该用户所属组名。第五组即文件大小。指出该文件或目 录占有的字节数。第六组即最后修改日期和时间。说明文件最后一次修改或创建的 日期和时间。第七组即文件名。为文件或目录的真实名字。 列出子目录下的所有文件[root@localhost root]# ls -R 列出目录下所有文件或目录的详细信息[root@localhost root]# ls –al head 命令用于查看文件的开头部分。 本命令只限于查看文件的前几行,看不到文 件实际上有多长。按照默认设置,只能阅读文件的前 10 行。如下命令用于查看文 件/etc/vsftpd/vsftpd.conf。 [root@localhost root]# head /etc/vsftpd/vsftpd.conf tail 用于查看文件结尾部分 在默认状态下,tail 命令用于查看文件结尾的 10 行,与 head 命令恰恰相反。该命 令有助于通过查看日志文件的最后 10 行来阅读重要的系统消息, 还可以使用 tail 命 令来观察日志文件被更新的过程。 (1) 即 时 观 察 /var/log/messages 的 变 化 。 [root@localhost root]# tail -f /var/log/messages(2) 显示文件/etc/profile 最后 8 行。 [root@localhost root]# tail –8 etc/profile cat 是“concatenate”的缩写,即合并文件。合并文件或者显示文件的内容该命令可以 显示文件的内容,或者是将多个文件合并成一个文件。 cat 命令的一般语法是: cat [选项] 文件名 [文件名…]该命令运行后,指定文件的内 容就在标准输出(通常是屏幕)上显示出来。如果文件的内容很长,在一个屏幕中 显示不下, 就会出现屏幕滚动, 为了控制滚屏,可以按 <Ctrl+S> 组合键, 停止滚屏; 按 <Ctrl+Q> 可以恢复滚屏。 其中选项及其意义如下: -v:用一种特殊形式显示控 制字符,除去 LFO 与 TAB -n:显示输出行的编号 -b:显示非空输出行的编号 more 命令一般用于要显示的内容会超过一个屏幕的情况下。 其语法是: more [选项] 文件名 [文件名] 按 <Space>键,显示文本的下一屏内容。 ②按 <Enter> 键,只显 示文本的下一行内容。 ③按斜线符(/) ,接着输入一个模式,可以在文本中寻找下 一个相匹配的模式。 ④按 h 键,显示帮助屏,该屏上有相关的帮助信息。 ⑤按 b 键,显示上一屏内容。 ⑥按 q 键,退出 more 命令。 当用 ls 命令查看文件列表 时,如果文件太多,则可配合 more 命令使用。 [root@localhost root]# ls –al |more 符号“|”表示管道,其作用为连接上下两个命令,简单理解就是把上一个命令执行的 结果传送到下一个命令。 grep 命令用来在文本文件中查找指定模式的词或短语, 并在标准输出上显示包括给 定字符串的所有行。grep 命令的语法为: grep [选项] 查找模式 文件名 [文件名…] 默认情况下,grep 在查找模式时是区分大小写的;如果不想区别大小写,可以用选 项 -i。 查找模式可能是唯一的参数,如果在模式中使用了 shell 元字符,通常要使 单引号(’)把它括起来。 grep 除了可以查找固定的字符串,还可以使用较为复杂的匹配模式。要实现复杂的 匹配模式,需要使用如下的表达符号: ① ?:匹配字符串中的一个字符。 ② *: 匹配任意字符。 ③ \*:匹配“*”字符。 ④ \?:匹配“?”字符。 ⑤ \):匹配“)”字符。 搜索 profile 文件中包含字符串“then”的行并输出。 [root@localhost root]# grep then /etc/profile 拷 贝 cp 源文件 目标文件 cp 源文件 1 [源文件 2…] 目标文件 在第一种语法格式 中,源文件被拷贝到目标文件。如果目标文件是目录文件,那么把源文件拷贝到这 个目录中,而文件名保持不变;如果目标文件不是目录文件,那么源文件就拷贝到 该目标文件中,后者原有的内容将被破坏,但文件名不变。 在第二种语法格式中, 所有的源文件都被拷贝到目标文件——该目标文件必须是目录文件,所有源文件的 名字都不变。 cp 命令复制一个文件,而原文件保持不变。如果把一个文件拷贝到 一个已经存在的目标文件中,那么,原目标文件的内容将被破坏。 复制文件/etc/profile 到当前目录。 [root@localhost root]# cp /etc/profile .复制/etc/aep 目录下所有的内容(包括所有子 目录)到当前目录。 [root@localhost root]# cp – R /etc/aep .使用通配符复制 etc 目录 下 mail 开头的所有文件到当前目录。 [root@localhost root]# cp /etc/mail* . touch 命令来创建空文件。其语法如下: touch 文件名 [文件名…]不存在的文件名被当作空文件创建。已存在文件的时 间标签会更新为当前的时间(默认方式) ;它们的数据将原封不动地保留下来。 将当前的文件时间修改为系统的当前时间。[root@localhost root]# touch * 新建文件。[root@localhost root]# touch test -d 2008-02-13 18:10 test 若文件存在, 则修改为系统的当前时间;若文件不存在,则生成一个为当前时间的空文件。 mv 命令用来移动文件或对文件重命名。该命令的语法为:mv 源文件 目标文件 mv 源文件 1 [源文件 2…] 目标文件 在第一种用法中,源文件被移至目标文件后有两种不同的结果:如果目标文件是某 一目录文件的路径,源文件会被移到此目录下,且文件名不变;如果目标文件不是 目录文件,则源文件名会变为此目标文件名,并覆盖已存在的同名文件;在第二种 用法中,所有的源文件都会被移至目标文件,这里的目标文件必须是目录文件。所 有移到该目录下的文件都将保留以前的文件名。如果将一个文件移到一个已经存在 的目标文件,则目标文件的内容将被覆盖!如果源文件和目标文件在同一个目录下, mv 的作用就是重命名文件,例如:mv oldname newname (1) 将 test 文件移动上层目录。[root@localhost root]# mv test2 / (2) 将 profile 改名为 profile.bak。 [root@localhost root]# mv profile profile1.bak 用 rm 命令删除不需要的文件和目录。该命令的语法为: rm [选项] 文件名 1 [文件名 2…]在删除文件之前, 最好再看一下文件的内容, 确 定是否真正要删除。-i 选项:这个选项在使用文件扩展名字符删除多个文件时特别 有用。 此选项会要求用户逐一确定是否要删除文件, 必须输入 y 或 Y, <Enter> 后 按 才能删除文件。如果仅按 <Enter> 键或其他字符,文件不会被删除。-r 选项:可以 删除目录。当一个目录被删除时,所有文件和子目录都将被删除。注意,它是一个 非常危险的命令选项。(1) 删除文件主目录下的 profile 文件。[root@localhost root]# rm profile.bak (2) 删除文件主目录下的 file2 文件时给以提示。 [root@localhost root]# rm –i file2 rm :是否删除一般文件'file2'?(3) 递归删除目录。[root@localhost root]# rm -r aep (4) 强制递归删除目录。 [root@localhost root]# rm –rf aep 不给提示 直接删除 aep 目录下的文件与 aep 目录。 使用 mkdir 命令创建一个目录或多个目录,以便有效地组织自己的文件。其命令的 语法格式为:mkdir [选项] 目录名 [目录名…]同一子目录应包含类似的文件。例如, 应建立一个子目录,包含所有的数据库文件;另一个子目录包含电子表格文件;还 有一个子目录用来保存某项目相关文件。-p 选项:同时创建目录和它的子目录。 mkdir -p 目录名/子目录名(1) 在当前目录下建立新目录 dir1。 [root@localhost root]# mkdir dir1(2) 若当前目录下无 book 目录,在当前目录创建 book/Linux 子目录。 [root@localhost root]# mkdir book/Linux (3)mkdir: 无法创建目录 'book/Linux': No such file or directory[[[root@localhost root]# mkdir –p book/Linux [root@localhost root]# ls [[book text_一次创建多层目录要加-p 参数。 rm 用于删除子目录。 与创建目录类似, 加上-p 参数表示如果删除一个目录后其父目录为空, 则将其父目录一同删除。 (1) 删除目录。 [root@localhost root]# rmdir dir1(2) 删除当前目录 下的 book/Linux 子目录, 如果 book 目录为空, 也删除该目录。 [root@localhost root]# rmdir –p book/Linuxbook 目录不为空则保留 book 目录。 Login [user name] 格式:login [user name] 功能:登陆系统,使用该命令可以以新的 用户账号重新登录系统。 如:离开现在使用的账号,重新登录系统: login Sar 获得关于 CPU 的数据 sar –u 1 3 %user 用户对 CPU 的使用率;%system 系统对 CPU 的使用率;%idle 是 CPU 的闲置率。 1.确定自己的内核版本 uname –a 安装源码[root]#rpm –l 内核包名(解包) 一般只有 root 账号才有权执行此命令。 (1) 立即关机。 [root@localhost root]# shutdown –h now(2) 关闭系统后重启系统。 [root@localhost root]# shutdown -r (3) 系统在 5 分钟后关机,并告诉所有用户。 [root@localhost root]# shutdown –h +5 “The system is going down for shutdown in 5 min” 提示: shutdown 常用的时间参数有 hh:mm 或+m 两种模式。 ① hh:mm 格式表示在几点几分执行 shutdown 命令。 例如“shutdown 10:45”表示将在 10:45 执行 shutdown。 ② +m 表示 m 分钟后执行 shutdown。比较特别的用法是以 now 表示立即执行 shutdown。 查看系统中登录的用户 (1) 查看用户自己的信息。 [root@localhost root]# who -m (2) 显示登录的用户名和数量。 [root@localhost root]# who -q 格式:useradd [options] [user name] 功能:为系统添加用户账号,之后应接着用 passwd 为该账号设定密码。只有 root 用户才能使用该命令。 参数说明: -d 指定该账号的主目录。 -e 指定账号的有效期限。 -g 指定账号所属 的群组。 -m 自动建立账号的主目录。 格式:passwd [options] [user name] 功能:设置用户账号密码,每个用户账号只能设 置本账号的密码,root 用户可以设置任何用户账号的密码。 参数说明:-d 删除密 码,本参数只有 root 用户才能使用。 -k 设置只有在密码过期后方能更新。 -l 锁住 账号,使密码无效,无法登录系统,本参数只有 root 用户才能使用。 -U 列出密码 的相关信息,本参数只有 root 用户才能使用。 -u 解开已经上锁的账号,本参数只 有 root 用户才能使用。 格式: userdel [options] [user name] 功能: 删除用户账号与相关文件及目录, 只有 root 用户才能使用该命令。 参数说明: -r 删除用户主目录及目录中所有文件。 格式:finger [options] [user name] 功能:查找并显示指定账号的用户相关信息,没 有参数的 finger 命令会显示本地主机现在所有用户的登录信息。 参数说明:-l 列出 该用户的账号名称,真实姓名,用户专属目录,登入所用的 Shell,登入时间,转信 地址, 电子邮件状态, 还有计划文件和方案文件内容。-m 排除查找用户的真实姓名。 -s 列出该用户的账号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址 和电话。-p 列出该用户的账号名称,真实姓名,用户专属目录,登入所用的 Shell, 登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。 格式:free [options] 功能:显示内存状态。 参数说明: -b 以 Byte 为单位显示内 存使用情况。 -k 以 KB 为单位显示内存使用情况。 -m 以 MB 为单位显示内存使用 情况。 -s 显示间隔秒数。 -t 显示内存详细信息。 每 10 秒显示一次内存使用情况: free -t 10 –t 以上 free 命令的具体含义解释如下。 (1) 第 2 行 ① total 为内存总数。 ② used 为已经使用的内存数。③ free 为空闲的内存数。 ④ shared 为当前已经废弃不用, 总是 0。 ⑤ buffers 为 Buffer Cache 内存数。 ⑤ cached 为 Page Cache 内存数。 关 系:total = used + free。 (2) 第 3 行 -buffers/cache 的内存数 105836 等于第 1 行 的 used - buffers – cached。 (3) 第 4 行单独针对交换分区 格式:cal [options] [month year] 功能:显示月历,若不加上任何参数,则会显示当 前月份的月历。 参数说明: -j 用恺撒日的形式来显示月历。 -m 显示月历时,把 星期一定为一周的开头。 -y 显示今年所有月份之月历。 显示 1999 年 9 月的月历: cal 9 1999 格式:date [-d strings] [-u] [options] 或者 date [-s strings] [-u] [MMDDhhmmCCYYss] 功能: 显示或设置系统时间与日期。 参数说明: -d 显示字符串所指的日期与时间。 -u 显示 GMT(格林威治标准时间) -s 根据字符串来设置日期与时间。 显示目前系统的日期与时间: date 以完整的英文名称显示目前系统的日期: date +%Y%t%B%d%n%A 显示 7 天前的日期与时间: date -d “7 days ago” 将系统时间设置为 1999 年 12 月 31 日 23 点 59 分: date 123123591999 (只有 root 用户才有此权限) 格式:uname [options] 功能:显示系统信息。 参数说明: -a 显示全部信息。 -m 显示机器类型。 -n 显示在网络上的主机名称。 -r 显示操作系统的发布编号。 -s 显示操作系统名称。 -v 显示操作系统的版本。 范例:显示系统的所有信息: uname -a 格式:logout 功能:退出系统。 直接执行 logout 可退出系统至登录界面: logout 格式:reboot 功能:系统重新启动命令。 格式:halt [options] 功能:关闭系统。 参数说明: -d 不要在 wtmp(登录记录文件)中记录。 -f 强制关闭系统。 -i 在 halt 之前关闭全部的网络界面。 -n halt 前,不用先执行 sync(将内存中的数据写入 硬盘) -p halt 后,执行 poweroff(关闭电源) 关闭系统: halt -p 。 。 格式:su [username] (缺省为 root 用户) 功能:改变当前用户。 若当前用户为 user01,要改变为 user02,则输入命令: su user02 系统提示: password: 此时正确输入 user02 的口令,则当前用户变为 user02。 要进入超级用户(root 用户) ,则直接输入 su 即可。 格式:man command 功能:查询和解释一个命令的使用方法和说明事项。 格式:whatis command 功能:查询某个命令的含义。 查询命令可 mv 的含义: whatis mv 格式:clear 功能:清屏。 格式: [-fhlsuV][用户名称] 功能: w 显示目前登入系统的用户信息。 参数说明: -f 开 启或关闭显示用户从何处登入系统。 -h 不显示各栏位的标题信息列。 -l 使用详细 格式列表,此为预设值。 -s 使用简洁格式列表,不显示用户登入时间,终端机阶 段作业和程序所耗费的 CPU 时间。 -u 忽略执行程序的名称,以及该程序耗费 CPU 时间的信息。 -V 显示版本信息。 格式:exit 功能:退出目前的 shell。 用于显示当前用户名和所属组名。 [root@localhost root]# id 扩展名 bz2 gz tar tbz tgz zip 类型属性 使用 bzip2 压缩的文件 使用 gzip 压缩的文件 使用 tar(tape archive,磁带备份的简写)压缩的文件 用 tar 和 bzip 压缩的文件 用 tar 和 gzip 压缩的文件 使用 zip 压缩的文件,在 MS-DOS 应用程序中常见 格式:bzip2 filename 或 bzip2 filename.bz2 filename1 filename2 directory3 功能:将 文件 filename 压缩并保存为文件 filename.bz2 或将文件 filename1 和文件 filename2 及目录 directory3 压缩并存为文件 filename.bz2。 将文件 file1 和文件 file2 及目录 /home/directory 下的 文件压 缩至文 件 file3.bz2 中: $ bzip2 file3.bz2 file1 file2 /home/directory3 说明: 对应的解压缩命令为 bunzip2, 格式为 bunzip2 filename.bz2。 格式: filaname 或 gzip –r filename.gz file1 file2 directory3 功能: gzip 将文件 filename 压缩并保存为文件 filename.gz 或将文件 file1 和文件 file2 及目录 directory3 压缩并 存为文件 filename.gz。参数说明: r 递归压缩,一直深入到子目录末端。 将文件 file1 和文件 file2 及目录/home/directory 下的文件压缩至文件 file3.gz 中: $ gzip file3.gz file1 file2 /home/directory3 说明:对应的解压缩命令为 gunzip,格式为 gunzip filename.gz。 格式: [options] file or directory 功能: 命令是 Linux 常用的压缩与解压缩类命 tar tar 令,多用于硬盘数据备份,可以对文件和目录进行打包。利用 tar 命令,用户可以 对某一特定文件进行打包(一般用作备份文件), 也可以在包中改变文件, 或者向包中 加入新的文件。 参数说明: c 建立新的备份文件。 C<目的目录> 切换到指定的目录 。 f 当与 c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 x 选项一 起使用时,则解除该选项指定的包。t 显示包括在 tar 文件中的文件列表。v 显示文 件的压缩进度。x 解压。z 使用 gzip 来压缩 tar 文件。j 使用 bzip2 来压缩 tar 文件。 r 新增文件到已存在的备份文件的结尾部分。 例子: 将所有.jpg 的文件打成一个名为 all.tar 的包 。 tar -cf all.tar *.jpg 2.将所有.gif 的文件增加到 all.tar 的包里面去 。 tar $ $ -rf all.tar *.gif 3.解出 all.tar 包中所有文件。$ tar -tf all.tar 4.将所有.jpg 的文件打 成一个 tar 包,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,包名为 all.tar.gz。 $ tar -czf all.tar.gz *.jpg 5.将上面产生的包解开。 $ tar -xzf all.tar.gz 6.将所有.jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名 为 all.tar.bz2 $ tar -cjf all.tar.bz2 *.jpg 7.将上面产生的包解开 。$ tar -xjf all.tar.bz2 格式: ifconfig [network device] [options] 功能: 设置网络设备 (通常是网卡) 的状态, 或是显示目前的设置。常需设置的项目有 IP 地址,子网掩码以及硬件本身的 IRQ 与 I/O 等。 若不加任何参数, 则显示目前正在使用的网络设备的设置。 参数说明: add< 地址> 设置网络设备的 IP 地址。 del<地址> 删除网络设备的 IP 地址。 down 关闭指 定的网络设备。 netmask<子网掩码> 设置网络设备的子网掩码。 up 启动指定的网 络设备。 IP 地址 指定网络设备的 IP 地址。 将第一张网卡的子网掩码设置为 255.255.255.0: ifconfig eth0 netmask 255.255.255.0 将第一张网卡的 IP 地址设为 203.74.205.36: ifconfig eth0 203.74.205.36 格式:ping [options] host name or IP address 功能:ping 命令向指定主机发出 ICMP (Internet Control Message Protocol)包,要求指定主机回应,从而判断本地主机的 网络设备是否正常工作。注意,ping 命令正常执行需要满足三个条件:远端指定主 机可达(若远端主机不可达或远端主机关闭 ping 守护进程,则无法判断本地网络设 备是否正常工作) ;网络畅通;本地主机的网络设备正常工作。参数说明:-c<完成 次数> 设置完成要求回应的次数,若不指定,则 ping 命令会一直运行。 -f 极限检 测。 -i<间隔秒数> 指定收发信息的间隔秒数。 -r 忽略普通的 Routing Table,若远 端主机并非本局域网的一分子,则会传回错误信息。 -R 记录路由过程。 -s<数据包 大小> 设置数据包大小。 -t<.存活时间> 设置存活时间 TTL,范围 1~255。 检测 des.blood.net 主机的网络功能是否正常,要求完成 5 次回应,每次间隔 10 秒,数据 包大小 512bytes: ping -c 5 -i 10 -s 512 -t 64 des.blood.net 格式:netconfig 功能:设置网络环境,netconfig 通过互动式的应答界面,让用户轻 松完成网络环境的设置,包括本地主机名称,域名,IP 地址,子网掩码,网关及域 名服务器。 格式:netconf 功能:设置各项网络功能,netconf 通过互动界面,让用户轻松完成 网络功能的设置,包括用户端的各种网络设置,文件服务器,Web 服务器,域名服 务器,邮件服务器,FTP 服务器等。 格式:netstat [options] 功能:显示网络状态。3 参数说明: -a 显示所有连接中的 Socket。-c 持续列出网络状态。-i 显示网络界面信息表单。-p 显示正在使用 Socket 的进程号和程序名称。 -r 显示 Routing Table。 -t 显示 TCP 传输协议的连线情况。 -u 显示 UDP 传输协议的连线情况。 观察 TCP 传输协议的连线情况: netstat -t 观察网卡传送, 接收数据包情况: netstat -i 查看 Routing Table 的状态: netstat -r 格式:ftp [options] host name or IP address 功能:FTP 让用户得以下载存放在远端主 机的文件,也可以将文件上传至远端主机放置。FTP 使用的命令有很多,大部分与 Linux 命令几乎相同。用 FTP 登录 ftp.des.blood.net 主机,以便下载、上传文件: ftp ftp.des.blood.net 简单地说,进程是一个程序或任务的执行过程。在 Linux 系统中,执行任何一个命 令都会创建一个或多个进程。就是说,命令是通过进程实现的。从进程的角度可以 更好地理解 Linux 操作系统的多任务概念。对于系统管理员来说,管理系统进程是 日常管理的重要部分。 一个正在执行的进程对 Shell(命令解析器)来说可称为一个作 业。一般来说,进程和作业是可互换的。作业控制是 Shell 提供的使用户 一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当 使用了管道和重定向命令。例如,命令“cat /etc/profile|more” 将启动两个进程, 而这两个进程才构成一个作业。 启动一个进程有两个主要途径:手工启动和调度启动。手工启动又分为前台启动和 后台启动。前台启动是最常用的方式,一般用户输入一个命令就已经启动了一个进 程,而且是一个前台的进程。前台启动的一个特点是进程不结束,终端不出现“#” 或“$”提示符,所以用户不能再执行其他的任务。后台启动的一种方法是用户在输入 命令后面加“&”字符,后台进程常用于进程耗时长、用户不着急得到结果的场合。用 户在启动一个后台进程后,终端会出现“#”或“$”提示符,而不必等待进程结束,用 户可以继续执行其他任务。实际上系统启动后已经处于多进程状态。 (1) yes 命 令 前 台 启 动 。 [root@localhost root]# yes(2) yes 命 令 后 台 启 动 。 [root@localhost root]# yes>dev/null& 将一个作业放到后台运行的一种方法是在命令 后面加“&”字符。输入命令以后,出现一个数字,这个数字就是该进程的 PID 格式:ps [options] 功能:显示进程执行状况。 参数说明: -A 显示所有的进程。 -c 显示 CLS 和 PRI 栏位。 e 列出进程时,显示每个进程所使用的环境变量。 -f 显示 UID、PPIP、C 和 STIME 栏位。 -G 列出属于该群组的进程状况。 -l 采用详细的格式 来显示进程状态。 -N 显示所有的进程,除了执行 ps 命令终端机下的进程。 -p 指 定进程号。 r 显示当前终端正在执行中的进程。 -t 指定终端机编号。 u 以用户为 主的格式来显示进程状态。 U 显示属于该用户的进程状态。 x 显示所有进程,不 以终端机来区分。 1 查询用户 oracle 正在运行的进程: ps -U oracle 2 查询第 3 号终端机正在执行的进程: ps -t 3 3 查询进程号为 15873 的进程执行情况: ps -p 15873 4 查询整个系统所有进程的执行情况: ps -aux 格式: nice [options] command 功能: 改变进程执行的优先级。 通常执行某个进程时, 若没有搭配 nice 命令,则其优先级为 0,如搭配 nice 命令却没有设置优先级,则其 优先权为 10。优先级等级的范围从-20~+19,其中+19 最低,-20 最高。只有 root 用户可以设置负数优先级等级。 参数说明: -n 欲设置的优先权等级。 用不同方 式执行同一程序,看看其优先级有何不同: job ← 不搭配 nice 命令。 nice job ← 搭配 nice 命令但不设置优先级。nice -n 19 job ← 设置进程优先级为 19 nice -n -20 job ← 设置进程优先级为-20 ps -l 格式:renice [options] PID 功能:调整进程优先级,其中 PID 是进程号。参数说明: -g 所属群组。 -p 进程号。 -u 用户名。 将进程号为 13575 的进程优先级调整为-10: renice -10 -p 13575 将用户 lian 的进程优先级调整为 6: renice 6 -u lian 格式:kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]功能:通过将指定的 信息编号送给正在执行的进程,从而终止该进程。 参数说明: -l 若不加信息编号, 则列出全部的信息名称及编号, 若加上信息编号,则列出该信息编号的名称。 -s 指 定要送出的信息。 列出所有信息名称: kill -l 终止进程号为 1143 的进程: kill -s 9 1143 格式:top [options] 功能:显示并管理系统中的进程。 参数说明: b 使用批处理 模式,即 top 命令不接受任何热键输入命令。 c 显示每个进程的完整命令,包括命 令名称、路径和参数等相关信息。d 设置 top 监控程序执行状况的间隔时间,以秒 为单位。 i 忽略已成为 Zombie 的进程,即仍然存在但已不可用的进程。 n 设置监 控信息的更新次数。q 若是 root 用户使用这项参数, top 的优先级将是最高等级。 则 通过 top 监控系统的进程执行情况,包括内存、交换文件分区、CPU 使用率等,每 秒更新一次信息,并显示每个进程的完整指令:top d 1 c ext2 支持 undelete(反删除) ,如果您误删除文件,有时是可以恢复的,但操作上比 较麻烦; ext2 支持大文件;ext3 支持大文件;但不支持反删除(undelete)操作; reiserfs 文件系统是一款优秀的文件系统, 支持大文件, 支持反删除 (undelete) Swap ; 是一种专门用于虚拟内存交换分区的文件系统,swap 格式的交换分区是主内存的 2 倍。当我们在某个目录下执行 ls,看到有类似 drwxr-xr-x ,这样的文件就是目录, 目录在 Linux 是一个比较特殊的文件。注意它的第一个字符是 d。创建目录的命令可 以用 mkdir 命令, cp 命令, 可以把一个目录复制为另一个目录。 或 cp 删除用 rm 或 rmdir 命令。 我们看到/dev/tty 的属性是 crw-rw-rw- , 注意前面第一个字符是 c , 这表示字符设 备文件。比如猫等串口设备。我们看到/dev/hda1 的属性是 brw-r----- ,注意前面的 第一个字符是 b,这表示块设备,比如硬盘,光驱等设备。这个种类的文件,是用 mknode 来创建,用 rm 来删除。目前在最新的 Linux 发行版本中,我们一般不用自 己来创建设备文件。因为这些文件是和内核相关联的。当我们查看文件属性时,会 看到有类似 lrwxrwxrwx,注意第一个字符是 l,这类文件是链接文件。是通过 ln -s 源 文件名 新文件名 建立的。上面的例子,表示 setup.log 是 install.log 的软链接文件。 怎么理解呢?这和 Windows 操作系统中的快捷方式有点相似。 vi 共分为 3 种模式,分别是“命令模式”“编辑模式”与“末行模式” 、 。1. 启动 vi 要进入 vi,可以直接在系统提示符下输入 vi 及空格键,然后再输入需要编辑的文件 名,在命令模式下,只要输入 i、I、O、o、a 或 A 等字符,就可以进入编辑模式了。 键盘上除了“ESC”这个按键之外,其他按键一般都当作输入文本看待 如果要保存文件并离开 vi,命令很简单,输入“:wq”即可保存文件并离开 vi FileName 打开文件 FileName,并将光标置于第一行 vi +n FileName 打开文件 FileName,并将光标置于第 n 行首 vi + FileName 打开文件 FileName,并将光标置于 最后一行。 + /pattern File 打开文件 File,并将光标置于其中第一个于 pattern 匹配 vi 的字符串处。vi –r FileName 在上次正用 vi 编辑 FileName 发生系统崩溃后,恢复 FileName。vi File1 … Filen 打开多个文件,依次对之进行编辑。 :n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。 :n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。 :n1,n2 d 将 n1 行到 n2 行之间的内容删除。 :n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中 :n1,n2 w! Command 将文件中 n1 行到 n2 行的内容作为 Command 的输入并执行之, 若不指定 n1、n2,则将整个文件内容作为 Command 的输入。 :r! Command 将命令 Command 的输出结果放到当前行。 :nr 文件> 把文件>插入到第 n 行 :so 文件> 读取文件>,再执行文件里面的命令(文件中的命令应该都是一些 ex 命令) :l1,l2w 文件> 把第 l1 和第 l2 行之间的文本写到文件>中去 :w >> 文件> 添加到文件>末尾. 也可以使用行号 :e! 重新编辑当前文件,忽略所有的修改 ·字符 h 光标左移一个字符。 l 光标右移一个字符。 ·字 w 或 W 光标右移一个字至字首。 B 或 b 光标左移一个字至字首。 E 或 e 光标右移一个字至字尾。 ·句 } 光标移至句尾。 ( 光标移至句首。 ·段 ) 光标移至段落开头。 { 光标移至段落结尾。 shell 就是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行 程序的界面系统级程序, 用户可以用 shell 来启动、 挂起、 停止甚至是编写一些程序。 目前流行的 shell 有 ash、bash、ksh、csh、zsh #echo $SHELL $SHELL 是一个环境变量,它记录用户所使用的 shell 类型。 #sh -name 来转换到别的 shell $exit 可以退出这个子 shell。 bash 是 Linux 系统默认使用的 shell, 它由 Brian Fox 和 Chet Ramey 共同完成, Bourne 是 Again Shell 的缩写,内部命令一共有 40 个。shell 程序必须以下面的行开始(必须放 在文件的第一行) #!/bin/sh : 编辑好的 shell 脚本程序,可以直接用以下方式执行: $sh a.shell 或者先将该脚本文件设置为可执行,然后直接运行该文件。如下所示: $chmod +x a.shell $./a.shell 每一个进程都有三个特殊的文件描述指针:标准输入(standard input,文件描述指针 为 0)、标准输出(standard output,文件描述指针为 1)、标准错误输出(standard error, 文件描述指针为 2)。 在 shell 中,使用者可以利用“>”和“<”来进行输入输出重定向。command >file:将 命令的输出结果重定向到一个文件。 下面的命令将/etc 目录的内容送到文件 a.txt 中,而不是显示在屏幕上: ls /etc >a.txt command >&file:将命令的标准错误输出一起重定向到一个文件。 例如,下面的命 令将命令出错信息(因为命令 cat 写错了)送到文件 aa.txt 中,而不是显示在屏幕上: catt a.txt >&aa.txt command >>file : 将 标 准 输 出 的 结 果 追 加 到 文 件 中 。 command >>&file:将标准输出和标准错误输出的结构都追加到文件中。 下面的命令将在屏幕上显示/etc 目录下所有含 as 字符串的文件: ls /etc|grep as command ; 产生一个前台的进程,下一个命令须等该命令运行结束后才能输入。 command & 产生一个后台的进程,此进程在后台运行的同时,可以输入其他的命令。 shell 在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户 还可以重新定义,常用的 shell 环境变量有: HOME:用于保存注册目录的完全路径 名。 PATH:用于保存用冒号分隔的目录路径名,shell 将按 PATH 变量中给出的顺序 搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。 echo $HOME 显示 HOME 环境变量的值。 TERM:终端的类型。 UID:当前用户的 标识符,取值是由数字构成的字符串。 PWD:当前工作目录的绝对路径名,该变量 的取值随 cd 命令的使用而变化。 PS1:主提示符,在特权用户下,缺省的主提示符是“#”,在普通用户下,缺省的主提 示符是“$”。 PS2:在 shell 接收用户输入命令的过程中,如果用户在输入行的末尾输入 “\”然后回车,或者当用户按回车键时 shell 判断出用户输入的命令没有结束时,显示这 个辅助提示符,提示用户继续输入命令的其余部分,缺省的辅助提示符是“>”。 用户可以按照下面的语法规则定义自己的变量: 变量名=变量值 要注意的一点是,在定义变量时,变量名前不应加符号“$”,在 引用变量的内容时则应在变量名前加“$”;在给变量赋值时,等号两边一定不能留 空格,若变量中本身就包含了空格,则整个字符串都要用双引号括起来,有时候变 量不容易区分,要用花括号括起来。 示例: $ dir=/usr/meng/ff $ echo $dir /usr/meng/ff $ echo dir dir (显示结果) echo $dir 执行时,将变量 dir 的值显示出来; echo dir 执行时,认为 dir 不是变量,而只是一般的字符串常量。 保证一个变量的只读性: readly 变量名 export 命令可以将一局部变量提供给 shell 执行的其他命令使用,其格式为: export 变量名 也可以在给变量赋值的同时使用 export 命令: export 变量名=变量值 使用 export 说明的变量,在 shell 以后运行的所有命令或程序中都可以访问到。 位置参数之间用空格分隔,shell 取第一个位置参数替换脚本程序文件中的$1,第二 个替换$2,依次类推。$0 不是一个位置参数 $vi add.shell #!/bin/sh echo $0 SUM=$[$1+$2] echo $1+$2=$SUM 执行:$sh add.shell 3 4 显示结果:add.shell 3+4=7 shell 预定义变量有: $# 位置参数的数量 $* 所有位置参数的内容 $? 命令执行后返回的状态 $$ 当前 进程的进程号 $! 后台运行的最后一个进程号 $0 当前执行的进程名 “$?”用于 检查上一个命令执行是否正确“$$”变量最常见的用途是用作临时文件的名字以保 证临时文件不会重复。 $vi ex_add.shell #!/bin/sh SUM=0 for INT in $* do SUM=$[$SUM+$INT] done echo $SUM 执行:$ sh ex_add.shell 1 2 3 4 5 显示结果:15 变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用 word 置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于 word 的值。 如果设置了参数,则用 word 置换变量,否则不进行置换 $echo Hello $UNAME Hello $echo Hello ${UNAME-there} Hello there $echo $UNAME (显示结果) 显示为空(UNAME 变量值并未发生变化) $UNAME=hbwork $echo Hello ${UNAME:-there} Hello hbwork 通配符用于模式匹配,如文件名匹配、路经名搜索、字符串查找等。* 代表任何字 符串(长度可以不等) ,例如: “f*”匹配以 f 打头的任意字符串。但应注意,文件名 前的圆点(.)和路经名中的斜线(/)必须显式匹配。例如“*”不能匹配.file,而 “.*”才可以匹配.file。 ? 代表任何单个字符。 〔〕代表指定的一个字符范围,只 要文件名中〔〕位置处的字符在〔〕中指定的范围之内,那么这个文件名就与这个 模式串匹配。方括号中的字符范围可以由直接给出的字符组成,也可以由表示限定 范围的起始字符、终止字符及中间的连字符(-)组成。连字符“-”仅在方括号内有 效,表示字符范围,如在方括号外面就成为普通字符了。而*和?只在方括号外面是 通配符模式串 意义 * 当前目录下所有文件的名称。例如:$echo *将显示当前目录下所有文件的名称。 *Text* 当前目录下所有文件名中包含有 Text 的文件的名称。 [ab-dm]* 当前目录下所有以 a、b、c、d、m 开头的文件的名称。 [ab-dm]? 当前目录下所有以 a、b、c、d、m 开头且后面只跟有一个字符的文件的名称。 /usr/bin/?? 目录/usr/bin 下所有名称为两个字符的文件的名称。 由单引号括起来的字符都作为普通字符出现。由双引号括起来的字符,除$字符、` 字符(反引号,在 Tab 键下方)和\字符仍是特殊字符并保留其特殊功能外,其余字符 仍作为普通字符对待。 shell 命令包含两部分:外部命令和内部命令,外部命令以可执行文件的形式存在, 一般在/bin 目录下,如 ls、kill 等。内部命令在目录列表时是看不见的,它们由 shell 本身提供,如 cd、pwd 等。 命令格式:echo 参数 功能:在屏幕上打印出由参数指定的字符串后换行,字符串用双引号括起来。 参数:-n 不要在最后自动换行 命令格式:eval 参数 功能:当 shell 程序执行到 eval 语句时,shell 读入参数,并将它们组合成一个新的 命令,然后执行。 $eval "echo ls" ls $eval "ls" 列出当前目录的内容。 命令格式:exec 命令 命令参数 功能:当 shell 执行到 exec 语句时,不会去创建新的子进程,而是转去执行指定的 命令,当指定的命令执行完时,该进程(也就是最初的 shell)就终止了,所以 shell 程 序中 exec 后面的语句将不再被执行。 命令格式:readonly 变量名 功能:将一个用户定义的 shell 变量标识为不可变的。不带任何参数的 readonly 命令 将显示出所有只读的 shell 变量。 命令格式:read 变量名表 功能: 从标准输入设备读入一行, 分解成若干字, 赋值给 shell 程序内部定义的变量。 命令格式:shift 功能: shift 语句按如下方式重新命名所有的位置参数变量: 成为$1, 成为$2…… $2 $3 在程序中每使用一次 shift 语句,都使所有的位置参数依次向左移动一个位置,并使 位置参数“$#”减一,直到减到 0。 命令格式:exit [返回值] 功能:退出 shell 程序。在 exit 之后可有选择地指定一个数字作为返回状态。 命令格式:. Shell 程序文件名 功能:使 shell 读入指定的 shell 程序文件并依次执行文件中的所有语句。 命令格式:unset 变量名 功能:取消变量定义。 命令格式:break 功能:控制在条件未满足之前,跳出 for、while、untile 等循环。默认情况下, break 只跳出一层循环。 命令格式:continue 功能:使 for、while、untile 等循环跳到下一次循环继续执行。 直接计算不需要反引号"`"(Tab 键上方),给变量赋值则需反引号,另外运算符两边必 须有空格。 字符串测试: = 等于则为真 != 不相等则为真 -z 字符串;字符串长度为 0 时则为真(空串) -n 字符串;字符串长度不为 0 时则为真(非空串) 示例: 下面的 程序利用 shift 语句求命令行上的整数和: 、 函数定义 程序), 程序)。 常用的是 GNU 的 c 语言编译器 gcc(编译 C 程序 g++(编译 C ++程序 。调试程序的 编译 编译 程序 常用工具: 直接完成, 常用工具:gdb 编译和链接用 gcc 直接完成,若是 c++,则用 g++ , $ gcc –o hello hello.c -o 参数指出编译链接后的可执行文件为 hello, 若无该参数, , 若无该参数, 则会生成缺省可执行文件名 a.out。 -c,只编译,-o output_filename,确定输出文 。 ,只编译, , 件的名称为 output_filename,执行 $ ./hello Hello World. , ./指出可执行文件 hello 的路径, .”指代当前目录,“..”指代当前目录的父目录。 的路径, 指代当前目录, 指代当前目录的父目录 指代当前目录的父目录。 指出可执行文件 “ 调试程序,那么在上一步编译的时候, 选项: 如果要使用 gdb 调试程序,那么在上一步编译的时候,记得加上 –g 选项: $ gcc –g –o hello hello.c 调试环境: 进入 gdb 调试环境:$ gdb hello

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多