- 论坛徽章:
- 0
|
第 4 章 Linux使用基础
4.1 Linux常用命令
Linux系统可以在两种环境下操作:一种是在X Window的桌面环境下操作,它与Microsoft Windows环境下的操作十分相似;另一种是在控制台的字符屏幕下操作,它通过键盘输入命令来实现对系统的操作。
shell是一种命令行解释程序(Command-Language Interpreter),负责用户和操作系统的沟通。
在终端方式的shell 提示窗口如图4.1所示。
4.1.1 进入与退出命令
1.进入系统
Linux是多用户操作系统,它允许多个用户同时使用一台计算机,这是它与Microsoft Windows的最大区别之一,因此Linux有比Microsoft Windows严格得多的
用户管理。
在字符终端界面环境下,终端屏幕上出现如下登录提示行:login:
在它的后面输入自己的登录名。如果是新用户,那么要与系统管理员联系,取得一个合法的登录名。
输入登录名、并按【Enter】键后,在屏幕上出现Password:
要求在其后输入口令。输入的口令字符串并不在屏幕上显示,以利于保密。输入完口令并按【Enter】键后,系统就对登录名和口令进行验证。如果确认无误,则在屏幕上显示若干行信息,最后一行出现:$_
$是一般用户的shell提示符,其后是闪烁的光标条(root用户的提示符是“#”)。
2.退出系统
当完成工作后,需要从系统中退出。退出系统的过程很简单,在$提示符出现后,输logout命令,然后按下【Enter】键或同时按下【Ctrl】和【D】键,屏幕上会再次出现login:
表示已经从系统中退出。如果想再次进入系统,必须重新登录。
4.1.2 系统询问命令
1.询问当前日期和时间的date命令例如$ date 。
2.询问当前用户的who命令
who命令可列出当前每一个处在系统中的用户的登录名、终端名和登录进入时间。
3.显示当前目录路径名的pwd命令
4.1.3 文件操作命令
Linux命令行的一般格式为
命令名[选择项][参数]
1.文件及其分类
Linux的文件通常分为普通文件、目录文件、设备文件和链接文件3类。为了对文件进行保护,Linux系统提供了文件存取控制方式。把所有用户划分为3种身份,依次是文件主(user)、同组用户(group)、其他用户(other)。每种用户对一个文件可拥有读(r)、写(w)和执行(x)的权利。
用字符形式表示上述文件方式,就是rwxr-xr—这9位的顺序是固定的(其中“-”表示对应用户不具备相应权限)。
2.文件显示命令
cat命令用来连接并显示文件。它顺序阅读每一个文件,并将它们在标准输出上输出。如果没有指定输入文件或者只是给定一个连字符(-),则从标准输入上读取。
其语法格式为
cat [-u][-s][-v][-t][-e] 文件名…
例如,
$cat ml.c
则在屏幕上显示出文件ml.c的内容。
$cat file1 file2>file3
3.文件内容比较命令
(1)comm命令
comm命令对两个已经排序的文件进行比较。其语法格式为
comm [-123] file1 file2
(2)diff命令
diff命令比较两个文本文件。其语法格式为
diff [-br][-c|-Cn|-e|-f|-h] file1 file2
(3)cmp命令
cmp命令比较两个文件。其语法格式为
cmp [-l][-s] file1 file2
4.文件的复制、移动和删除命令
(1)cp命令
cp命令的功能是拷贝文件。其语法格式为:
cp [-fip]source_file target_file
cp [-fip]source_file1 source_file2… target
cp -R [-fip]source_file1 source_file2… target
cp -r [-fip]source_file1 source_file2… target
(2)mv命令
mv命令的功能是移动或者重新命名文件
和目录。其语法格式为
mv [-fi] source_file target_file
mv [-fi] source_file… target_directory
(3)rm命令
rm命令的功能的是删除文件或目录。其语法格式为
rm [-firR]file…
5.确定文件类型的file命令
当用户拥有很多文件时,常以自己的登录名为根节点,为自己建立一棵文件子树。其中,一些节点可能是目录文件,而另一些节点可能是信息文件。若用户忘记了哪些名字是目录文件,哪些名字是信息文件,则可用file命令。该命令带有一个参数表,用于给出想了解的某类型的文件名清单。命令执行的结果是在屏幕上显示出各文件的类型。
4.1.4 目录操作命令
1.目录结构
Linux文件系统采用带链接的树形结构。即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有下级的子目录或者文件的信息,……这样一层一层地延伸下去,构成一棵倒置的树。
/bin :显而易见,bin 就是二进制(binary)英文缩写。
/boot :在这个目录下存放的都是系统启动时要用到的程序。在使用grub或lilo引导linux的时候,会用到这里的一些信息。
/dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。
/etc :etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
/sbin :这个目录是用来存放系统管理员的系统管理程序。
/home :如果建立一个用户,用户名是“jl”,那么在/home目录下就有一个对应的/home/jl路径,用来存放用户的主目录。
/lib :lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。
/mnt :这个目录在一般情况下也是空的。可以临时将别的文件系统挂在这个目录下。
/proc :可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。
/root :如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。
/tmp :用来存放不同程序执行时产生的临时文件。
/usr :这是linux系统中占用硬盘空间最大的目录。
文件和目录的路径名可用两种方式表示:绝对路径名(又称全路径名)和相对路径名。
2.目录的创建和删除
(1)mkdir命令
mkdir命令的功能是建立目录。其语法格式为
mkdir [-ep][-m mode] dirname…
(2)rmdir命令
rmdir命令的功能是删除目录。其语法格式为
rmdir [-p][-s] dirname…
rmdir不能删除安装文件系统的根目录。
3.目录的显示和改变工作目录
(1)ls命令
ls命令可打印有关文件和目录的信息。
ls是“list”的简称。
(2)cd命令
cd命令的功能是改变工作目录。其语法格式为
cd [directory]
4. 显示当前目录
显示当前目录的命令是pwd命令,该命令使用的语法格式如下:pwd
执行pwd命令形式如下:#pwd
4.1.5 口令、权限命令
1.修改口令
passwd命令的功能是改变登录或modem(调制解调器)拨号shell口令。其
语法格式为
passwd [-m][-dluf][-n minimum][-x
expiration] [-r retries][name]
passwd –s [-a] [name]
2.改变存取权限
chmod命令的功能是改变文件或目录的存取权限。其语法格式有以下两种。
① 符号方式
chmod [-R] [who] [+|-|=][mode…] file…
② 绝对方式
chmod [-R] mode file…
(3)使用八进制数设置权限
另外,文件和目录的权限还可用八进制数字模式来表示。三个八进制数字分别代表ugo的权限。执行权、写权和读权所对应的数值分别是1,2和4。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
如:chmod 755 mydir(myfile)
3. 改变文件和目录的所有权
命令的格式如下:
chown [选项] 用户 文件和目录列表
命令中的参数说明如下:
�命令中的选择说明如表2-8所示。
�用户:可能是用户号或文件/etc/passwd中出现的用户名。
文件和目录列表:用于重新指定所有权的用空格分隔的文件和目录列表。
表2-8 chown命令的常用选项
常用选项说 明
-c 只有在文件的权限确实改变时才进行详细说明。
-f 不打印权限不能改变的文件的错误信息。
-v 详细说明权限的变化。
-R 递归改变目录及其内容的权限。
4.1.6 文件压缩与联机帮助命令
1. gzip压缩文件
gzip命令是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip命令的使用语法格式如下:
gzip [选项] 压缩(解压缩)的文件名
gzip命令各选项的说明如表2-9所示。
表2-9 gzip命令的常用选项
常用选项说明
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
2. 文件打包tar
tar可以对文件和目录进行打包。利用tar,用户可以对某一特定文件进行打包(一般用作备份文件),也可以在包中改变文件,或者向包中加入新的文件。
tar命令的使用语法格式如下:
tar [主选项+辅选项] 文件或者目录
表2-10 tar命令的主选项的常用选项常用选项说 明
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-x 从档案文件中释放文件。
-r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
表2-11 tar命令的辅助选项的常用选项
常用选项说 明
f 使用档案文件或设备,这个选项通常是必选的。
K 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
z 用gzip来压缩/解压缩文件
2.4.2 联机帮助
1. 显示帮助手册
通常使用者只要在命令man后,输入想要获取的命令的名称(例如ls),man就会列出一份完整的说明,其内容包括命令语法、各选项的意义以及相关命令等。该命令的一般形式为:
man [选项] 命令名称
表2-13 man命令的常用选项
常用选项说 明
-S 根据章节显示,由于一个命令名称可能会有很多类别,其类别说明如表2-14所示。
-f 只显示出命令的功能而不显示其中详细的说明文件
-w 不显示手册页,只显示将被格式化和显示的文件所在位置。
-a 显示所有的手册页,而不是只显示第一个。
-E 在每行的末尾显示$符号
表2-13 man命令的章节常用选项
章节说 明
1 一般使用者的命令
2 系统调用的命令
3 C语言函数库的命令
4 有关驱动程序和系统设备的解释
5 配置文件的解释
6 游戏程序的命令
7 其它的软件或是程序的命令和有关系统维护的命令
4.2 Shell程序设计
Shell是Linux系统中的一个重要的层次,它是用户与系统交互作用的界面。
Shell除了作为命令解释程序以外,还是一种高级程序设计语言。利用Shell程序设计语言可以编写出功能很强、但代码简单的程序。
4.2.1 Shell概述
1.Shell的特点和主要版本
在Linux系统中通常提供多种不同的Shell,常用的有Bourne shell(简称sh)、C-shell(简称csh)、Korn shell(简称ksh)和Bourne Again shell(简称bash)。bash是Linux中一个默认的shell,本节主要介绍bash。
2.Shell程序示例
Shell程序也可存放在文件上,下面是两个shell程序示例。
【例4.1 】 由3条简单命令组成的shell程序(文件名为ex1)。
date
pwd
cd ..
3.Shell过程的建立和执行
称作Shell文件或者Shell脚本(Shell script)。建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或gedit)进行程序录入和编辑加工。
执行Shell过程的方式主要有以下3种。
(1)输入定向到Shell过程
(2)以过程名作为参数
(3)将Shell过程改为可执行文件
4.2.2 Shell变量
Shell有两种变量:环境变量和临时变量。环境变量是永久性变量,其值不会随Shell过程执行结束而消失。而临时变量是在Shell程序内部定义的,其使用范围仅限于定义它的程序,出了本程序就不能再用它;而且当程序执行完毕,它的值也就不存在了。
在shell过程中临时变量又分为两类:用户定义的变量和位置参数。
1.用户定义的变量
定义变量并赋值的一般形式是
变量名=字符串
例如,myfile=/home/lcd/ff/m1.c。
【例4.3 】 用echo命令显示变量值。
$dir=/home/lcd/ff
$echo $ dir
/home/lcd/ff
$echo dir
dir
$
2.输入/输出命令
(1)read命令
可以利用read命令由标准输入读取数据,然后赋给指定的变量。其一般格式是read 变量1[变量2…]
(2)echo命令
在前面例子中已使用过echo命令,它将其后的参数在标准输出上输出。各参数间以空格隔开,以换行符终止。
4.2.3 Shell中的特殊字符
Shell中除使用普通字符外,还使用了一些特殊字符,它们有特定的含义,在使用时应注意它们表示的意义和作用范围。
1.通配符
通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。
2.引号
在Shell中引号分为2种:单引号、双引号。
(1)双引号
由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其特殊功能外,其余字符通常作为普通字符对待。
(2)单引号
由单引号括起来的字符都作为普通字符出现。
3.输入输出重定向符
执行一个Shell命令时通常会自动打开3个标准文件,这就是:标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准出错输出文件(stderr),这两个文件都对应终端的屏幕。
在shell中,这3个文件都可以通过重新定向符进行重新定向。
(1)输入重定向符
输入重定向符“的作用是把命令(或可执行程序)的标准输入重新定向到指定文件。
(2)输出重定向符
输出重定向符“>”的作用是把命令(或可执行程序)的标准输出重定向到指定文件。这样,该命令的输出就不在屏幕上显示,而是写入指定文件中。例如,$who > abc
命令who的输出重新定向到abc文件中,在屏幕上看不到执行who的结果。
4.注释、管道线和后台命令
(1)注释
如前所述,Shell程序中以#开头的正文行表示注释。
(2)管道线
在Linux系统中管道线是由竖杠
(|)隔开的若干个命令组成的序列,例如,ls –l $HOME | wc−l在管道线中,每个命令运行时都有一个独立的进程。前一个命令的输出正是下一个命令的输入。而管道线中有一类命令也称作“过滤器”,过滤器首先读取输入,然后将输入以某种简单方式进行变换(相当于过滤),再将处理结果输出,例如grep、tail、sort和wc等命令就称为过滤器。一个管道线中可以包括多条命令,例如,
ls | grep m?.c | wc –l
打印出当前目录文件名是以m打头、后随一个字符的所有C文件的数目。
(3)后台命令
通常,在主提示符之后输入的命令都立即得到执行。在执行过程中,用户和系统可以发生交互作用—用户输入数据,系统进行处理,并输出运行结果。这种工作方式就是前台方式。
但是有些程序的运行要花费较长时间,如调用C编译对C程序进行编译。如果想在编译的同时做别的事情,那么就输入命令
$cc m1.c&
即在一条命令的最后输入“&”符号,Shell就在后台启动该程序,并且马上显示主提示符,提醒输入新的命令。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86601/showart_1854508.html |
|