资源描述
第一讲:Linux基本系统由哪几部分组成?Linux内核的功能是什么?
P6
第四讲:
一、
1.设temp是一个非空目录,说明下面3个命令的执行结果:
rm –r temp (删除整个非空目录,有提示是否删去目录下文件)
rm –r temp/* (只是删除非空目录子文件,有提示)
rmdir temp (只能删除空目录,当前目录不为空,执行失败)
2.给出命令,将主目录下的.profile文件复制到主目录下的backup目录下,如果目标文件已存在,提示用户是否覆盖。
ls -a(显示所有文件,包括隐藏文件)
pwd
cd ~(回到主目录)
touch .profile(创建隐藏文件)
mkdir backup
cp -i .profile /backup(复制文件 覆盖提示)
3. 已知有一个普通文件,保存在主目录下的某个位置,文件名中含有mem字符串。写出查找这个文件的命令
find -name "*mem*" -type f (普通文件)
4. 已知一个项目的源代码文件都存放在project目录下,扩展名为.c或.h。用一个命令统计所有源代码的行数。
wc -l *.[hc]
5.在/root目录下,创建一个以自己的姓的拼音命名的文件夹,复制文件/etc/fstab到该文件夹下,文件名字不变。查看文件/root/某文件夹/fstab的前4行;统计目录/root下,所有目录文件的个数
cd /root
mkdir /root/zbt
cp /etc/fstab /root/zbt
cd /root/zbt
head -4 fstab (查看文件前四行)
cd ..
ls -l|grep'^d'|wc –l (root下目录文件个数)
二、
1.
2.切换到student用户的用户主目录下;在student用户主目录下创建一个临时目录tmp;在临时目录下创建一个文件,文件名为a.txt;将a.txt复制成b.txt;将b.txt改名成c.txt;为c.txt创建符号链接,链接文件名为linkc.txt;
cd student
mkdir tmp
ls
tmp
cd tmp
touch a.txt
ls
a.txt
cp a.txt b.txt
ls
a. txt b.txt
mv b.txt c.txt
ls
a.txt c.txt
ln -s c.txt linkc.txt
ls
a.txt c.txt linkc.txt
使用gzip压缩创建/etc的归档,将文件另存为/home/student/tmp/etc.tar.gz;将压缩的归档文件解压到/backups目录;删除tmp目录
tar -zcvf /home/student/tmp/etc.tar.gz /etc
cd /backups
tar -zxvf /home/student/tmp/etc.tar.gz
ls /backups
etc
cd /home/student
rm -r tmp 3. 列出用户主目录下的所有目录文件 rwx
4. 写出一条命令,统计memo文件的行数,将结果写入memo.size文件中;
find memo/ -name "*.c" |xargs cat|wc -l
在当前目录下创建子目录test,而后进入test子目录,并在其下创建名为myfile.txt的文件,并通过键盘将“hello world”字符串输入到myfile.txt文件中,创建另一个文件file2,将myfile.txt 与file2 合并为分file3。
第五讲
1. 现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。这些帐户应在90天后终止时过期,且每个月都必须更改密码。以下是顾问姓名及其相应的用户名列表(帐户的初始密码均为default):Sam Spade=Sspade Betty Boop= Bboop Dick Tracy=Dtracy
groupadd -g 40000 consultants
useradd -G consultants Sspade
useradd -G consultants bboop
useradd -G consultants dtracy
date -d "91-day"
2014年 09月 22日 星期一 04:42:25 EDT
chage -E 2014-9-22 -M 30 Sspade
chage -E 2014-9-22 -M 30 bboop
chage -E 2014-9-22 -M 30 dtracy
tail -4 /etc/passwd
tail -4 /etc/shadow
tail -4 /etc/gshadow
#passwd Sspade
tail -4 /etc/shadow
2. 先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不充许login 。
groupadd manager
useradd -G manager natasha
useradd -G manager harry
useradd -G manager strlt -d /home/login
3. 建一个用户susa,指定UID号为4000
useradd -u 4000 susa
第六讲
1. 创建大小为400 MB的新分区和ext4文件系统。该文件系统应永久挂载在/data的下面。
2. 挂载U盘
第八讲
· 使用命令将linux系统下ip地址、子网掩码、默认网关、DNS配置成下列值。
· IP address : 10.4.5.6
· Netmask : 255.255.255.0
· Gateway : 10.5.6.251
· DNS server : 192.168.0.234
Shell题
1. 编写一个shell脚本,将用户主目录下的所有*.txt文件用for循环复制到mysoft子目录下并显示所复制文件的内容。
2.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
3.编写一个shell脚本,从键盘输入两个整数,比较其大小,并将其中较大的一个输出。
4、设计一个模拟台式计算器,从键盘输入两个数,再输入算术运算符,求其计算结果。要求输出结果为:第一个数 运算符 第二个数 = 运算结果。(运算符仅包含expr支持的+ - *
后面附录知识点
附录:知识点
Shell的基本应用
知识点:1.shell是Linux的一个特殊程序,是内核与用户的接口,它是命令语言,命令解释程序及程序设计语言的统称。Shell是一个命令语言解释器,拥有自己内建shell命令集。
2.大多数Linux系统 bin/bash作为默认登陆shell
3.Linux命令:(1)用于实现某一类功能的指令或程序(2)命令的执行依赖于解释器程序(例如:/bin/bash)
Linux命令分类:内部命令:属于Shell解释器的一部分(例如:pwd、cd)
外部命令:独立于Shell解释器之外的程序文件,存放在某个特定的目录中,如存放在/bin 、/sbin、 /usr/bin例如(cp、rm、mail等命令)
4. Bash的常用功能:Tab键自动补齐 命令编辑快捷键 命令历史 命令别名 标准输入输出 重定向操作 管道操作
5. Bash(GNU Bourne-Again shell)是许多Linux平台的内定Shell,是一个基于命令行的shell 程序,支持多个语句命令。
6.bash命令:(1)命令历史:课本P62
(2)课本P63
7.linux的通用命令格式 命令字 [选项] [参数] 参考课本P56
8.Linux几个常用命令:(1)man命令:显示指定命令的手册页帮助信息。课本P61
(2)pwd命令:显示当前目录的绝对路径。课本P57
(3)cd命令:将当前目录改变为指定的目录。课本P57
(4)ls命令:显示指定目录的文件和子目录信息。当不指定目录时,显示当前目录下的文件和子目录信息。课本P57
(5)mkdir命令:创建目录。课本P56
(6)rmdir命令:从一个目录中删除一个或多个子目录,要求目录删除前必须为空。课本P56
(7)touch命令:修改文件的修改时间和访问时间的时间标签为现在时间touch [选项] 文件…
-a 仅改变文件的访问时间。
-m 仅改变文件的修改时间。
-c 文件不存在时,不创建文件。
-t STAMP 使用STAMP指定的时间标签,而不是系统现在时间。
(8)file命令:查看文件类型
(9)cp命令:将给出的文件或目录复制到另一文件或目录中。课本P60
(10)rm命令:删除文件或目录。课本P61
(11)mv命令:移动或者重命名文件或目录。课本P60
(12)find命令:从指定的目录开始,递归的搜索其各个子目录,查找满足寻找条件文件的文件并对之采取相关的操作。课本P59.
(13)cat命令:依次读取其后所指的文件内容并将其输出到标准输出设备上。课本P57
(14)more命令:全屏方式分页显示文件内容 less命令:与more命令相同,但扩展功能更多
(15)grep命令:以指定的查找模块搜索文件,通知用户在什么文件中搜索到与指定的文件模式匹配的字符串,并且打印出所有包含该字符串的文本行,该文本行的最前面是该行的所在文件名。课本P59
压缩、链接、vi编辑器
Linux常用命令:gzip命令:压缩、解压文件。课本P110
tar命令:将文件或目录归档为tar文件,与相关选项连用可以压缩归档文件。课本P106
ln命令:用于在文件之间创造链接,即为系统中已有的某个文件指向另外一个可用于访问它的名称。课本P105
知识点:文件系统的主要功能是存储文件的数据。Linux中文件系统为ext2.
Ext2文件系统采用索引节点(inode)方式来描述文件,系统中的所有文件(包括目录和设备)都对应一个唯一的i节点。i节点的内容包含文件说明信息和索引表两部分,文件说明信息部分包括模式(访问权限与类型)、所有者(属主和属组)、长度、时间戳、连接数等信息。索引表部分是指向文件存储块的索引指针。
目录文件的描述结构与普通文件一样,每个目录文件对应一个目录项(在其父目录中)以及一个i节点。不同之处在于目录文件的内容数据块中存放的是一个目录项列表,包含了该目录下的所有文件的目录项,头两个目录项是“.”和“..”。 目录文件A的内容是一个含有6个目录项的列表,其中“.”文件就是本文件的别名,它的i节点域指向了本文件的i节点,“..”文件是父目录文件的别名,它的i节点域指向了父目录文件的i节点(根目录的“..”就是其自身)。其余4个表项分别对应了目录A下的B、C、D、E子文件,其中文件B是一个子目录,文件C是一个普通文件。文件D和E是一个共享文件。
文件链接是实现文件共享的主要方式。Linux系统提供了两种文件链接方式,即符号链接和硬链接,用link()系统调用实现。用户可以用ln命令建立文件链接。
符号链接(symbolic link)很像Windows系统中的快捷方式,即建立一个符号链接文件,其内容是到一个实际存在的文件的路径描述。访问符号链接文件时,系统将根据其记载的内容转去访问那个实际文件。符号链接文件与目标文件是两个独立的文件,有着各自的i节点和数据块。它们之间通过文件内容而逻辑地链接在一起。
硬链接则是将两个或多个文件通过i节点物理地链接在一起。硬链接的文件具有不同的文件名和同一个i节点,通过其中任何一个文件名访问得到的都是同一内容,这就如同是一个文件具有多个别名。图中的文件D和E就是硬链接的一个例子。硬链接文件的目录项可以在同一目录下,也可以在不同的目录下,但不能跨越文件系统(即分区)。
文件的i节点中记录了该文件的连接数,用ls -l命令可以显示出文件的连接数。连接数表示连接到该i节点的文件目录项的数目。新建的普通文件的连接数为1,每建立一个与它相连的硬链接文件时其连接数就增1。
Vim(vi improved)是一种功能强大的命令行的文本编辑器,比gedit更复杂,功能更强大。
Vim是一个标准的工具,几乎在所有的Redhat Linux系统中都可用。事实上,这是一个在许多基于Unix操作系统上的标准工具。Vim是一种模态编辑器,根据其所属模式不同,工作方式也不同。
Vim是一个全屏幕交互式编辑程序,可以执行输出、删除、查找、替换、块操作等文本操作。
Vim作用:创建或修改文本文件,维护Linux系统中的各种配置文件
Vi三种工作模式:命令模式: 用于文件导航、剪切、粘贴以及简单命令
输入模式:用于常规文本编辑
末行模式:用于保存、退出、搜索、替换以及其它复杂的操作
三种模式切换:课本P71 具体命令:课本P72到P75
管道 重定向 正则表达式
知识点:正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意多个 'b' ,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。
表达式可以用来:
(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。
(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。
(3)用来替换,比普通的替换更强大。
基本正则表达式:课本P65、P66
重定向:Linux系统中标准的输入设备为键盘,输出设备为屏幕,在某些情况下,希望能从键盘以外的其他设备读取数据,或者将数据送到屏幕以外的其他设备,这种情况就称为重定向。Linux系统定义了三个标准I/O文件,即标准输入文件stdin、标准输出文件stdout和标准错误输出文件stderr。在默认的情况下,stdin对应终端的键盘,stdout对应终端的屏幕,stderr也对应终端的屏幕。
输入重定向是指把命令的标准输入改变为指定的文件(包括设备文件),使命令从该文件中而不是从键盘中获取输入,
输入重定向的格式为:命令 < 文件
当提交这样的一个命令行时,Shell首先断开键盘与命令的stdin之间的关联,将指定的文件关联到stdin,然后运行命令。这样,该命令就会从这个文件中读取标准输入信息。
输出重定向是指把命令的标准输出或标准错误输出重新定向到指定文件中。这样,该命令的输出就不显示在屏幕上,而是写入到文件中。
很多情况下都可以使用输出重定向功能。
输出重定向的一般形式为:
● 标准输出重定向: 命令 > 文件
● 标准错误输出重定向: 命令 2> 文件
● 合并输出重定向: 命令 &> 文件
● 附加输出重定向: 命令 >> 文件
附加输出重定向就是将标准输出附加在一个文件的后面。
附加输出重定向的格式为:命令 >> 文件
附加输出重定向与标准输出重定向相似,只是当指定的文件存在时,标准输出重定向的做法是先将文件清空,再将命令的输出信息写入,而附加输出重定向则是保留文件内原有的内容,将命令的输出附加在后面。
合并输出重定向就是将标准输出与标准错误输出一起写入一个文件中,
输出重定向的用法:
(1) 合并文件,并加行号:
$ cat -n file1 file2 > file3
用cat命令和输出重定向可以方便地实现多个文件合并。此例中,cat的输出是加了行号的file1和file2的内容,重定向后,它们被写入file3中。
(2) 快速建立文件:
$ cat > file
用cat和输出重定向可以方便地建立一个小文件。此例中,Shell首先建立文件file(若它不存在的话),然后运行cat。cat从标准输入读入文本,写入文件file中。
(3) 向文件中添加内容:
$ echo “End of file” >> file
这是向文件中添加文本行的简单方法。这里echo命令向file文件末尾追加一行文字。如果要添加多行,可以用cat >> file命令。
管道(pipe)的功能是将一个程序或命令的输出作为另一个程序或命令的输入。利用管道可以把一系列命令连接起来,形成一个管道线(pipe line),管道线中前一个命令的输出会传递给后一个命令,作为它的输入。最终显示在屏幕上的内容是管道线中最后一个命令的输出。
第五讲 用户和组
知识点:Linux系统中,每个用户都有一个唯一的标示符,称为用户ID,系统中的用户至少属于一个组,称为用户分组。用户分组也有一个唯一的标示符,称为分组ID。根据用户和分组信息可以如何控制如何授权用户访问系统,以及允许访问后用户可以进行的操作权限。
用户组影子文件/etc/gshadow :用于保存密码字串、密码有效期等信息
每一行对应一个用户的密码记录 课本P84
组账号文件 /etc/group 用户组的配置文件,内容包括用户和用户组,并能显示出用户归属哪个用户组或哪几个用户组。 课本P83
Linux常用命令:who命令【功能】显示已登录的用户。
【格式】who [选项] [am i]
【选项】
-H 显示各列的标题。
-q 显示登录的用户名和用户数。
【参数】带有参数am i时,显示自己的登录信息。
【说明】显示内容分为4列:用户名、登录的终端名、登录时间和备注。有-q选项时,只输出用户名和用户数。
Passwd命令 课本P86 useradd命令 课本P85 usermod命令 课本P87 userdel命令 课本P87
chage命令
格式:chage [选项]... 用户帐号名
常用命令选项
-m:密码的最短有效天数
-M:密码的最长有效天数
-W:密码的警告天数
-I:密码的有效天数
-E:密码的过期时间
m:密码的最短有效天数
-M:密码的最长有效天数
-W:密码的警告天数
-I:密码的有效天数
-E:密码的过期时间
-d:下次登陆时强制修改密码
用户组命令:groupadd命令 课本p88 gpasswd命令 课本P88
groupdel命令
第六章 磁盘与文件管理系统
知识点:磁盘的组成:MBR:主引导记录(操作系统的引导信息、分区表、验证码)
主分区,一个硬盘允许4个主分区
扩展分区:一个硬盘允许3个主分区,一个扩展分区
逻辑分区:在扩展分区上创建
/bin 、/etc、 /dev 、/lib 、/sbin只能在根分区创建(课本P95)
Linux中将硬盘、分区等设备均表示为文件
交换分区是磁盘驱动器上的空间,用作当前未使用部分内存的溢出。
系统就能在内存中留出空间用于存储当前正在处理的数据,并在系统面临主内存空间不足的风险时提供应急溢出。
fdisk是用于管理磁盘分区的实用程序。(课本P97)
Linux中默认使用的文件系统类型 EXT4, 第4代扩展(Extended)文件系统
SWAP,交换文件系统
Linux支持的其它文件系统类型
FAT16、FAT32
XFS、JFS
文件操作权限:(1)访问权限:读取:允许查看文件内容、显示目录列表
写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行:允许运行程序、切换目录
(2)归属:属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
(课本P111)
Linux命令:mkfs命令:创建文件系统(课本P100)
mount 命令(用来把文件系统挂载到系统中)
mount [ -t 类型 ] 设备名 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
umount命令(卸载已挂载的文件系统)
umount 设备名
umount 挂载点目录
mkswap命令(Make Swap,创建交换文件系统)
mkswap 分区设备
chown命令(修改文件的权限)课本P112
格式:chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
shell程序设计
知识点:Shell的功能(1)作为命令解释程序
(2)作为一种高级程序设计语言
shell是一种命令行解释程序,它提供了用户与操作系统之间基于命令行的交互界面。用户命令行输入命令,由SHELL对它们做出解释,并将其送往操作系统去执行。然而,它不仅仅是一种交互式语言,它还是一种可编程的程序设计语言。将若干个shell命令写入一个文件就构成了一个shell程序,它可以被shell逐条的解释执行。shell程序可以使用各种变量、参数和控制结构来组织命令流程,自动化的完成各种复杂冗繁的处理工作。
shell是基于字符串的语言:只做字符串处理,不支持复杂的数据结构和运算。Shell输出也全部是字符方式。
shell脚本的执行方式主要有3种
(1) 将脚本作为可执行文件执行:
$ chmod a+x hello
$ ./hello
用文本编辑器生成的脚本文件默认是没有x权限的,也就是说是不可直接执行的。赋予x权限后,脚本就可以像一般的Shell命令那样执行了。如果脚本不在系统存放命令的标准目录下,需要在执行时指定脚本的路径。上例中脚本hello放在当前目录下,所以要用./hello来运行。
(2) 启动一个Shell子进程来执行脚本文件:
$ sh hello #或sh < hello
执行此命令行时,Shell进程先启动一个bash子进程,让它执行hello脚本的内容,执行完毕后bash子进程也终止。在这种方式中,脚本是作为命令参数传给子Shell的。子Shell运行时读取该文件并执行其内容,因此脚本文件不必有执行权限。
(3) 让当前Shell进程执行脚本文件:
$ . hello #注意.后面的空格
“.”是一个Shell内部命令,hello是它的参数。“.”命令的功能是读取参数指定的文件,执行其内容。这种执行方式与第2种方式类似,区别在于此方式是由当前Shell进程来执行脚本文件的。
Shell变量:Shell是基于字符串的编程语言,shell的变量只能存储字符串。
Shell的变量有两种类型,即shell环境变量和用户自定义变量。
Shell的环境变量:作用是定制shell的运行环境,保证shell正确执行,它又分为可写和只读两大类。
1、可写的shell环境变量
可写的shell环境变量可以对它们进行赋值,大部分可写的shell环境变量都在登录过程中执行“/etc/profile”文件时进行初始化。该文件由系统管理员设置,用于为系统上的所有用户建立一个公共环境。
§ 2、只读的shell环境变量
只读的shell环境变量的变量名和值有shell自动设置。用户能使用和读取它们的值,但不能对它们进行更改,只读的shell环境变量有两种:一种是特殊的环境变量;另一种是位置参数。
位置参数:在命令行传递给shell脚本的参数。
共有十个位置参数,依次是
$0,$1,$2,…,$9
必有$0;而其他位置参数依据实际需求,可有可无。
输出位置参数
可以用echo命令输出位置参数
§ 位置参数是只读的,因此用户不能直接对参数变量重新赋值,但可以通过shell提供的命令来设置这些变量。
用set命令给位置参数赋值
格式:set 字符串1 字符串2…
其中,字符串i是要赋给第i个位置变量的值。注意:set不能对$0赋值。
移动位置参数
如果实际给定的命令行参数多于9个,就需要用shift命令移动位置参数。
shift命令可以带有一个整数作为参数,例如:shift 3
其功能是每次把位置参数左移3位。如果未带参数,则默认值为l。
自定义变量:在shell 编程语言中无须声明和初始化shell变量,一个未初始化的shell变量,其默认的初始化值为空字符串。
§ 用户定义的shell变量名是由字母或下线符打头的字母、数字和下线符序列,并且大小写字母意义不同。这与C语言中标识符的定义相同。
字符串赋值,格式如下:
变量名=字符串
例如:mydir=/home/a
可以用echo命令显示变量名和值
注意显示变量值时要加$变量名(引用变量
查看变量使用变量:用env命令可以查看环境变量
用不带参数的set命令可以显示所有“shell变量(包括用户自定义变量)名以及它们的当前值。set命令还可用于改变一些只读shell环境变量的值。
在程序中使用变量值时,要在变量名前面加上一个符号“$”。这个符号告诉shell,要取出其后变量的值。
Shell输入输出命令:
shell中输入输出的标准文件
每个进程运行时自动打开三个文件,这些文件称为命令的标准文件,分别用于命令读取输入、输出结果以及输出错误消息,即
标准输入文件(stdin)
标准输出文件(stdout)
标准错误输出文件(stderr)
shell的输入输出重定向命令
< > >> 2>
Shell的输入重定向命令<
作用是解除键盘作为命令command的标准输入,并将文件“input-file”作为命令的输入源。
格式:command <input-file
Shell的输出重定向命令>
该语法用于将命令command的输出重定向到文件“output-file”上以取代显示屏
格式:command>output-file
§ Shell的附加输出重定向命令>>
作用是把命令(或可执行程序)的输出附加到文件的后面,文件原有内容不被破坏。
格式:command>>output-file
§ Shell的标准输出错误重定向命令2>
将产生的错误信息发送到“erro-file”中(不是默认的显示屏。
§ read命令
用read命令由标准输入读取数据,然后赋给指定的变量。其一般格式如下。
read 变量1 [变量2] ……
echo 命令
echo命令是将其后的参数输出。最好用双引号把所有参数括起来,这样不仅易读并且能使shell对它们进行正确的解释。
展开阅读全文