Linux知识点总结
第一章 基础知识
1.1 终端窗口使用
1)进入系统后,点击鼠标右键,选择“Open Terminal”
2)使用快捷键ctrl+alt+T
1.2 文本模式使用
1)切换图形界面按键是ctrl + alt + F1 即进入登录选择用户界面
2)切换文本模式按键是ctrl + alt + F3 ~ F6
文本模式登录 1.先输入账户名 2.输入密码 3.成功进入
登录后 输入sh即可进入Shell环境 exit回入初始文本模式登录
1.3 命令行关闭重启系统
重启
guosheng@guosheng-virtual-machine:~$ reboot
guosheng@guosheng-virtual-machine:~$ shutdown -r now
关机
guosheng@guosheng-virtual-machine:~$ shutdown -h now
guosheng@guosheng-virtual-machine:~$ shutdown +10 "System will shutdown after 10 min"
guosheng@guosheng-virtual-machine:~$ halt 关闭不重启
guosheng@guosheng-virtual-machine:~$ poweroff 关闭系统同时切断电源
1.4 Shell基础
查看当前使用的Shell类型(bash)
guosheng@guosheng-virtual-machine:~$ echo $SHELL
/bin/bash
1.5 查看环境变量
1.5.1 echo 查看单个环境变量
guosheng@guosheng-virtual-machine:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
1.5.2 env 查看所有环境变量
guosheng@guosheng-virtual-machine:~$ env
1.5.3 printenv 查看指定环境变量
guosheng@guosheng-virtual-machine:~$ printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
1.6 常用命令
①ls
语法 :
ls [选项] [目录或者文件]
功能 :
对于目录, 该命令会列出目录下所有子目录与文件.
对于文件, 该命令会列出文件名以及其他信息.
选项 :
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-r 对目录反向排序。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)
常用
-l 列出文件的详细信息。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-h 方用户便可读的形式
-i 列出文件/目录的i节点号
示例:
guosheng@guosheng-virtual-machine:~$ ls
examples.desktop 公共的 图片 音乐
VMwareTools-10.3.22-15902021 模板 文档 桌面
VMwareTools-10.3.22-15902021.tar.gz 视频 下载
注意:
白色:普通文件
蓝色:目录
红色:压缩包
绿色:可执行文件
②pwd
语法:
pwd
功能:
查看当前目录
示例
guosheng@guosheng-virtual-machine:~$ pwd
/home/guosheng
③cd
语法:
cd [目录名]
功能:
切换当前目录
选项:
/ 称为根目录
. 称为当前目录
.. 称为当前目录的上级目录
cd ..: 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录
示例:
guosheng@guosheng-virtual-machine:~$ cd ..
guosheng@guosheng-virtual-machine:/home$
guosheng@guosheng-virtual-machine:/home$ cd ..
guosheng@guosheng-virtual-machine:/$
guosheng@guosheng-virtual-machine:/$ cd home
guosheng@guosheng-virtual-machine:/home$
④cat
语法:
cat [选项] [文件]
功能:
合并文件 查看/显示文件内容
选项:
-n能输出内容对应的行号
示例:
guosheng@guosheng-virtual-machine:~$ cd test
guosheng@guosheng-virtual-machine:~/test$ cat catTest
test cat whether can display
guosheng@guosheng-virtual-machine:~/test$ cat -n catTest
1 test cat whether can display
2 test again
tac
语法:
tac [选项] [文件]
功能:
反向查看/显示文件内容
选项:
⑤grep
语法 :
grep [参数] [文件]
功能 :
用于查找文件中是否包含指定字符串,并显示对应的行
常用选项 :
-i 忽略大小写 文件内容比较 严格匹配
-n<行数> 显示的行数
-w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
-r 递归查找. 可以搜索多级目录下的所有文件.
--color 高亮查找到的结果
--include 指定查找某些文件
--exclude 指定排除某些文件
示例:
guosheng@guosheng-virtual-machine:~/test$ grep again catTest
test again
guosheng@guosheng-virtual-machine:~$ grep -i 'home' /etc/passwd
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
guosheng:x:1000:1000:Guosheng,,,:/home/guosheng:/bin/bash
2014:x:1001:1001::/home/2014:/bin/sh
gs:x:1002:1002:,,,:/home/gs:/bin/bash
wang:x:1004:1004::/home/wang:/bin/sh
⑥touch
语法 :
touch [选项] ... 文件 ...
功能 :
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
示例 :
guosheng@guosheng-virtual-machine:~/test$ touch text.txt
guosheng@guosheng-virtual-machine:~/test$ ls
catTest text.txt
guosheng@guosheng-virtual-machine:~/test$ ls text.txt
text.txt
⑦cp
语法 :
cp [选项] 源文件或目录 目标文件或目录
功能 :
复制一个文件或目录
常用选项 :
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理 复制目录
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
-p 保持时间属性
cp -r/tmp /root
cp -r/tmp/gs /root/zhangsan 复制同时更名
示例 :
guosheng@guosheng-virtual-machine:~/test$ ls
catTest text.txt
复制到当前目录并更名为text cp file1 file2
guosheng@guosheng-virtual-machine:~/test$ cp text.txt text
guosheng@guosheng-virtual-machine:~/test$ ls
catTest text text.txt
guosheng@guosheng-virtual-machine:~/test$
复制到指定目录并更名为text1 cp file1 dir1/file2
⑧mv
语法 :
mv [选项] 源文件或目录 目标文件或目录
功能 :
移动一个文件或者目录
常用的选项 :
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
mv file1 file2 更名
示例:
guosheng@guosheng-virtual-machine:~$ cd T1
guosheng@guosheng-virtual-machine:~/T1$ ls
catTest test1
guosheng@guosheng-virtual-machine:~/T1$ cd ..
guosheng@guosheng-virtual-machine:~$ cd T2
guosheng@guosheng-virtual-machine:~/T2$ ls
test1
⑨rm
语法 :
rm [选项] [文件或目录]
功能 :
删除指定的目录或者文件
常用选项 :
`-f` 即使文件属性为只读(即写保护),亦直接删除 强制执行
`-i` 删除前逐一询问确认
`-r` 删除目录及其下所有文件
rm file1 删除文件
rm -r/tmp/hxw 删除目录
rm -rf / 不要使用 删除根目录 系统崩溃
示例 :
guosheng@guosheng-virtual-machine:~$ rm -r T3
guosheng@guosheng-virtual-machine:~$ cd T3
bash: cd: T3: 没有那个文件或目录
⑩echo
语法 :
echo 内容 > 文件名
功能 :
将内容写到当前文件内 会将原来的内容覆盖掉 只保留新写入的内容
示例 :
guosheng@guosheng-virtual-machine:~/T1$ echo good > catTest
guosheng@guosheng-virtual-machine:~/T1$ cat catTest
good
####⑪man
语法 :
man 命令
功能 :
查看命令帮助手册
示例 :
guosheng@guosheng-virtual-machine:~$ man pwd
按 q 可以退出
⑫ less
语法 :
less [参数] 文件
功能 :
查看文件内容.可以翻页
示例 :
guosheng@guosheng-virtual-machine:~/T1$ less catTest
⑬ head
语法 :
head [参数] 文件
功能 :
查看文件的开头
示例 :
以使用 -n <指定显示内容个数> 显示指定行数的内容
从文件开头显示的行数
guosheng@guosheng-virtual-machine:~/T1$ head catTest
good
⑭ tail
语法 :
tail [参数] 文件
功能 :
查看文件的末尾
示例 :
guosheng@guosheng-virtual-machine:~/T1$ tail catTest
good
test
aaaaa
gbbbbs
sdadaweda
⑮ vim
语法 :
vim [文件名]
功能 :
能打开一个文件,如果不存在就会创建文件
注意事项 :
第一次进入的时候是普通模式.
想要编辑,要按下 i 进入插入模式
当把内容写完之后,按 Esc 退出插入模式
然后输入 :w 保存
然后再输入 :q 退出
示例 :
按 i 进入插入模式
输入完之后 按 Esc
然后输入 :w 保存. :q 退出
⑯ ps
语法 :
ps [参数]
功能 :
查看当前系统中的进程
示例 :
ps aux # 显示系统上所有的进程
ps aux | grep "进程名"
ps aux | grep "进程id"
guosheng@guosheng-virtual-machine:~/T1$ ps aux #
⑰ netstat
语法 :
netstat [参数]
功能 :
查看当前的网络状态
示例 :
netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"
⑱管道
语法:
命令1 | 命令2 ……| 命令n
功能:
将一个命令的输出作为另一个命令的输入
示例:
guosheng@guosheng-virtual-machine:~$ ls | grep "456"
123 456
456
⑲rmdir
语法 :
rm [选项] [文件或目录]
功能 :
从一个目录删除一个或多个空的子目录
常用选项 :
`-p` 表示递归创建或删除
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳more
语法 :
more [选项] [文件或目录]
功能 :
逐页显示文件内容
特点 :
空格或者f下翻一页
回车键使显示内容下翻一行
q退出
无法上翻页
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳less
语法 :
less [选项] [文件或目录]
功能 :
分页显示文件内容 功能比more强大
特点 :
PgUp PgDn上下翻页
上下键前后移动一行
/关键词
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳common
语法 :
less [选项] [文件或目录]
功能 :
分页显示文件内容 功能比more强大
特点 :
PgUp PgDn上下翻页
上下键前后移动一行
/关键词
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳diff
语法 :
less [选项] [文件或目录]
功能 :
分页显示文件内容 功能比more强大
特点 :
PgUp PgDn上下翻页
上下键前后移动一行
/关键词
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳sort
语法 :
sort [选项] [文件或目录]
功能 :
Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件。
常用选项 :
使用-n参数按照数字排序
使用-k参数指定列排序,例如指定第8列时间进行排序
使用-u参数去重
使用-h参数,按照人类习惯阅读方式比较文件大小
使用-r参数取反,即改为降序排序
使用-t参数自定义分隔符
示例 :
⑳wc
语法 :
wc [选项] [文件或目录]
功能 :
统计出指定文件的字节数 字数 行数 并输出结果
常用选项 :
-c 统计字节数
-l 统计行数
-w 统计字数
示例 :
guosheng@guosheng-virtual-machine:~$ rmdir T3
⑳find
语法 :
find [路径] [匹配表达式]
*匹配任意字符 ?匹配单个字符
功能 :
在目录结构中搜索满足查询条件的文件并执行指定操作
常用选项 :
-name find/ /etc-name e init 查找含init关键字
-iname 忽略大小写
-size 按照数据块大小搜索0.5kb +大于 -小于 等于
-user 按照所有者查找 -group 根据所属组查找
-amin 访问时间 access
-cmin 文件属性修改时间 change
-mmin 文件内容修改时间 modify
find/etc -cmin -5 5分种之内修改过的文件输出
-type 根据文件类型搜索 f查找 d目录 l软链接
-inum 根据文件索引号搜索
-exec 命令对搜索结果执行操作直接执行
-ok 命令对搜索结果执行操作执行前询问
连接选项-a -o
示例 :
guosheng@guosheng-virtual-machine:~/T1$ find -name "*.txt"
./catTest2.txt
⑳locate
语法 :
locate [选项] [文件]
功能 :
查找文件 比find命令搜索速度快
常用选项 :
示例 :
链接文件创建
ln该命令为文件中创建链接
建立符号链接文件的语法格式 快捷方式
ln -s 目标(原文件或目录)链接文件
建立硬链接的语法格式 同步更新
ln 目标(原文件)链接文化
⑳gzip
用于对文件进行压缩和解压缩 压缩时删除源文件
gzip[选项] 压缩文件名/解压缩文件名
gzip file1 生成file1.zp压缩文件
bzip2 -k文件 不删除源文件 压缩比高 后缀为.bz2
解压缩
gzip -d 或者 gunzip解压缩
bunzip2 -k保留原文件
⑳tar
tar命令用于对目录进行打包
tar[选项] 文件或目录名
-c 打包
-x 解压缩
-v 显示详细信息
-f 指定生成文件名
-z 打包的同时压缩
tar -cvf hxw.tar /tmp 生成hxw.tar文件
gzip hxw.tar 生成hxw.tar.gz文件
tar -zxvf hxw.tar.gz 解包
第二章 用户与组管理
2.1权限管理
2.1.1 sudo命令 super user do
使用sudo su -,提供当前用户的密码,也可以切换到root用户。
sudo 命令只允许使用提升的权限运行单个命令
guosheng@guosheng-virtual-machine:~$ cat /etc/sudoers
cat: /etc/sudoers: 权限不够
sudo命令加要执行的命令格式 临时使用 执行完恢复
guosheng@guosheng-virtual-machine:~$ sudo cat /etc/sudoers
[sudo] guosheng 的密码:
sudo -i,可以暂时切换为root身份登录
guosheng@guosheng-virtual-machine:~$ sudo -i
root@guosheng-virtual-machine:~# cat /etc/sudoers
2.1.2 su命令 switch user
使用su - 提供root账号的密码,可以切换到root用户
guosheng@guosheng-virtual-machine:~$ su root
密码:
su:认证失败
guosheng@guosheng-virtual-machine:~$ sudo su root
root@guosheng-virtual-machine:/home/guosheng#
su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录
guosheng@guosheng-virtual-machine:~$ sudo su - root
root@guosheng-virtual-machine:~#
2.2 用户管理
useradd 创建普通用户 三无用户 没有家目录 home目录下有无该文件夹
guosheng@guosheng-virtual-machine:~$ sudo useradd wang
adduser 创建普通用户 没有密码登不了
guosheng@guosheng-virtual-machine:~$ sudo adduser gs
[sudo] guosheng 的密码:
正在添加用户"gs"...
正在添加新组"gs" (1002)...
正在添加新用户"gs" (1002) 到组"gs"...
创建主目录"/home/gs"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 gs 的用户信息
请输入新值,或直接敲回车键以使用默认值
全名 []:
房间号码 []:
工作电话 []:
家庭电话 []:
其它 []:
这些信息是否正确? [Y/n] y
用户名改了 家目录没改
第三章 文件与目录管理
3.1 文件与目录概述
3.1.1 Linux目录结构
- 目录树的起始点为根目录(/)
- 每一个文件在目录树中的文件名(完整路径)是独一无二
目录树
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-blJyMzQR-1655651803088)(…/AppData/Roaming/Typora/typora-user-images/image-20220614224221020.png)]
3.1.2 Linux目录配置标准FHS
- FHS(文件系统层次标准)规范在根目录(/)下面各个主要目录应该放什么样的文件
- 第1层是根目录下面的各个目录应该放什么文件
- 第2层针对/usr及/var这两个目录的子目录来定义
3.1.3 Linux文件类型
Linux文件结构
- 索引节点:又称I节点,包含有关相应文件信息的一个记录。
- 数据:文件的实际内容,可以是空的,也可以非常大,并且有自己的结构。
普通文件
- 包括文本文件、数据文件和可执行的二进制程序等。
目录文件d
- 目录文件是一种特殊文件,利用它可以构成文件系统的分层树形结构。
- 每个目录文件中至少包括两个条目:“…”表示上一级目录,“.”表示该目录本身。
设备文件 c/b
- 设备文件是一种特殊文件,用于存放在文件索引节点中的信息。设备文件又可分为两种类型:字符设备文件和块设备文件。
**链接文件 l **
- 一种特殊文件,提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。
- 链接文件有两种,分别是符号链接(Symbolic Link)和硬链接(Hard Link)。
3.2 Ubuntu 目录操作
3.2.1 命令行进行目录操作
3.2.1.1 创建目录
mkdir命令创建由目录名命名的目录。
mkdir [选项] 目录名
mkdir /tmp/hxw
3.2.1.2 删除目录
使用rmdir命令从一个目录中删除一个或多个**空的子目录**
rmdir [选项] 目录名
-p表示递归创建或删除
注意:若删除非空目录需用rm命令
3.2.1.3 改变工作目录
cd命令用来改变工作目录
cd [目录名] 绝对路径(/)或者相对路径(./ ../)
cd /tmp/hxw cd .. 或 cd ../
pwd命令用于显示当前工作目录的绝对路径
pwd print work director
3.2.1.4 显示目录内容
ls命令列出指定目录的内容
ls [选项] [目录或文件]
**-a****、****-l****、****-h****、****-****i**
3.3 Ubuntu文件操作
3.2.1 命令行进行文件操作
3.2.1.1 文件的创建
touch命令用于创建一个空文件
touch [选项] [文件名]
如:touch file1
touch file1 zhangsan
3.2.1.2 文件内容显示
cat命令
cat命令连接文件并打印到标准输出设备上,常用来显示文件内容
cat [选项] [文件名1]
如 cat -n file1 -n显示行号
cat -n file1 [file2]
cat file1 file2>file3
反向显示 tac [选项] [文件名1]
tac /etc/issue
more命令
more命令可以逐页显示文件内容
more [选项] [文件名]
如:more /etc/services
通过空格或者f下翻一页
回车键使显示内容下翻一行
q退出
缺点:无法上翻页
less命令
less命令用来分页显示文件内容,但功能比more更强大
less [选项] [文件名]
PgUp、PgDn上下翻页
上下箭头前后移动一行
/关键字+回车 进行搜索 -n继续下搜索
head命令
head命令在屏幕上显示文件的开头若干行或多少个字节
head [选项] [文件名]
选项: -n 指定从文件开头显示的行数(n为行数,默认10行)
-c 指定从文件开头显示的字节数
tail命令在屏幕上显示指定文件的末尾若干行或若干字节
tail [选项] [文件名]
选项: -n 指定显示文件末尾的行数
3.2.1.3 文件内容查找
grep命令
grep命令用来在文本文件中查找指定模式的单词或短语
grep [选项] 模式 [文件名]
选项:-i 忽略大小写 文件内容比较
如:grep -i 'home' /etc/passwd
-v 不显示部分内容
如:grep -v ^# /etc/inittab 不显示以#开头的行
comm命令
comm命令对两个已经排好序的文件进行逐行比较,只显示它们共有的行
comm [-123] 文件1 文件2
diff命令逐行比较两个文件,列出它们的不同之处,并且提示为使两个文件一致需要修改哪些行。
diff [选项] 文件1 文件2
3.2.1.4 文件内容排序
sort命令用于对文本文件的各行按照字典顺序进行排序
sort [选项] 文件名列表
3.2.1.5 文件内容统计
wc命令
wc命令用于统计出指定文件的字节数、字数、行数,并输出结果
wc [选项] 文件名列表
-c 统计字节数
-l 统计行数
-w 统计字数
3.2.1.6 文件查找
find命令
find命令用于在目录结构中搜索满足查询条件的文件并执行指定操作
find [路径…] [匹配表达式] \*匹配任意字符,?匹配单个字符
选项:-name find /etc -name init *init\*
-iname 忽略大小写
-size 按照数据块大小搜索0.5kb +大于 -小于 等于
如:find / -size +204800
-user 按照所有者查找 -group 根据所属组查找
-amin 访问时间access
-cmin 文件属性修改时间 change
-mmin 文件内容修改时间 modify
如:find /etc -cmin -5
连接选项:-a -o
find /etc -size +10000 -a -size 1000
-type 根据文件类型查找 f 文件 d 目录 l 软链接
-inum 根据文件索引号搜索
find -inum 3000 -exec rm {} \;
-exec/-ok{} \ ; 命令对搜索结果执行操作,-exec直接执行,
-ok执行前询问
find /etc -name inittab -a -type f -exec ls -l {} \;
locate命令
locate命令用于查找文件,它比find命令的搜索速度快,在资库/var/lib/mlocate/mlocate.db中查找,但新创建的文件也许找不到,需要使用updatedb手动更新数据库
locate [选项] [文件]
如:locate chgpasswd
touch a
locate a
updatedb
locate a
3.2.1.7 文件(目录)复制
cp命令将源文件或目录复制到目标文件或目录中
cp [选项] 源文件或目录 目标文件或目录
cp /tmp/file1 /root 复制文件file1
-p 保持时间属性
-r 复制目录
cp -r /tmp /root 复制目录
cp -r /tmp/hxw /root/zhangsan 复制的同时更名
3.2.1.8 文件(目录)删除
rm命令可以删除一个目录中的一个或多个文件和目录,也可以将某个目录及其下属的所有文件和子目录删除。
rm [选项] 文件列表 //无回收站,所以谨慎执行
-r 删除目录 -f 强制执行
rm file1 删除文件
rm -r /tmp/hxw 删除目录
rm -rf / 切记不要使用
rm -rf * 删除当前目录下所有文件
3.2.1.9 文件(目录)移动
mv命令用来移动文件或目录,还可在移动的同时修改文件或目录名。
mv [选项] 源文件或目录 目标文件或目录
mv /tmp/hxw /root //移动hxw目录到root目录
mv file1 flie2 //将当前工作目录下的file1更名为file2
3.2.1.10 链接文件创建
链接文件命令是ln,该命令在文件之间创建链接
建立符号链接文件的语法格式:(快捷方式)
ln –s 目标(原文件或目录) 链接文件
如:ln -s /etc/issue /tmp/issue.soft
建立硬链接文件的语法格式:(同步更新)
ln 目标(原文件) 链接文件
如:ln /etc/issue /tmp/issue
3.2.1.11 文件压缩与解压缩
windows 下 .zip .rar Linux下 .gz .zip .bz2
gzip命令
gzip命令用于对文件进行压缩和解压缩。(压缩时删除原文件)
gzip [选项] 压缩文件名/解压缩文件名
gzip file1 生成file1.zp压缩文件
bzip2 -k 文件 (不删除原文件,压缩比高,后缀为.bz2)
解压缩 gzip -d 或者 gunzip 解压缩
tar命令
tar命令用于对目录进行打包。
tar [选项] 文件或目录名
-c 打包和压缩 -x解压缩
-v 显示详细信息 -f 指定文件名
-z 用gzip命令对gz格式的文件进行操作
tar -cvf hxw.tar /tmp 生成hxw.tar文件
gzip hxw.tar 生成hxw.tar.gz文件
tar -zxvf hxw.tar.gz 解包
zip命令
文件(目录)压缩与解压缩 (不删除原文件,压缩比低)
zip 选项 [压缩后文件名] [文件或目录]
-r 压缩目录
unzip命令用于对zip格式的压缩文件进行解压缩
unzip [选项] 压缩文件名
3.4 管理文件和目录权限
3.4.1 文件访问者身份与文件访问权限
3.4.1.1 文件访问者身份
- 所有者(属主u)
- 所属组(属组g)
- 其他用户 (o)
3.4.1.2 文件访问权限
- 读(r):读取文件内容或者查看目录。
- 写(w):修改文件内容或者创建、删除文件。
- 执行(x):执行文件或者允许使用cd命令进入目录
3.4.1.3 文件属性
[文件权限][链接][所有者][所属组][容量] [修改日期][文件名]
-rw-r--r-- 1 zxp zxp 8980 7月 14 21:11 examples.desktop
[文件权限] [链接][所有者][所属组] [容量] [ 最后修改日期 ] [ 文件名 ]
-rw-r--r-- 1 zxp zxp 8980 7月 14 21:11 examples.desktop
[文件权限] [链接][所有者][所属组] [容量] [ 最后修改日期 ] [ 文件名 ]
3.4.2 变更文件访问者身份
3.4.2.1 变更所有者
使用chown命令变更文件所有者,使其他用户对文件具有所有权(只有管理员root才可以)
chown [选项] [新所有者] 文件列表
如:sudo chown hxw file1
3.4.2.2 变更所属组
使用chgrp命令可以变更文件的所属组
chgrp [选项] [新的所属组] 文件列表
使用chown命令同时变更文件所有者和所属组
chown [选项] [新所有者]: [新的所属组] 文件列表
-R 选项进行递归变更
3.4.3 设置文件访问权限
3.4.3.1 设置文件访问权限
(文件权限用字符表示)
chmod [选项] 文件
+表示增加某种权限,−表示撤销某种权限,=表示指定某种权限(同时会取消其他权限)
所有者、所属组和其他用户分别用字符u、g、o表示,全部用户(包括3种用户)则用a表示。
权限类型用r、w和x表示
chmod u+x file1
默认管理员新创建的普通文件的权限被设置为:
rw-r--r--,用数字表示为644。
新创建的目录权限为:rwxr-xr-x,用数字表示为755
默认权限通过umask(掩码)实现,掩码用数字表示,实际上是文件权限码的“补码”
创建目录的最大权限为777,减去umask值(如022),就得到目录创建默认权限(如777−022=755)
创建文件的最大权限为666,减去umask值(如022),就得到文件创建默认权限(如666−022=644)
可使用umask命令来查看和修改umask值。
3.4.4 设置默认文件访问权限
将权限读(r)、写(w)和执行(x)分别用数字4、2和1表示,没有任何权限则表示为0
权限用其各项权限的和表示(结果为0~7之间的数字),依次为所有者(u)、所属组(g)和其他用户(o)的权限
如:chmod 644 file1
3.4.5 设置特殊权限
特殊权限共有3种:suid、sgid和sticky。
Linux的suid(setuid)和sgid(setgid)与用户进程的权限有关。
suid和sgid用字符表示,分别为s和g。要在文件属性中表示这些特殊权限,将在执行权x标志位置上显示。
suid和sgid权限使用八进制数字分别表示为4和2。
为防止用户任意删除或修改别人的文件,可以设置sticky权限。
sticky权限只对目录有效。
sticky权限用字符表示t,用八进制数字表示为1。
3.5 图形界面中管理文件和文件夹访问权限\
3.5.1 可设置的目录访问权限
无:没有任何访问权限(不能对所有者设置此权限)
只能列出文件:可列出文件清单。
访问文件:可以查看文件,但是不能做任何更改。
创建和删除文件:这是最高权限
3.5.2 可设置的文件访问权限
无:没有任何访问权限(不能对所有者设置此权限)。
只读:可打开文件查看内容,但是不能做任何更改。
读写:打开和保存文件。
执行:允许以程序方式运行文件。
第四章 磁盘存储管理
4.1 Linux磁盘存储概述
4.1.1 磁盘数据组织
低级格式化
- 将空白磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识区、间隔区(GAP)和数据区等。
磁盘分区(扇区->分区)
- 磁盘在系统中使用都必须先进行分区。
- 分区也有助于更有效地使用磁盘空间。
- 每一个分区在逻辑上都可以视为一个磁盘。
高级格式化
- 在磁盘分区上建立相应的文件系统。
- 通常说的格式化就是指的高级格式化。
4.1.2 Linux磁盘设备命名
磁盘设备命名原则
Linux设备文件名用字母表示不同的设备接口。
/dev/hda表示第1个IDE通道(IDE1)的主设备
/dev/hdb表示第1个IDE通道的从设备(slave)
原则上SCSI、SATA、USB接口硬盘的设备文件名均以/dev/sd开头。
SATA硬盘类似SCSI,在Linux中用类似/dev/sda、/dev/sdb这样的设备名表示。
同类文件应使用同样的后缀或扩展名。
4.1.3 Linux磁盘分区
分区样式MPR与GPT
-
MBR最多可支持4个磁盘分区。
磁盘分区命名 -
Linux磁盘分区的文件名需在磁盘设备文件名后加上分区编号。
-
IDE硬盘分区采用/dev/hdxy这样的形式命名。
-
SCSI、SATA、USB硬盘分区以/dev/sdxy这样的形式命名.
-
其中x是小写字母a,b,c… y是数字1,2,3,4…
如:/dev/sda1
4.1.4 Linux文件系统
概述
- 目录结构是操作系统管理文件的逻辑方式,(对用户可见)。而文件系统是磁盘或分区上文件的物理存放方法。(对用户不可见)。
- Linux文件系统格式主要有ext2、ext3、ext4等。
- Linux还支持hpfs、iso9660、minix、nfs、vfat(FAT16、FAT32)
- ext系列一直是Linux首选的文件系统格式。
- Ubuntu使用ext4作为其默认文件系统。
- Windows默认文件系统为NTFS。
4.1.4.1 ext4文件系统
ext4修改了ext3中部分重要的数据结构,提供更佳的性能和可靠性,以及更为丰富的功能。
属于大型文件系统,支持最高1EB(1048476TB)的分区,最大16TB的单个文件。
引入现代文件系统中流行的Extent文件存储方式。
支持持久预分配。
能够尽可能地延迟分配磁盘空间。
支持无限数量的子目录。
使用日志校验来提高文件系统可靠性。
支持在线磁盘碎片整理。(电脑买回来好用,一段时间后就卡的不行。就是因为磁盘碎片化了。)
4.1.4.2 分区类型:Linux Native与Linux Swap
- Ubuntu至少需要一个Linux Native分区和一个Linux Swap分区。
- Native分区是存放系统文件的地方,只能使用ext文件系统。
- Swap分区是Linux暂时存储数据的交换分区。
4.1.4.3 规划磁盘分区
- 规划磁盘分区,需要考虑磁盘的容量、系统的规模与用途、备份空间等。
- Linux系统磁盘最基本的分区只需两个,一个根分区(/)和一个Swap分区。Swap分区大小一般为物理内存的两倍。
- 为提高可靠性,系统磁盘可以考虑增加一个引导分区(/boot)
- 如果磁盘空间很大,可以按用途划分多个分区。如/var /usr /tmp
4.1.4.4 磁盘分区规划
分区类型:Linux Native与Linux Swap
- Ubuntu至少需要一个Linux Native分区和一个Linux Swap分区。
- Native分区是存放系统文件的地方,只能使用ext文件系统。
- Swap分区是Linux暂时存储数据的交换分区。
规划磁盘分区
- 规划磁盘分区,需要考虑磁盘的容量、系统的规模与用途、备份空间等。
- Linux系统磁盘最基本的分区只需两个,一个根分区(/)和一个Swap分区。Swap分区大小一般为物理内存的两倍。
- 为提高可靠性,系统磁盘可以考虑增加一个引导分区(/boot)
- 如果磁盘空间很大,可以按用途划分多个分区。如/var /usr /tmp
磁盘分区工具
命令行工具可以使用fdisk和parted。
Ubuntu提供一个基于文本窗口界面的分区工具cfdisk。
Ubuntu内置一个图形界面的磁盘管理器。
执行sudo cfdisk
4.2 管理磁盘分区
4.2.1 主要步骤
(1)对磁盘进行分区。
(2)在磁盘分区上建立相应的文件系统,这个过程称为建立文件系统或者格式化。
(3)建立挂载点目录,将分区挂载到系统相应目录下,就可访问该文件系统。
4.2.2 使用fdisk进行分区管理
简介
fdisk可以在两种模式下运行。
非交互式语法:
fdisk [选项] <磁盘设备名>
fdisk -l [<磁盘设备名>]
不带任何选项,以磁盘设备名为参数运行fdisk就可以进入交互模式
如:sudo fdisk /dev/sda
查看现有分区
执行命令fdisk -l可列出系统所连接的所有磁盘的基本信息,也可获知未分区磁盘的信息。
要查看某一磁盘的分区信息,在非交互模式输入命令fdisk -l后面加上磁盘名称
进入fdisk程序的交互模式,执行p指令也可查看磁盘分区表。
创建分区
使用fdisk的交互模式来对磁盘进行分区操作。
执行带磁盘设备名参数的fdisk命令,进入交互操作界面,一般先执行命令p来显示硬盘分区表的信息,然后再根据分区信息确定新的分区规划,再执行命令n创建新的分区。
修改分区类型
在fdisk命令的交互模式执行t命令改变分区类型。
执行l命令查询Linux支持的分区类型号码及其对应的分区类型。
改变分区类型结束后,执行w命令保存并且退出。
删除分区
在fdisk的交互模式下执行d命令指定要删除的分区编号。
执行w命令使之生效。
保存分区修改结果
要使磁盘分区的任何修改生效,必须执行w命令保存修改结果。
执行q命令退出fdisk,当前所有操作均不会生效。
4.2.3 建立文件系统格式化磁盘分区
查看文件系统类型
file命令用于查看文件类型,磁盘分区可以视作设备文件,使用选项-s可以查看块设备或字符设备的类型。
使用mkfs创建文件系统
建立文件系统通常使用mkfs工具,其语法格式为:
mkfs [选项] [-t 文件系统类型] [文件系统选项] 磁盘设备名 [大小]
mkfs只是不同文件系统创建工具(如mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.msdos)的一个前端。
对于新建立的文件系统,可以使用选项-f强制检查。
创建和使用卷标
卷标可用于在挂载文件系统时代替设备名,指定外部日志时也可用卷标,形式为LABEL=卷标。
使用mke2fs、mkfs.ext3、mkfs.ext4命令创建一个新的文件系统时,可使用-L选项为分区指定一个卷标(不超过16个字符)。
要为现有ext2/3/4文件系统显示或设置卷标,使用e2label命令:
e2label 设备名 [新卷标]
使用以下命令也可设置卷标。
tune2fs –L 卷标 设备名
创建和使用UUID
与卷标相比,UUID更具惟一性,这对USB驱动器这样的热插拔设备尤其有用。
代替文件系统设备名称时采用的形式为UUID=UUID号。
Linux系统在创建ext2/3/4文件系统时会自动生成一个UUID。
可以使用blkid命令来查询文件系统的UUID。
使用tune2fs来设置和清除文件系统的UUID:
tune2fs -U UUID号 设备名
4.2.4 挂载文件系统
挂载文件系统
一个文件系统不应该被重复挂载在不同的挂载点(目录)中。
一个目录不应该重复挂载多个文件系统。
作为挂载点的目录通常应是空目录。
手动挂载文件系统
使用mount命令进行手动挂载:
mount [-t 文件系统类型] [-L 卷标] [-o 挂载选项] 设备名 挂载点目录
解决挂载的磁盘无权限问题
- 切换为root用户
- 先卸载,改挂载点权限,重新挂载
自动挂载文件系统
将要自动挂载的设备和挂载点信息加入到/etc/fstab配置文件中。
/dev/sdc2 /home/hxw/mytest ext4 default 0 0
/etc/mtab配置文件
用于记录当前已挂载的文件系统信息。
执行挂载或卸载操作时系统将挂载或卸载信息实时写入/etc/mtab文件中。
卸载文件系统
umount [-dflnrv] [-t <文件系统类型>] 挂载点目录|设备名
4.2.5 检查维护文件系统
使用fsck检验并修复文件系统
fsck [选项] 设备名
使用df检查磁盘空间占用情况
使用du查看文件和目录的磁盘使用情况
du [选项] [目录或文件]
将ext3文件系统转换为ext4文件系统
使用以下命令将原有的ext2文件系统转换成ext3文件系统:
tune2fs -j 分区设备名
将ext3文件系统转换为ext4文件系统,首先使用umount命令将该分区卸载,然后再执行tune2fs命令进行转换,最后使用mount命令挂载转换之后的ext4文件系统
tune2fs -O extents,uninit_bg,dir_index 分区设备名
4.3 文件系统备份
4.3.1 数据备份概述
备份内容
- 系统备份:对操作系统和应用程序的备份。
- 用户备份:用户备份应该比系统备份更加频繁。
备份策略
- 完全备份(Full Backup)
- 增量备份(Incremental Backup)
- 差异备份(Differential Backup)
备份规划
- 单纯的完全备份
- 完全备份结合差异备份
4.3.2 使用存档工具进行简单备份
使用tar命令进行存档
tar是用于文件打包的命令行工具,可以将一系列文件归档到一个大文件中,也可以将档案文件解开已恢复数据。
tar [选项] 档案文件 文件或目录列表
使用dd命令进行存档
dd是一种文件转移命令,用于复制文件,并在复制的同时进行指定的转换和格式处理。
使用if选项指定输入端,of选项指定输出端。
dd常用来制作光盘映像(光盘必须是iso9660格式)。
使用dump命令备份
dump是一个较为专业的备份工具,能备份任何类型的文件,甚至是设备。
dump支持完全备份、增量备份和差异备份,支持跨多卷磁带备份
dump需要指定一个备份级别,它是0-9之间的一个整数。
使用restore命令恢复
restore是dump对应的恢复工具。
使用restore命令恢复数据两种方式:交互式和直接恢复。
恢复整个备份,或者只恢复需要的文件。
4.3.3 光盘备份
Ubuntu预装有cdrecord软件包,可以用来创建和管理光盘介质。
首先建立一个光盘映像文件,然后将该映像文件写入光盘中。
使用mkisofs命令或dd命令建立光盘映像。
刻录机在Linux中被识别为SCSI设备。在实际刻录光盘之前,可以使用命令cdrecord -scanbus对刻录设备进行检测。
使用cdrecord命令将ISO文件刻录为光盘:
cdrecord -v -eject <speed=刻录速度> <dev=刻录机设备> <ISO文件名>
第六章 系统高级管理
6.1 Linux进程管理
6.1.1 进程概念
- 进程由程序产生,是动态的,是一个运行着的、要占用系统运行资源的程序。
- 系统给每一个进程都分配了一个唯一的进程标识符(进程号,简称PID)。
6.1.2 进程类型
- 交互进程:在Shell下通过执行程序所产生的进程,可在前台或后台运行。
- 批处理进程:一个进程序列。
- 守护进程:又称监控进程,是指那些在后台运行,并且没有控制终端的进程,通常可以随着操作系统的启动而运行,也可将其称为服务。
6.1.3 查看进程
6.1.3.1 进程参数
- PID:进程号(Process ID),用于唯一标识进程。
- PPID:父进程号(Parent PID),创建某进程的上一个进程的进程号。
- USER:启动某个进程的用户ID和该用户所属组的ID。
- STAT:进程状态,颐和进程可能处于多种状态,如运行、等待、停止、睡眠、僵死等。
- PRIORITY:进程的优先级。
- 占用资源:包括CPU、内存等资源的占用信息。
6.1.3.2 ps命令
- ps命令是最基本的进程查看命令,可确定有哪些进程正在运行、进程的状态、进程是否结束、进程是否僵死、哪些进程占用了过多的资源等等。
- ps命令最常用的还是监控后台进程的工作情况。
- 最常用的是使用aux选项组合。
6.1.3.3 top命令
- top命令用于动态显示系统进程信息,可以每隔一短时间刷新当前状态,还提供一组交互式命令用于进程的监控。
- top -p 进程号 //查看指定PID的进程
6.1.4 Linux进程管理
6.1.4.1 启动进程
- 手动启动:在Shell命令行下输入要执行的程序来启动一个进程。其启动方式又分为前台启动和后台启动,默认为前台启动。若在要执行的命令后面跟随一个符号“&”,则为后台启动。返回进程对应的ID号。
- 调度启动:事先设置好程序要运行的时间,当到了预设的时间后,系统自动启动程序。
6.1.4.2 进程的挂起及恢复
- 在运行进程的过程中使用+组合键可挂起当前的前台作业,将进程转到后台。
- 如:先执行top命令,再使用+组合键可将top任务放到后台挂起。
6.1.4.3 结束进程的运行
使用组合键<Ctrl>+<C>中断前台进程。
如:命令行执行top命令,然后按组合键<Ctrl>+<C>可中断改进程执行。
使用kill命令结束后台进程:
kill [-s,--信号|-p] [-a] 进程号
kill -9 进程号
killall 进程名
恢复进程执行有两种选择,一种是用fg命令将挂起的作业放回到前台执行;另一种是用bg命令将挂起的作业放到后台执行。
6.1.4.4 管理进程的优先级
进程优先级可以用nice值表示,范围一般为-20~19,-20为最高优先级,19为最低优先级,系统进程默认的优先级值为0。
命令nice用于设置将要运行进程的优先级:
nice [-n] [命令 [参数] ... ]
命令renice用于调整正在运行进程的优先级:
renice [优先级] [PID] / [进程组] / [用户名称或ID]
6.2 使用systemd管控系统和服务
6.2.1 systemd与系统初始化
SysVinit初始化方式
基于运行级别(Runlevel)。
使用/etc/inittab文件配置文件。
优点
sysVinit初始化方式原理简单,易于理解。
可以依靠Shell脚本控制服务启动,服务脚本编写比较容易。
不足
sysVinit启动是线性、顺序的,启动过程比较慢。
Upstart初始化方式
并行启动服务的机制。
systemd系统初始化使用systemd取代init,作为系统第一个进程。
systemd不通过init脚本来启动服务,而是采用一种并行启动服务的机制。
特点
所有服务和任务都是由事件驱动的,Upstart是并行的。
可充分利用计算机多核的特点,大大减少启动所需的时间,提高系统启动速度。
Ubuntu从6.10版开始支持Upstart方式,同时也使用SysVinit。
UpStart主要实现了服务的即插即用。
Systemd初始化方式
并行启动服务的机制
systemd系统初始化使用systemd取代init,作为系统第一个进程。
systemd不通过init脚本来启动服务,而是采用一种并行启动服务的机制。
特点
systemd使用单元文件替换之前的初始化脚本。
systemd使用启动目标(Target)替代运行级别。
systemd使用类似缓冲池的办法解决服务之间的依赖性。
提高了并行启动能力,极大地缩短了系统启动时间。
systemd与sysVinit兼容,支持并行化任务,按需启动守护进程。
Ubuntu从15.04版开始支持systemd。
6.2.2 vsystemd的主要概念和术语
启动目标(Target)和运行级别(Runlevel)
6.2.3 Linux启动过程
(1)BIOS启动。
(2)启动引导加载程序。
(3)装载内核。
(4)系统初始化。
6.2.4 检测和分析systemd启动过程
检测和分析systemd启动过程
- 执行systemd-analyze time命令查看启动耗时,即内核空间和用户空间启动时所花的时间。
- 执行systemd-analyze blame命令查看正在运行的每个单元的启动耗时,并按照时长排序。
- 执行systemd-analyze critical-chain命令分析启动时的关键链,查看严重消耗时间的单元列表。
管理启动目标
- 查看当前的启动目标 :systemctl list-units --type=target
- 切换到不同的目标 :systemctl isolate 目标名.target
- 查看默认启动目标:systemctl get-default
- 进入系统救援模式和紧急模式:sudo systemctl rescue ,sudo systemctl emergency
6.3 进程的调度启动-自动化任务配置
6.3.1 使用Cron服务安排周期性任务
- 使用配置文件/etc/crontab 定义系统级周期性任务
- 在etc/cron.d目录中定义个别的周期性任务
要为计划任务指定其他时间点,则可以考虑在/etc/cron.d/目录中添加自己的配置文件,格式同/etc/crontab,文件名可以自定义。
特点:适合root及具有root权限的用户
6.3.2 使用anacron唤醒停机期间的调度任务
- 配置anacron
- 使用systemd 定时器安排anacron 运行。
- 使用Cron 服务安排anacron 运行。
- anacron根据/etc/anacrontab 配置文件执行每天、每周和每月的调度任务。
- anacron与Cron 结合
- Ubuntu 通过 anacron 来解决每天、每周和每月要定期启动的调度任务,执行的是某个周期的任务调度。
- 默认情况下 systemd 定时器安排 anacron 每小时运行一次。anacron 根据/etc/anacrontab 的配置执行/etc/cron.daily、/etc/cron.weekly 和/etc/cron.monthly 目录中的调度任务脚本。管理员可以根据需要将每天、每周和每月要执行任务的脚本放在上述目录中。
- Cron 服务每分钟会读取/etc/crontab 文件、etc/cron.d/目录和/var/spool/cron 目录中的配置信息,执行的是精确定时任务调度。管理员可以根据需要将每小时要执行任务的脚本放入/etc/cron.hourly 目录中
6.3.3 使用at和batch工具安排一次性任务(Ubuntu默认没有安装该软件)
-
概述
-
使用at在指定时间内调度一次性任务。
-
batch用于在系统平均载量降到0.8以下时执行一次性的任务
-
两个工具都由at软件包提供,由at服务支持。
-
-
配置at作业的步骤
- 在命令行中执行at命令进入作业设置状态。
- 出现at>提示符,进入命令编辑状态,设置要执行的命令或脚本。可指定多条命令,每输入一条命令,按键。
- 需要结束时按+组合键退出。
- 可根据需要执行命令atq查看等待运行(未执行)的作业。
- 如果at作业需要取消,可以在atrm命令后跟atq命令输出的作业号来删除该at作业。
6.4 系统日志管理
6.4.1 配置和使用系统日志
-
配置系统日志
-
系统日志相关文件
-
Ubuntu的日志配置文件为/etc/rsyslog.conf。
-
采用rsyslog的Ubuntu将所有的配置文件放置在/etc/rsyslog.d目录中,默认的etc/rsyslog.d/50-default.conf,可以定制该文件来实现系统日志的配置,如记录日志的信息来源、信息类型以及保存位置。
-
配置文件中每一行都代表一条设置值。
信息来源.优先级 处理方式
-
-
日志文件定义规则——信息来源
-
日志文件定义规则——优先级
-
日志文件定义规则——处理方式
- 将信息存储到指定文件。
- 将信息发送到指定设备。
- 将信息发给某个用户。
- 将信息发送到命名管道。
- 将信息发送到远程主机。
-
-
查看和管理系统日志内容
- 大部分的日志文件集中存储在/var/log目录。
- 系统日志服务产生的记录文件的每一行就是一条信息,每一行包含的字段:
信息发生的日期、时间、主机、产生信息的软件、软件或者软件组件的名称(可以省略)、PID(进程标识符,可以省略)、信息内容 - 使用echo命令清空日志文件的内容,命令格式
echo > 日志文件
6.4.2 配置和使用Systemd日志
- 配置systemd日志服务
- systemd日志的配置文件是/etc/systemd/journald.conf。
- Storage用于控制何处存储日志数据。
- SystemMaxUse用于更改日志大小限制。
- 执行systemctl status systemd-journald可查看systemd日志服务的当前状态。
- 查看systemd日志条目
- 按条目数查看日志。
- 按类别查看日志。
- 按时间范围查看日志。
- 指定日志显示格式。
- 查询某单元(服务)日志。
- s组合查询日志。
- 管理维护systemd日志
- 使用journalctl --disk-usage命令查看systemd日志当前的磁盘使用情况。
- 使用journalctl命令清理日志归档文件以释放磁盘空间。
- 使用–vacuum-size选项限制归档文件的最大磁盘使用量。
- 使用–vacuum-time选项清除指定时间之前的归档。
- 使用–vacuum-files选项限制日志归档文件的最大数量。
考试题库
选择题
1、如何删除一个非空子目录/tmp (B)
A、del /tmp/* B、rm -rf /tmp C、rm -Ra /tmp/* D、rm -rf /tmp/*
2、解压文件tar. tar. gz:(A)
A、tar -zxvf tar. tar. gz B、tar -jxvf tar. tar. gz C、tar -cxvf tar. tar. gz D、tar -jvf tar. tar. gz
3、显示一个文件最后几行的命令是(B)
A、las t B、tail C、rear D、tac
4、用命令列出下面的文件列表,请问那一个文件是符号链接文件(D)
A、-rw-----2 hel-s users 56 Sep 09 11:05 hello
B、-rw-----2 hel-s users 56 Sep 09 11:05 goodbey
C、drwx----1 hel users 1024 Sep 10 08:10 zhang
D、Irwx----1 hel users 2024 Sep 12 08:12 cheng
5、对于In命令,下列哪项说法是不正确的(D)
A、In命令会保持每一处链接文件的同步性
B、软链接在用户选定的位置上生成一个文件的镜像
C、In命令的链接对象可以是文件
D、实质上硬链接与原文件是不同的文件
6、用”useradd std”命令添加个用户,这个用户的主目录是什么?(B)
A、/etc/std B、/home/std C、/std/home D、/bin/std
7、你是Linux系统员,在/root下编写一个脚本文件 showenv。你运行此脚本,命令下: ./showenv结果显示错误提示如下:bash:./showennv:权限不够于是你运行命令11 showenv 显示如下:-rw-r–r-- 1 root root 155 6月19 09: 58 showenv你想实现只有自己可以运行此脚本,而其他帐户不能运行,你需要运行命令(B)。
A. chmod g+x showenv B. chmod u+x showeny
C. chmod o+x showenv D.以上命令都不能实现
8、在给定文件中查找与设定条件相符字符串的命令为: (B)
A gzip B grep C find D sort
9、使用重定向来把test.txt文件中内容输出:(B)
A、more > test.txt B、more < test.txt
C、more << test.txt D、more | grep test.txt
10、主分区和扩展分区的最大的区别:(C)
A、大小不一样 B、挂载点不一样 D、主分区在硬盘物理位置的最前面
C、主分区的作用就是用来进行启动操作系统的,因此引导程序都应该存放在主分区上。
11、在Ubuntu Linux中,系统默认的(A)用户对整个系统拥有完全的控制权。
A. root B. guest C. administrator D.supervistor.
12、当登录Linux时,一个具有唯一进程ID号的shell将被调用,这个ID是什么( B )
A. NID B. PID C. UID D. CID
13、下面哪个命令是用来定义shell的全局变量( D )
A. exportfs B. alias C. exports D. export
14、 如果要列出一个目录下的所有文件需要使用命令行( C )。
A. ls –l B. ls C. ls –a D. ls –d
15、 哪个命令可以将普通用户转换成超级用户(D )
A. super B. passwd C. tar D. su
16、 在vi编辑器里,命令"dd"用来删除当前的( A )
A. 行 B. 变量 C. 字 D. 字符
17、 按下(A)键能终止当前运行的命令
A. Ctrl-C B. Ctrl-F C. Ctrl-B D. Ctrl-D
18、用 “rm -i”,系统会提示什么来让你确认( B )
A. 命令行的每个选项 B. 是否真的删除 C. 是否有写的权限 D. 文件的位置
19、 以下哪个命令可以终止一个用户的所有进程( D )
A. skillall B. skill C. kill D. killall
20、在Ubuntu Linux中,一般用( D )命令来查看网络接口的状态
A. ping B. ipconfig C. winipcfg D ifconfig
21、vi中哪条命令是不保存强制退出( C )
A. :wq B. :wq! C. :q! D. :quit
22、在下列分区中,Linux默认的分区是( B )
A. FAT32 B. EXT3 C FAT .D NTFS
23、如果用户想对某一命令详细的了解,可用(C)
A. ls B. help C. man D dir
24、用户编写了一个文本文件a.txt,想将该文件名称改为txt.a下列命令(D)可以实现。
A. cd a.txt xt.a B. echo a.txt > txt.a
C. rm a.txt txt.a D. cat a.txt > txt.a
25、Linux文件权限一共10位长度,分成四段,第三段表示的内容是(C)。
A. 文件类型 B. 文件所有者的权限
C. 文件所有者所在组的权限 D. 其他用户的权限
26、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为(D)。
A. 467 B. 674 C. 476 D. 764
27、下列不是Linux系统进程类型的是_D_____ 。
A. 交互进程 B. 批处理进程 C. 守护进程 D. 就绪进程
28、在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是(D) 。
A. fold B. join C. tr D. read
29、Linux系统的开发模型是(B)。
A.教堂模型 B.集市模型 C.层次模型 D.网状模型
**30、当字符串用单引号(’’)括起来时,SHELL将 (C) 。
A.解释引号内的特殊字符 B.执行引号中的命令
C.不解释引号内的特殊字符 D.结束进程
31、为卸载一个软件包,应使用(B) 。 A.rpm -i B.rpm -e C.rpm -q D.rpm -V
32、若当前目录为/home,命令ls –l 将显示home目录下的(D)。
A.所有文件 B.所有隐含文件 C.所有非隐含文件 D.文件的具体信息
33、ubuntu Linux默认使用的文件系统类型为(B)
A.ext2 B.ext3 C.FAT D.swap
34、若要使用进程名来结束进程,应使用(A)命令。
A.kill B.ps C.pss D.pstree
35、 ubuntu Linux所提供的安装软件包,默认的打包格式为( C)。
A…tar B…tar.gz C…rpm D…zip
36、以下文件中,只有root用户才有权存取的是(B)
A.passwd B.shadow C.group D.password
37、usermod命令无法实现的操作是(B)
A.账户重命名 B.删除指定的账户和对应的主目录
C.加锁与解锁用户账户 D.对用户密码进行加锁或解锁
38、下列哪个命令在建立一个 tar归档文件的时候列出详细列表(A)。
A.tar -t b)tar -cv c)tar -cvf d)tar –r
39、关于Linux内核版本的说法,以下错误的是(C)。
A.表示为主版本号.次版本号.修正号 B.1.2.3表示稳定的发行版
C.1.3.3表示稳定的发行版 D.2.2.5表示对内核2.2的第5次修正
40、自由软件的含义是(B)。
A.用户不需要付费 B.软件可以自由修改和发布
C.只有软件作者才能向用户收费 D.软件发行商不能向用户收费
41、cd命令可以改变用户的当前目录,当用户键入命令“cd”并按Enter键后(C)。
A.当前目录改为根目录 B.当前目录不变,屏幕显示当前目录
C.当前目录改为用户主目录 D.当前目录改为上一级目录
42、如果您想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么您可以使用的命令是(B)。
A. ls *.txt B. find . –name “.txt” C. ls –d .txt D. find . “.txt”
43、假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是(B)
A.fileB也随之被删除 B. fileB仍存在,但是属于无效文件
C. 因为fileB未被删除,所以fileA会被系统自动重新建立
D. fileB会随fileA的删除而被系统自动删除
**44、下列那一个指令可以显示目录的大小( C )**A.dd B.df C.du D.dw
45、下面哪个系统目录中存放了系统引导、启动时使用的一些文件和目录( D )。
A./root B. /bin C. /dev D. /boot
46、1、 以下哪个是Linux内核的稳定版本(B)
A、2.5.24 B、2.6.17 C、1.7.18 D、2.3.20
47、下列关于操作系统的叙述中,哪一条是不正确的?(C)
A.操作系统管理计算机系统中的各种资源 B.操作系统为用户提供良好的界面
C.操作系统与用户程序必须交替运行 D.操作系统位于各种软件的最底层
48、以下哪个不是Linux的发行版本(A)
A.FreeBSD B.Fedora C.CentOS D.Debian
填空题
**1、**显示当前目录命令(pwd)
2、存放用户帐号的文件是(/etc/passwd)。
**3、**在Linux操作系统中,设备都是通过特殊的(文件)来访问,Linux中一切皆文件。
**4、**shell不仅是(用户命令的解释器),它同时也是种功能强大的程序设计语言。
**5、**在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有(空格)。
6、bash shell脚本的第一行是(#!/bin/bash)。
**7、**当运行在多用户模式下时,用Ctrl+ALT+F*可以切换(6)个虚拟用户终端
8、某文件的权限为:d-rw-_r–_r–,用数值形式表示该权限644,该文件属性是 目录。
9、 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
10、 编写的Shell程序运行前必须赋予该脚本文件执行权限(chmod u+x filename)。
**11、**安装Linux分区时,必须有两种分区类型:Linux原始分区(根分区)和Linux交换分区。
**12、**在Linux的两种链接文件中,只能实现对文件链接的一种方式是:软链接(符号链接)。
13、将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式tar czvf wang.tar.gz /home/stud1/wang。
14、对于文件file,统计所有包含字符串”WHU”的行数的一条命令是grep WHU file | wc **–**l。
**15、**在Linux 中,管道分为 2 种类型,若创建或打开管道时获得的描述符存放在fd中,则fd[1]是 管道写描述符。
16、df命令完成显示文件系统空间使用情况功能,du命令完成显示目录或文件占用磁盘空间容量功能。
17、将前一个命令的标准输出作为后一个命令的标准输入,称之为管道 。
**18、**在/root文件夹下查找后缀为.cpp的文件。find /root –name *.cpp。
**19、**将光盘/dev/hdc卸载的命令 。umount /dev/hdc。
20、关闭linux系统(不重新启动)可使用halt命令。
21、修改以太网mac地址的命令为ifconfig。
22、删除文件命令为rm。
23、改变文件所有者的命令为chown。
24、存放Linux基本命令的目录是/bin。
25、输入了Shell命令的部分字符后按tab键可补全其余部分 。
26、要显示内存用量用free命令 。
27、完全删除/tmp下的所有文件用rm –r /tmp命令。
28、要强制杀死某个进程用kill -9 PID命令。
29、默认情况下,超级用户和普通用户的登录提示符分别是:“#”和“$”。
**30、**Linux系统中有三种基本的文件类型:普通文件、目录文件和设备文件。
**31、**在UNIX/Linux系统添加新用户的命令是(useradd )。
**32、**修改用户自身的密码可使用( passwd)。
**33、**显示系统主机名的命令是( uname -n )。
**34、**在vi编辑器中的命令模式下,键入(o)可在光标当前所在行下添加一新行。
**35、**若一台计算机的内存为128MB,则交换分区的大小通常是(256MB )。
**36、**NFS是(网络文件)系统。
**37、**删除目录 /tmp下的所有文件及子目录的命令是(rm –rf /tmp/*)。
**38、**对文件重命名的命令为(mv )
**39、**vi编辑器具有三种工作模式,即:命令模式、文本编辑模式和 行编辑模式
**40、**把文件file1和file2合并成file3的命令是 cat file1 file2>file3
**41、**在/home目录中查找所有的用户目录的命令是 find /home –type d
**42、**利用管道技术统计当前目录下有多少个文件,该命令是 ls ./|wc –w
**43、**在 Linux 系统中,压缩文件后生成后缀为.gz文件的命令是 gzip
**44、**将当前目录下的bin目录和hello、hello.c文件备份并压缩为binzxj.tar.gz文件的命令是 tar –czvf binzxj.tar.gz bin hello hello.c
**45、**将/home/ixdba目录做归档压缩,压缩后生成ixdba.tar.bz2文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar -cjvf /home/ ixdba.tar.bz2 /home/ixdba
**46、**自由软件组织的缩写是(GNU)。
**47、**Linux的发展始于1991年,它是由(芬兰)的一名大学生开发的。
命令题
(1)正则表达式意思:
[alpha:]- 英文大小写字母 nl /etc/passwd|sed *2,5d’- 删除etc/passwd的2-5行
[:digit]- 数字 grep -n 00 test.txt - 查找test.txt中含有00语句
(2)语句表达意思:
lastItr ‘[a-z]’ ‘[A-Z]’- 把小写字符转化为大写
cat /etc/man.config| we-输出文件含有行字数字符数
Declare-i sum=100+10+20 - 计算100+10+20的结果
请按下列要求写出命令:
(1)增加两个组账号groupl、group2,并指定组账号ID分别为10100、10101。
groupadd -g 10100 group1 groupadd -g 10101 group2
(2)增加两个用户账号userl(UID为2045,并属于组group1)、user2(UID为2046,并属于组group2)。
useradd user1 -u 2045 -g group1
useradd user2 -u 2046 -g group2
(3)查看/etc/boot路径下的所有内容。 l****s -a /etc/boot
(4)查看文件/etc/hosts的内容。 cat /etc/hosts
(5)在用户gordon个人目录下新建目录soft。 mkdir /home/gordon/soft
(6)搜索路径/etc下所有以h开头的文件及目录,拷贝到soft中。
cp -r /etc/h*.* /home/gordon/sof****t
(7)path变量值/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:运行该条命令后输出结果为/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:,请写出该命令:
echo ${path #/*;} (所有系统PATH)
(8)要使得名为fido的文件具有如下权限-r-xr-x–x的命令(第一个-代表它是文件)。
chmod 551 fido 或 chmod u,g=r-x,o=–x
(9)假设你的用户账号是zheng,现在你登录进入linux系统,查看当前登录到系统中的用户,查看当前系统中运行的进程,然后再退出系统。
答:login:zheng Password:口令 who ps Ctrl+D****或exit
(10) 在当前目录/home/zheng下新建一个目录back,将当前目录改为back,在back下新建2个长度为0的文件test1、test2,然后把test2移到其父目录中并改名为file12。
答: mkdir back cd back touch test1 test2 mv test2 …/file2
(11) 现在需要统计当前目录/home/zheng下普通文件的数目并显示结果,如何实现?
find –type f | wc –l
(12)假设你是系统管理员,需要增加一个新的用户账号zheng,为新用户设置初始密码,锁定用户账号uly,并删除用户账号chang。(在root下进行)
答: useradd zheng passwd zheng passwd –l uly userdel chang
(13)若给需要将/home/zheng目录下的所有文件打包压缩成/tmp/zheng.tar.gz,你准备怎么做?当需要从压缩包中恢复时,又该如何处理?(在root下进行)
答:tar –zcvf /tmp/zheng.tar.gz /home/zheng tar -zxvf /tmp/zheng.tar.gz
(14) 在/home目录下查找文件名为。Profile的文件,找到后删除
find /home –name .profile -exec rm{ } ;
(15)将test.tar.gz文件解压缩 tar -xzvf test.tar.gz
(16)创建一个用户,用户名为user02,所属私有组和标准组为stuff,用户家目录为/home/user2,用户登陆shell为/bin/bash。
useradd –g stuff –G stuff -d /home/user2 -s /bin/bash user02
(17) 赋予所有用户读和写backup.tar.gz文件的权限:chmod a+rw back.tar.gz
(18) 在UNIX/Linux系统中,环境变量是非常重要,在字符界面下试说明:
(19) PATH变量的作用,如何得到PATH的值?(2) 在UNIX/Linux系统的超级用户的环境变量PATH中允许包含当前目录吗?(3) 若在超级用户的当前目录内有可执行文件mypro,如何执行它(写出执行时键盘输入内容)?(4) 如何使用该命令在后台执行(写出执行时键盘输入内容)
(1) PATH为命令搜索路径,可用echo $PATH命令显示
(2)UNIX/Linux的PATH变量内不允许包含当前路径(.)
(3)./mypro;
(4)./mypro &
(20)关机或重启(root):
重启(sudo reboot或sudo shutdown -r)
现在关机(sudo shutdown -h now或sudo halt)
10分钟后关机(sudo shutdown +10)
关机并切断电源(sudo halt –p或sudo poweroff)
init 0(关机);
init 6(重启)
简答题
1.简述Linux的体系结构
Linux操作系统是采用单内核模式的操作系统,采用分层设计,包括4个层次。每层只能与它相邻的层通信,层次间具有从上到下的依赖关系,靠上的层依赖于靠下的层,但靠下的层并不依赖于靠上的层。其中用户应用程序位于整个系统的最顶层﹔操作系统服务位于用户应用程序与系统内核之间;Linux内核靠近硬件,是Linux操作系统常驻内存部分,作为整个操作系统的核心,实现对硬件资源的抽象和访问调度﹔硬件系统包含Linux所使用的所有物理设备。
2.简述Linux内核版本与发行版本
Linux的版本分为两种︰内核版本和发行版本。
内核版本是指内核小组开发维护的系统内核的版本号。内核版本也有两种不同的版本号:实验版本和产品版本。内核版本的每一个版本号的组成形式为∶[主版本].[次版本].[修订版本]-[附版本]。发行版本是指集成有Linux内核、源码以及相关应用软件的完整操作系统,便于用户安装和使用。发行版本通常包含了一些常用的工具性的实用程序(Utility ),供普通用户日常操作和管理员维护操作使用。发行版本由发行商确定。
3. 完整的图形桌面环境至少包括哪些程序
完整的图形桌面环境至少包括一个会话程序、一个窗口管理器、一个面板和一个桌面程序。
4. 什么是Shell,它有什么作用
在Linux 中 Shell 就是外壳的意思,是用户和系统交互的接口。它提供用户与内核进行交互操作的一种接口,接收用户输入的命令并将其送到内核去执行。实际上Shell是一个命令解释器,拥有自己内建的Shell命令集。
Linux Shell 的作用主要有:解释用户在命令行提示符下输入的命令,提供个性化的用户环境,和编写Shell脚本以实现高级管理功能。
5. 简述命令行命令语法格式
格式为︰提示符命令选项参数
其中选项是包括一个或多个字母的代码,前面有一个“”连字符,主要用于改变命令执行动作的类型﹔参数通常是命令的操作对象,多数命令都可使用参数。有的命令不带任何选项和参数。Linux 命令行严格区分大小写,命令、选项和参数都是如此。
6. 如何强制中断命令运行
在执行命令的过程中,可使用组合键<Ctrl>+<C>强制中断当前运行的命令或程序。
7. 管道有什么作用
管道用于将一个命令的输出作为另一个命令的输入,使用符号“”来连接命令。可以将多个命令依次连接起来,前一个命令的输出作为后一个命令的输入。
8. Linux用户一般分为哪几种类型
Linux系统通常将用户账户分为3种类型。
超级用户( super user ):就是根账户root,可以执行所有任务,在系统中不受限制地执行任何操作,具有最高的系统权限。
系统用户( system user ):系统本身或应用程序使用的专门账户。其中供服务使用的又称服务账户。它并没有特别的权限,通常又分为两种,一种是由Linux系统安装时自行建立的系统账户,另一种是用户自定义的系统账户。
普通用户( regular user ):供实际用户登录使用的普通用户账户。此类用户登录到Linux 系统,不执行管理任务。
9.Ubuntu管理员与普通用户相比,有什么特点?
Ubuntu管理员是指具有管理权限的普通用户,有权删除用户、安装软件和驱动程序、修改日期和时间,或者进行一些可能导致计算机不稳定的操作。其他普通用户不能进行这些操作,只能够修改自己的个人设置。Ubuntu管理员主要用于执行系统配置管理任务,但不能等同于Windows系统管理员,其权限比超级管理员则要低很多。
10. Ubuntu管理员如何获得root特权?
工作中当需要超级用户权限时,管理员可以通过sudo命令获得超级用户root 的所有权限。在图形界面中执行系统管理任务时,往往也需要root 权限,一般会弹出认证对话框,要求输入当前管理员账户的密码,认证通过后才能执行相应任务。有的图形界面软件会提供锁定功能,执行需要root权限的任务时先要通过用户认证来解锁。
11. 用户和组配置文件有哪些﹖各有什么作用?
用户配置文件包括两个,一个是/etc/passwd配置文件,用于存放用户账户及其相关信息(除密码之外);另一个是etc/shadow文件,专门用于保存用户的密码信息。组配置文件包括两个,一个是/etc/group配置文件,用于存放组账户的基本信息﹔另一个是/etc/shadow文件,专门用于保存组密码、组管理员等信息。
12. 如何利用配置文件来查看用户和组信息?
Linux 没有提供直接查看用户列表的命令,这可以通过查看用户配置文件/etc/passwd来解决。可以用文本编辑器打开该配置文件后进行搜索,也可以在命令行中执行文件显示命令,并通过管道操作使用grep命令来查找。如果只需查看全部用户列表,可以考虑使用文本分析工具awk.查看组列表的方法类似,只是所用的是组配置文件etc/group.
13. 普通文件
普通文件也称为常规文件,包含各种长度的字符串。Linux内核对这些文件没有进行结构化,只是作为有序的字符序列把它提交给应用程序,由应用程序自己组织和券梓这些数据。匕包括又本文件、数据文件和可执行的二进制程序等。
14. 目录文件
目录文件是一种特殊文件,利用它可以构成文件系统的分层树形结构。目录文件也包含数据,但与普通文件不同的是,内核对这些数据加以结构化,即它是由成对的“索引节点号/文件名”构成的列表。索引节点号是检索索引节点表的下标,索引节点中存有文件的状态信息。文件名是给一个文件分配的文本形式的字符串,用来标识该文件。在一个指定的目录中,任何两项都不能有同样的名字。将文件添加到一个目录中时,该目录的大小会增大,以便容纳新文件名。当删除文件时,目录的尺寸并未减少,内核对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。每个目录文件中至少包括两个条目:“..”表示上一级目录,“.”表示该目录本身。
15.设备文件
设备文件是一种特殊文件,除了存放在文件索引节点中的信息外,它们不包含任何数据。系统利用它们来标识各个设备驱动器,内核使用它们与硬件设备通信。设备文件又可分为两种类型:字符设备文件和块设备文件。
Linux将设备文件置于/dev目录下,系统中的每个设备在该目录下有一个对应的设备文件,并有一些命名约定。例如,串口 COM1的文件名为/dev/ttySO,/devlsda对应第一个 SCSI硬盘(或SATA硬盘), /devlsda5对应第一个SCSI硬盘(或SATA硬盘)第1个逻辑分区,光驱表示为/dev/cdrom,软驱表示为/dev/fd0。Linux还提供伪设备(实际上不存在的)文件,如/dev/ull、ldev/zero。
16. 链接文件
这是一种特殊文件,提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。当使用链接文件时,内核自动地访问所指向的文件路径。例如,当需要在不同的目录中使用相同文件时,可以在一个目录中存放该文件,在另一个目录中创建一个指向该文件(目标)的链接,然后通过这个链接来访问该文件,这就避免了重复占用磁盘空间,而且也便于同步管理。
链接文件有两种类型。分别是符号链接(Symbolic Link)和硬链接(Hard Link )。
符号链接文件类似千Windows 系统中的快捷方式,其内容是指向原文件的路径。原文件删除后,符号链接就失效了;删除符号链接文件并不影响原文件。
硬链接是对原文件建立的别名。建立硬链接文件后,即使删除原文件,硬链接也会保留原文件的所有信息。因为实质上百立壮和硬链接是同一个文件,二者使用同一个索引节点,无法区分原文件和硬链接。与符号链接不同,硬链接和原文件必须在同一个文件系统上,而且不允许链接至目录-月岁更新
17. 简述Linux分区类型Linux Native和Linucx Swap
Ubuntu Linux至少需要有一个Linux Native分区和一个Linux Swap分区。Linux Native分区是存放系统文件的地方,只能使用ext文件系统。分区大小在50-100MB之间,Swap分区是Linux暂时存储数据的交换分区,用于保存物理内存上暂时不用的数据,在需要的时候再调进内存。Swap 分区大小为物理内存的2-2.5倍,创建和使用多个交换分区,但最多16个。
18. 在所用的Linux系统上,根目录下有哪些内容?各自的功能是什么?
/bin:存放用于系统管理维护的常用实用命令文件。/boot:存放用于系统启动的内核文件和引导装载程序文件。/dev:存放设备文件。/etc:存放系统配置文件,如网络配置,设备配置,X Window 系统配置等。/home:,各个用户的主目录,其中的子目录名称即为各用户名/lib:存放动态连接共享库(其作用类似于 Windows里的.dll 文件)。/media:为光盘、软盘等设备提供的默认挂载点。/mnt:为某些设备提供的默认挂载点。/root:root用户主目录。 不要将其与根目录混淆。 /proc:系统自动产生的映射。 查看该目录中的文件可获取有关系统硬件运行的信息。/sbin:存放系统管理员或者root 用户使用的命令文件。/usr:存放应用程序和文件。 /var:保存经常变化的内容,如系统日志,打印。
19. shell的变量类型有哪些种?
Shell变量可以分为:用户自定义变量(编写shell脚本时用户定义,可以在shell程序内任意的使用和修改,仅在当前shell实例中有效)、环境变量(作为系统变量的一部分,可以不去定义它们,某些变量可以在shell中修改,可以看做全局变量)、内部变量(包括位置变量:也就是传递的参数由$1~$n表示;特殊变量:在程序内用作判断,不能修改<未知变量也不能修改>)
20. 叙述Linux操作系统的三个主要部分及其功能。
内核:内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
命令解释层:是系统的用户界面,提供了用户与内核进行交互操作的一种接口。文件结构:是文件存放在磁盘等存储设备上的组织方法,文件结构的相互关联性使共享数据变得容易。
21. 叙述什么是shell? Ubuntu的默认shell?
Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口。是一个命令解释器,它可以用来启动、挂起、停止、甚至编写程序。 Linux的默认shell是/bin/bash
22. Linux系统有几种类型文件?它们分别是什么?有哪些相同点和不同点?
答:3类。分别是普通文件,目录文件和设备文件。相同是它们都是文件,都有一个文件名和i节点号。不同点是,普通文件的内容为数据,目录文件的内容为目录项或文件名与i节点对应表,设备文件不占用磁盘空间,通过其i节点信息可建立与内核驱动程序的联系。
23. 什么是链接?符号链接与硬链接的区别是什么?
链接是指用一个i节点对应多个文件名。硬链接是把文件的i节点号指向该i节点,且链接计数器值加1。删除链接文件时计数器值减1,当其值为0时,i节点被释放。
符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。
在删除符号链接文件时与硬链接文件有区别。
24. Shell程序中,对用户变量赋值有哪些方式?简要说明每种赋值方式的使用方法。
等号赋值:在等号前后均不能有空格;当需要将一个包含空格的字符串赋给用户变量时,应用单引号将该字符串括起来。键盘赋值:由read命令来实现的。用法为:read 用户变量名;当shell程序执行到该行时,将等待用户从键盘输入,当用户按下回车键时shell把你输入的内容赋给用户变量。命令替换赋值:用法为:用户变量=`命令`;该语句将首先执行反向单引号之间的命令,然后将其执行后输出的内容赋给该用户变量,在这种赋值方式中,等号前后同样不能有空格,而且必须用反向单引号(即重音号)把命令括起来。
25. 用户和组配置文件有哪些?各有什么作用?
用户配置文件包括两个,一个是/etc/passwd配置文件,用于存放用户账户及其相关信息(除密码之外);另一个是etc/shadow文件,专门用于保存用户的密码信息。用户配置文件字段:账户名:密码:UID:GUD:注释:主目录:Shell。账户名:用户名、登录名;密码:用x表示,passwd不保存密码;临时禁用:passwd账户记录前加(*)。用户密码配置文件字段:密码用MD5加密 账户名:密码:最近一次修改:最短有效期:最长有效期:过期前警告:过期日期:禁用:保留用于未来扩展。组配置文件包括两个,一个是/etc/group配置文件,用于存放组账户的基本信息;另一个是/etc/gshadow文件,专门用于保存组密码、组管理员等信息。组账户基本信息(/etc/gtoup),用户的主要组不会将该用户自己作为成员列出。组名:组密码:GID:组成员列表。组账户密码配置文件(/etc/gshadow):组名:加密后的组密码:组管理员:组成员列表
26. 创建一个shell脚本,他从用户那里接受10个数,并显示已输入10个数的总和。
#! /bin/bash
sum=0
for((num=1; $num <=10; num++))
do
read -p "请输入第${num}个数字:" temp
sum=`expr $sum+$temp`
done
echo "这10个数的和为${sum}"
27. 设计一个shell程序,添加一个新组为class, 然后添加属于这个组的9个用户,用户名的形式为saux,其中x从0到9。
#!/bin/bash
#该脚本要在root用户下执行
if [ $HOME != '/root' ]
then
echo "该脚本要在root用户下执行"
exit
fi
groupadd class #创建组class
for((i=0;$i<=9;i++))
do
username=saux${i} #创建10个用户名
useradd $username #创建10个用户
mkdir /home/$username #创建每个用户主目录
chown -R $username /home/$username #递归变更目录所有者
gpasswd -a $username class #将用户添加到组class
chgrp -R class /home/$username #递归变更用户所属组
done
cat /etc/gshadow | grep 'class' #显示class组的用户
28. 打印九九乘法表
#!/bin/bash
for((i=1; $i<=9; i++))
do
for((j=1; $j<=$i; j++))
do
echo -n "${j}\*${i}="
echo -n "`expr $i \* $j` "
done
echo
done
29. 创建一个SHELL脚本,它从用户接收10个数字,并显示已输入最大数
#!/bin/bash
max=0
for((i=1; i<=10; i++))
do
read -p "请输入第${i}个数字:" temp
if [ $i -eq 1 -o $temp -gt $max ]
#第一个数默认最大数,然后每输入一个和此时最大值比较
then
max=$temp
fi
echo "已输入的最大数是${max}"
done
30. 用户输入n,并判断是否输入参数、是不是正整数,然后求n的阶乘
#!/bin/bash
fac=1 #初始化阶乘
sign=0 #初始化标志位为假
read -p "输入一个数字:" n
if [ -z $n ] #判断数否输入参数
then
echo "没有输入参数!"
else
[[ "$n" =~ ^[0-9]+$ ]] && sign=1 || echo sign=0
#判断是不是纯数字
fi
if [ $sign -eq 0 -o $n == 0 ] #判断是不是正整数
then
echo "输入的不是正整数!"
else
for((i=1; i<=$n; i++))
do
fac=`expr $i \* $fac`
#×值特殊字符,需要转意后使用
done
echo "${n}的阶乘是${fac}"
fi
31. 编写shell程序,实现自动删除10个用户账号的功能。账号名为saux0至saux9
#!/bin/bash
#该脚本要在root用户下执行
if [ $HOME != '/root' ]
then
echo "该脚本要在root用户下执行"
exit
fi
for((i=0;$i<=9;i++))
do
username=saux${i}
if [ -n "`cat /etc/passwd | grep ${username}`" ]
#有返回结果则为真
then
userdel -r ${username}
echo "用户${username}删除成功!"
else
echo "用户名不存在!"
fi
done
32. 运算符
整数运算符:相等(-eq);不相等(-ne);大于(-gt);小于(-lt);大于等于(-ge);小于等于(-le)
字符串运算符:相等(=);不相等(!=);长度为0返回true(-z);长度不为0返回true(-n);字符串不为空返回true(str)
布尔运算符:与运算(-a);或运算(-o);非运算(-!)
33. 用递归函数求1到10的和
#!/bin/bash
fun ()
{
if [ $1 -eq 1 ]
then
num=1
else
temp=`expr $1 - 1`
fun $temp
num=`expr $? + $1`
return $num
fi
return $num
}
fun 10
ret=$?
echo $ret
34. 用递归函数求1到100的和
#!/bin/bash
num=0
fun ()
{
if [ $1 -eq 1 ]
then
num=1
return $num
else
temp=`expr $1 - 1`
fun $temp
num=`expr $num + $1`
return $num
fi
}
fun 100
ret=$num
echo $ret
35. 用while语句求从整数1到100的和
#!/bin/bash
total=0
num=0
while [ $num -le 100 ]
#当num<=100时执行循环(条件为假跳出循环)
do
total=`expr $total + $num`
num=`expr $num + 1`
done
echo "结果等于: $total"
36. 使用gedit编写一个测试脚本file1,在该脚本中包含外部脚本file2,然后用不同方式运行脚本
#!/bin/bash
#
echo -n "当前日期和时间:"
date
echo "程序执行路径:"$PATH
echo "当前登录用户名:'whoami'"
echo -n "当前目录:"
pwd
. file2
#end
#!/bin/bash
#这是file2脚本
pwd
ls -l
echo "file2脚本执行完成"
#end
37. 使用while循环编写shell脚本计算100以内数字的和
#!/bin/bash
total=0
num=1
while [ $num -le 100 ]
do
total=`expr $total + $num`
num=`expr $num + 1`
done
echo "result: $total"
38. 编写shell脚本实现从键盘输入5个数放到数组中,用for循环找出五个数中的最大值并输出
#!/bin/bash
for i in `seq 0 4`
do
read array[i]
done
max=${array[0]}
for i in 1 2 3 4
do
if [ $max -le ${array[i]} ]
then
max=${array[i]}
fi
done
echo "max: $max"
39. 编写shell脚本实现从键盘输入5个数,放到数组中,查找最大的元素并进行输出
(1)input( )函数进行数据的输入
(2)find_max( )函数进行查找
#!/bin/bash
function input()
{
for i in `seq 0 4`
do
read array[i]
done
}
find_max()
{
max=${array[0]}
for i in 1 2 3 4
do
if [ $max -le ${array[i]} ]
then
max=${array[i]}
fi
done
}
input
find_max
echo "max: $max"
40. 编写shell脚本实现向系统添加5个用户user1-user5,设置用户密码为123,然后显示/etc/passwd下的用户信息。由于添加用户需要root权限,因此需要将脚本加入到系统执行路径然后运行脚本’’
#解1
#!/bin/bash
read -p "请输入要创建的用户的数量" num
for i in `seq $num`
do
id user$i &>..c/dev/null #验证用户是否存在
if [ $? -eq 0 ];then
echo "用户已经创建了"
else
echo "用户即将开始创建"
useradd user$i #创建用户
echo "用户创建成功"
echo "正在设置密码"
sleep 3 #等待时间
echo "123" | passwd -stdin user$i #给用户设置密码
echo "密码设置成功"
echo "新增加的用户是user$i"
fi
done
#解2
#!/bin/bash
#useradd.sh
i=1
while [ $i -le 5 ]
do
useradd user$i &>/dev/null
echo '123' | passwd --stdin user$i &>/dev/null
i=$(($i+1))
done
cat /etc/passwd
#解3
#!/bin/bash
for i in 1 2 3 4 5
do
usr="user$i"
useradd $usr
passwd $usr << eof
123
123
eof
done
cat /etc/passwd
echo "finish"
41. 编写shell脚本,在用户家目录下创建一个名为back_up的文件,然后实现每隔1分钟将系统运行的前台进程信息输出到到back_up文件中。
分为两个步骤:第1步先编写shell脚本,第2步用crontab -e命令设置周期性任务
#!/bin/bash
file="$HOME/back_up"
if [ -e $file ]
then
echo "file existence"
ps -a >> $file
else
echo "file not existence"
touch back_up
ps -a >> $file
fi
head -10 ~/back_up
echo "finish"
课本参考答案
第1章 Ubuntu安装与基本使用
1.什么是GNU GPL?它对Linux有何影响?
GNU是“GNU’s Not UNIX”的递归缩写,作为一个自由软件工程项目,是指使用软件对所有的用户来说是自由的,即用户在取得软件之后,可以进行修改,进一步在不同的计算机平台上发布和复制。GPL是General Public License的缩写,意为通用公共许可证,它是GNU使用最为广泛的一个协议条款。GNU GPL的精神就是开放、自由,任何软件加上GPL授权之后,即成为自由的软件,任何人均可获得,同时亦可获得其源代码。获得GPL授权软件后,任何人均可根据需要修改其源代码。
GNU GPL为Linux诞生奠定了基础。Linus Torvalds按照GPL条款发布了Linux,很快就吸引了专业人士加入Linux的开发,从而促进了Linux的快速发展。
2.简述Linux的体系结构。
Linux操作系统是采用单内核模式的操作系统,采用分层设计,包括4个层次。每层只能与它相邻的层通信,层次间具有从上到下的依赖关系,靠上的层依赖于靠下的层,但靠下的层并不依赖于靠上的层。其中用户应用程序位于整个系统的最顶层;操作系统服务位于用户应用程序与系统内核之间;Linux内核靠近硬件,是Linux操作系统常驻内存部分,作为整个操作系统的核心,实现对硬件资源的抽象和访问调度;硬件系统包含Linux所使用的所有物理设备。
3.简述Linux内核版本与发行版本。
Linux的版本分为两种:内核版本和发行版本。
内核版本是指内核小组开发维护的系统内核的版本号。内核版本也有两种不同的版本号:实验版本和产品版本。内核版本的每一个版本号的组成形式为:[主版本].[次版本].[修订版本]-[附版本]。
发行版本是指集成有Linux内核、源码以及相关应用软件的完整操作系统,便于用户安装和使用。发行版本通常包含了一些常用的工具性的实用程序(Utility),供普通用户日常操作和管理员维护操作使用。发行版本由发行商确定。
4.简述Ubuntu与Debian的关系。
Debian是Ubuntu的一个父版本,Ubuntu的发展离不开Debian。Debian是一个纯粹由自由软件所组合而成的作业环境,永远是自由软件,可以在网上免费获得。Debian是极为精简的Linux发行版,操作环境干净,安装步骤简易,拥有方便的套件管理程序。
Ubuntu基于Debian发行版,使用Debian大量资源,继承了Debian的所有优点。Ubuntu旨在为广大用户提供一个最新的,同时又相当稳定的,主要由自由软件构建而成的操作系统。与Debian的不同在于它每6个月会发布一个新版本。Ubuntu开发人员作为贡献者也参与Debian社区开发。
5.安装Ubuntu需要哪些分区?
安装Ubuntu需要创建两个分区:根分区(/)和Swap(交换)分区。根分区用于存储大部分系统文件和用户文件,应保证其存储空间能够容纳各个Linux组件。Swap分区提供虚拟内存空间,其大小通常是物理内存的两倍左右。
6.Dash主页有什么作用?
Dash主页类似于Windows系统的开始菜单,主要功能是全局搜索和各类常用文件类型的快捷使用。
7.简述启动器的作用。
启动器主要用来便捷地运行常用应用程序,将应用程序图标正式加入到启动器称为锁定,这样今后可以直接从启动器运行该应用;将应用程序图标从启动器中清除称为解锁。
第2章 图形界面与命令行
1.简述X Window System的工作原理。
X Window System为Linux操作系统提供图形界面解决方案。它基于客户/服务器(C/S)模式,具有网络操作的透明性。X Window System包括X Server、X Client和通信通道,X Client将希望显示的图形发送到X Server,X Server响应X Client程序的“请求”,将图形显示在显示器上,同时为X Client提供鼠标、键盘的输入服务。通信通道负责X Server与X Client之间的通信。
2.窗口管理器有什么作用?
窗口管理器是X Window System的组成部分,用来控制窗口的外观,并提供与用户交互的方法。作为在X Server上运行的应用程序,窗口管理器为用户提供操作窗口程序的方法,主要用于管理应用程序窗口,如窗口移动、缩放、开关等,当然还要管理键盘和鼠标焦点。
3.完整的图形桌面环境至少包括哪些程序?
完整的图形桌面环境至少包括一个会话程序、一个窗口管理器、一个面板和一个桌面程序。
4.Unity桌面环境有什么优点?
Unity与传统的桌面环境相比,消耗的系统资源更少。Unity环境打破了传统的GNOME面板配置,左边包括一个类似停靠栏(Dock)的启动器(Application Launcher)和任务管理面板,而顶面板则由应用程序指示器(Indicator)、窗口指示器和活动窗口的菜单栏组成。
5.为什么要学习命令行?
使用命令行管理Linux系统是最基本和最重要的方式。到目前为止,很多重要的任务依然必须由命令行完成,而且执行相同的任务,由命令行来完成将会比使用图形界面要简捷高效得多。
6.什么是Shell,它有什么作用?
在Linux中Shell就是外壳的意思,是用户和系统交互的接口。它提供用户与内核进行交互操作的一种接口,接收用户输入的命令并将其送到内核去执行。实际上Shell是一个命令解释器,拥有自己内建的Shell命令集。
Linux Shell的作用主要有:解释用户在命令行提示符下输入的命令,提供个性化的用户环境,和编写Shell脚本以实现高级管理功能。
7.简述命令行命令语法格式。
格式为:提示符 命令 选项 参数
其中选项是包括一个或多个字母的代码,前面有一个“-”连字符,主要用于改变命令执行动作的类型;参数通常是命令的操作对象,多数命令都可使用参数。有的命令不带任何选项和参数。Linux命令行严格区分大小写,命令、选项和参数都是如此。
8.如何强制中断命令运行?
在执行命令的过程中,可使用组合键+强制中断当前运行的命令或程序。
9.管道有什么作用?
管道用于将一个命令的输出作为另一个命令的输入,使用符号“|”来连接命令。可以将多个命令依次连接起来,前一个命令的输出作为后一个命令的输入。
第3章 用户与组管理
1.Linux用户一般分为哪几种类型?
Linux系统通常将用户账户分为3种类型。
超级用户(super user):就是根账户root,可以执行所有任务,在系统中不受限制地执行任何操作,具有最高的系统权限。
系统用户(system user):系统本身或应用程序使用的专门账户。其中供服务使用的又称服务账户。它并没有特别的权限,通常又分为两种,一种是由Linux系统安装时自行建立的系统账户,另一种是用户自定义的系统账户。
普通用户(regular user):供实际用户登录使用的普通用户账户。此类用户登录到Linux系统,不执行管理任务。
2.Ubuntu管理员与普通用户相比,有什么特点?
Ubuntu管理员是指具有管理权限的普通用户,有权删除用户、安装软件和驱动程序、修改日期和时间,或者进行一些可能导致计算机不稳定的操作。其他普通用户不能进行这些操作,只能够修改自己的个人设置。Ubuntu管理员主要用于执行系统配置管理任务,但不能等同于Windows系统管理员,其权限比超级管理员则要低很多。
3.Ubuntu管理员如何获得root特权?
工作中当需要超级用户权限时,管理员可以通过sudo命令获得超级用户root的所有权限。在图形界面中执行系统管理任务时,往往也需要root权限,一般会弹出认证对话框,要求输入当前管理员账户的密码,认证通过后才能执行相应任务。有的图形界面软件会提供锁定功能,执行需要root权限的任务时先要通过用户认证来解锁。
4.用户和组配置文件有哪些?各有什么作用?
用户配置文件包括两个,一个是/etc/passwd配置文件,用于存放用户账户及其相关信息(除密码之外);另一个是etc/shadow文件,专门用于保存用户的密码信息。
组配置文件包括两个,一个是/etc/group配置文件,用于存放组账户的基本信息;另一个是/etc/gshadow文件,专门用于保存组密码、组管理员等信息。
8.如何利用配置文件来查看用户和组信息?
Linux没有提供直接查看用户列表的命令,这可以通过查看用户配置文件/etc/passwd来解决。可以用文本编辑器打开该配置文件后进行搜索,也可以在命令行中执行文件显示命令,并通过管道操作使用grep命令来查找。如果只需查看全部用户列表,可以考虑使用文本分析工具awk。
查看组列表的方法类似,只是所用的是组配置文件/etc/group。
第4章 文件与目录管理
1.Linux目录结构与Windows有何不同?
Linux系统的目录结构与Windows系统不一样,它没有盘符的概念,不存在什么C盘、D盘,所有的文件和目录都“挂在一棵目录树上”,磁盘、光驱都作为特定的目录挂在目录树上,其他设备也作为特殊文件挂在目录树上,这些目录和文件都有着严格的组织结构。
2.Linux目录配置标准有何规定?
Linux目录配置标准FHS定义了两层规范。第1层是根目录下面的各个目录应该放什么文件,例如/etc应该放置配置文件,/bin与/sbin则应该放置可执行文件等。第2层则针对/usr及/var这两个目录的子目录来定义,例如/var/log放置系统登录文件,/usr/share放置共享数据等。
FHS仅定义出最上层(/)及子层(/usr、/var)的目录内容应该要放置的文件,在其他子目录层级内可以自行配置。
Linux使用规范的目录结构,系统安装时就已创建了完整而固定的目录结构,并指定了各个目录的作用和存放的文件类型。
3.Linux文件有哪些类型?
Linux文件分为4种类型。
普通文件:也称为常规文件,包括文本文件、数据文件和可执行的二进制程序等。
目录文件:特殊文件,利用它可以构成文件系统的分层树形结构。
设备文件:特殊文件,除了存放在文件索引节点中的信息外,它们不包含任何数据。
链接文件:特殊文件,提供对其他文件的参照。
6.关于文件显示的命令主要有哪些?
(1)cat命令:连接文件并打印到标准输出设备上,常用来显示文件内容。
(2)more命令:可以逐页显示。
(3)less命令:分页显示文件内容,但功能比more更强大。
(4)head命令:显示文件的开头若干行或多少个字节。
(5)tail命令:显示指定文件的末尾若干行或若干字节,与head正好相反。
(6)od命令:按照特殊格式查看文件内容。
第5章 磁盘存储管理
1.低级格式化与高级格式化有何不同?
低级格式化是将空白磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识区、间隔区(GAP)和数据区等。低级格式化是物理级的,对硬盘有损伤,影响磁盘寿命。
高级格式化是在磁盘分区上建立相应的文件系统,对磁盘的各个分区进行磁道的格式化,在逻辑上划分磁道。高级格式化与操作系统有关,不同的操作系统有不同的格式化程序、不同的格式化结果、不同的磁道划分方法。当一个磁盘分区被格式化之后,就可以被称为卷(Volume)。
2.简述Linux磁盘设备命名方法与磁盘分区命名方法。
Linux磁盘设备名用字母表示不同的设备接口,例如a表示第1个接口,字母b表示第2个接口。原则上SCSI、SAS、SATA、USB接口硬盘的设备文件名均以/dev/sd开头。这些设备命名依赖于设备的ID号码,不考虑遗漏的ID号码。例如,3个SCSI设备的ID号码分别是0、2、5,设备名分别是/dev/sda、/dev/sdb和/dev/sdc。
Linux磁盘分区的文件名需要在磁盘设备文件名的基础上加上分区编号。SCSI、SAS、SATA、USB硬盘分区采用/dev/sdxy这样的形式命名,其中x表示设备编号(从a开始),y是分区编号(从1开始)。
3.简述分区样式MBR与GPT。
MBR是传统的分区样式,将分区表存储在主引导记录MBR内。最多可支持4个磁盘分区,可通过扩展分区来支持更多的逻辑分区,在Linux中将该分区样式又称为MSDOS。MBR分区的容量限制是2TB。
GPT是新分区样式,是可扩展固件接口(EFI)的一个部分。一个GPT磁盘内最多可以创建128个主分区,不必创建扩展分区或逻辑分区。GPT分区可以突破MBR的2TB容量限制,特别适合大于2TB的硬盘分区。
4.简述Linux分区类型Linux Native与Linux Swap。
Ubuntu Linux至少需要一个Linux Native分区和一个Linux Swap分区。
Linux Native分区是存放系统文件的地方,只能使用ext文件系统。根(/)分区是其中一个非常特殊的分区,它是整个操作系统的根目录,在安装操作系统时创建。如果安装过程中只指定了根分区,而没有其他数据分区,那么操作系统中的所有文件都将全部安装到根分区下。
Linux Swap分区是Linux暂时存储数据的交换分区,它主要用于保存物理内存上暂时不用的数据,在需要的时候再调进内存。可以将其理解为与Windows的虚拟内存一样的技术。一般情况下,Swap分区应该大于或等于物理内存的大小。
5.简述Linux建立和使用文件系统的步骤。
(1)对磁盘进行分区。
(2)在磁盘分区上建立相应的文件系统。
(3)建立挂载点目录,将分区挂载到系统相应目录下,就可访问该文件系统。
6.Ubuntu主要提供哪些磁盘分区工具?
命令行工具可以使用fdisk和parted。fdisk是各种Linux发行版本中最常用的分区工具,使用灵活,简单易用。parted功能更强大,支持的分区类型非常多,而且可以调整原有分区尺寸。
Ubuntu提供一个基于文本窗口界面的分区工具cfdisk,它比fdisk的操作界面更为直观,但功能较弱。Ubuntu内置一个图形界面的磁盘管理器,也可以用于磁盘分区。另外可以安装专门的图形界面分区工具gparted。
7.如何自动挂载文件系统?
Ubuntu使用配置文件/etc/fstab来定义文件系统的配置,系统启动过程中会自动读取该文件中的内容,并挂载相应的文件系统,因此,只需将要自动挂载的设备和挂载点信息加入到fstab配置文件中即可实现自动挂载。可使用文本编辑器来查看和编辑fstab配置文件中的内容。
8.简述Linux使用的卷标和UUID。
卷标和UUID来都可代替设备名表示某一文件系统(分区)。
卷标可用于在挂载文件系统时代替设备名,指定外部日志时也可用卷标。
UUID全称Universally Unique Identifier,可译为全局唯一标识符,其目的是支持分布式系统。UUID是一个128位标识符,通常显示为32位16进制数字,用4个“-”符号连接。与卷标相比,UUID更具唯一性,这对USB驱动器这样的热插拔设备尤其有用。
9.简述数据备份策略。
在进行备份之前,首先要选择合适的备份策略,决定何时需要备份,以及出现故障时进行恢复的方式。完全备份对系统进行一次全面的备份,所需时间最长,但恢复时间最短,操作最方便,当系统中数据量不大时,采用完全备份最可靠。增量备份只对上一次备份后增加的和修改过的数据进行备份,可缩短备份时间,快速完成备份,但是可靠性较差,备份数据的份数太多,因而很少使用。差异备份对上一次完全备份(而不是上次备份)之后新增加或修改过的数据进行备份,兼具完全备份和增量备份的优点,所需时间短,并节省空间,恢复方便,系统管理员只需两份数据,就可以将系统完全恢复,适用于各种备份场合。
第6章 软件包管理
1.简述Linux软件包管理的发展过程。
Linux软件安装从最初的源代码编译安装发展到现在的高级软件包管理。
早期的Linux系统中主要使用源代码包发布软件,用户往往要直接将源代码编译成二进制文件,并对系统进行相关配置,有时甚至还要修改源代码。
软件包将应用程序的二进制文件、配置文档和帮助文档等合并打包在一个文件中,用户只需使用相应的软件包管理器来执行软件的安装、卸载、升级和查询等操作。
高级软件包管理工具能够通过Internet主动获取软件包,自动检查和修复软件包之间的依赖关系,实现软件的自动安装和更新升级,大大简化了Linux系统上安装、管理软件的过程。
2.Ubuntu有哪几种软件安装方式?
Ubuntu支持多种软件方式,包括Ubuntu软件中心、APT工具、PPA安装、Dpkg工具、其他二进制软件包安装(直接采用二进制包方式发布,常用的格式有bin和run)、源代码安装。
3.简述APT的基本功能。
APT主要具备3项功能,一是从Internet上的软件源下载最新的软件包元数据、二进制包或源代码包;二是利用下载到本地的软件包元数据,完成软件包的搜索和系统的更新;三是安装和卸载软件包时自动寻找最新版本,并自动解决软件的依赖关系。
4.什么是PPA?如何表示PPA源?
PPA是Personal Package Archive的缩写,可以译为个人软件包档案。使用PPA,软件制作者可以轻松地发布软件,并且能够准确地对用户进行升级。Ubuntu用户可以使用PPA源在第一时间体验到最新版本的软件。APT和Ubuntu软件中心都可以添加PPA安装源。
PPA源的语法格式为:ppa:user/ppa-name
5.在Ubuntu中能够直接安装RPM包吗?
Ubuntu的软件包格式是.deb,不应当直接安装RPM包。如果要安装RPM包,则要先用alien工具将.rpm转换成.deb格式。
6.简述源代码安装步骤。
(1)下载和解压软件包;
(2)执行configure生成编译配置文件Makefile;
(3)执行make命令编译源代码;
(4)执行make install安装软件。
第7章 系统高级管理
1.Linux进程有哪几种类型?
Linux进程大体可分为3种类型,分别是交互进程、批处理进程和守护进程。‘
2.简述进程的手动启动和调度启动。
启动进程有两个主要途径,即手动启动和调度启动。
由用户在Shell命令行下输入要执行的程序来启动一个进程,即为手动启动进程。其启动方式又分为前台启动和后台启动,默认为前台启动。若在要执行的命令后面跟随一个符号“&”,则为后台启动,此时进程在后台运行,Shell可继续运行和处理其他程序。
调度启动是事先设置好程序要运行的时间,当到了预设的时间后,系统自动启动程序。可以将任务配置为在指定的时间、时间区间,或者系统负载低于特定水平时自动运行,实际上就是一种进程的调度启动。
3.Ubuntu系统启动经过哪4个阶段?
(1)BIOS启动;
(2)启动引导加载程序;
(3)装载内核;
(4)执行init程序实现系统初始化。
4.Ubuntu的运行级别有哪几种?与Redhat等Linux版本有何不同?
Ubuntu的运行级别从0到6,但它将运行级别2作为默认启动的级别,并且运行级别定义也与Redhat系列有着显著区别,Ubuntu的2~5级是没有任何区别的,都是用户模式。
5.简述System V与Upstart两种初始化方式。
System V是一个基于运行级别的系统,使用运行级别和对应的链接文件(位于/etc/rcn.d目录中,n为运行级别,分别链接到/etc/init.d中的init脚本)来启动和关闭系统服务。System V启动是线性、顺序的。
UpStart是基于事件机制的启动系统,使用事件来启动和关闭系统服务。与System V以运行级别为核心,依据服务间依赖关系不同,Upstart系统服务的启动、停止等均是由事件触发的,它们同时又可作为事件源触发其他服务。运行级别的改变也可以看作是事件。Upstart更加灵活,不仅能在运行级别改变的时候启动或停止服务,也能在接收到系统发生其他改变的信息的时候启动或停止服务。Upstart使用/etc/init目录中的系统服务配置文件来决定系统服务何时启动,何时停止。
6.什么是守护进程?
守护进程又称监控进程,是指那些在后台运行,并且没有控制终端的进程,通常可以随着操作系统的启动而运行,也可将其称为服务。守护进程是服务的具体实现。守护进程最重要的特性是后台运行,其次守护进程必须和其运行前的环境隔离开来。
7.简述Ubuntu服务启动脚本与运行级别的关系。
每个服务都有相应的服务启动脚本,与多数Linux发行版将服务启动脚本存放在/etc/rc.d/init.d目录中不同,Ubuntu将其保存在/etc/init.d目录下。
Ubuntu直接将各运行级别对应的脚本文件存放在/etc/rcn.d目录中。/etc/rcn.d目录中存放的是指向/etc/init.d目录中脚本程序的符号链接,而实际的脚本程序保存在/etc/init.d目录中。比如,在/etc/rc3.d目录中的S03cron就是指向/etc/init.d/cron服务启动脚本的一个符号链接,它用于启动Cron服务。
这些符号链接的命名规则比较特别。如果脚本是用来启动一个服务的,其符号链接的名称就以字母S打头。如果脚本是用来停止一个服务的,其符号链接的名称就以字母K打头。字母S或K之后是一个数字,表示脚本的执行顺序。执行顺序数字后通常是符号链接所指向的脚本文件的名称。这些脚本的执行顺序非常重要,因为某些程序或服务的启动可能依赖于其他程序。
8.如何执行服务启动脚本?
有两种方式执行服务启动脚本。
一种是使用Linux服务启动脚本管理服务,实现启动服务、重启服务、停止服务和查询服务等功能。基本用法如下:
/etc/init.d/服务启动脚本名 {start|stop|status|restart|reload|force-reload}
另一种是使用service命令简化服务管理,功能和参数与使用服务启动脚本相同,其用法如下:
service 服务启动脚本名 {start|stop|status|restart|reload|force-reload}
9.如何配置服务启动状态?
在对Linux服务的管理工作中,经常需要设置或调整某些服务在特定运行级别是否启动,这可以通过配置服务的启动状态来实现。有两种方式配置服务启动状态。
一种是使用sysv-rc-conf配置服务启动状态。可以执行apt-get install sysv-rc-conf命令安装该工具。使用该工具启动或关闭某项指定服务的用法如下:
sysv-rc-conf 服务名 <on|off>
另一种是使用update-rc.d在指定运行级别中启动或关闭某项服务,基本用法如下:
update-rc.d [-f] <服务名> disable|enable [S|2|3|4|5]
10.简述Ubuntu系统日志配置文件的基本格式。
Ubuntu系统日志配置文件中每一行都代表一条设置值,语法如下:
信息来源.优先级 处理方式
同一行中允许出现多个“信息来源.优先级”,但必须要使用分号进行分隔。
信息来源定义日志记录来自哪个子系统。
优先级代表信息的紧急程度。
syslog的处理动作用来定义如何处理接收到的信息,通常是将信息发往何处。
第8章 Ubuntu桌面应用
4.简述LibreOffice Writer主控文档的特点。
可将主控文档视为单个LibreOffice Writer文件的容器,这些单个文件称为子文档。主控文档具有如下特点。
(1)打印主控文档时,会打印所有子文档的内容、索引以及所有文本内容。
(2)可以在主控文档中为所有子文档创建目录和索引目录。
(3)子文档中使用的样式,例如新的段落样式,会自动导入主控文档中。
(4)查看主控文档时,主控文档中已存在的样式优先于从子文档导入的具有相同名称的样式。
(5)对主控文档的更改永远不会使子文档发生更改。
第9章 Shell编程
1.Shell编程如何包含外部脚本?
Shell包含外部脚本文件的用法如下:
. 脚本文件名
或
source 脚本文件名
两种方式的作用一样,一般使用点号,但要注意点号和脚本文件名之间一定要有一个空格。
2.执行Shell脚本有哪几种方式?
执行Shell脚本有3种方式。
(1)在命令行提示符下直接执行;
(2)在指定的Shell下执行脚本;
(3)将输入重定向到Shell脚本。
3.Shell编程支持哪几种变量类型?
Shell编程支持3种变量类型,分别是用户自定义变量、环境变量和内部变量。
4.简述Shell位置参数。
Shell内部变量中有几个表示运行脚本时传递给脚本的参数,通常称为位置参数,又称命令行参数。当编写一个带有若干参数的Shell脚本时,可以用命令行或从其他的Shell脚本调用它。位置参数使用系统给出的专用名,存放在变量中的第1个参数名为1,可以用$1来访问;第2个参数名为2,可以利用 2 来 访 问 它 , 以 此 类 推 。 当 参 数 超 过 10 个 时 , 要 用 花 括 号 将 参 数 序 号 括 起 来 , 如 2来访问它,以此类推。当参数超过10个时,要用花括号将参数序号括起来,如 2来访问它,以此类推。当参数超过10个时,要用花括号将参数序号括起来,如{12}。
5.Shell编程如何实现数学运算?
bash自身并不支持简单的数学运算,但是可以通过awk 和expr等命令来实现数学运算,其中expr最为常用,使用它能够完成表达式的求值操作。
6.逻辑表达式使用test命令和它的别名“[”有何不同?
通常使用test命令来判断表达式的真假。该命令有一个更常用的别名,即左方括号“[”。当使用左方括号而非test时,其后必须始终跟着一个空格、要评估的逻辑表达式、一个空格和右方括号,右方括号表示所需评估表达式的结束。逻辑表达式两边的空格是必需的,这表示要调用test,以区别于同样经常使用方括号的字符、模式匹配操作(正则表达式)。
7.简述条件语句if和case的区别。
if语句通过判定条件表达式做出选择。大多数情况下,可以使用test命令来对条件进行测试,比如可以比较字符串、判断文件是否存在。
case语句是一种多选择结构,与其他语言中的“switch … case”语句类似。case语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。如果存在很多条件,那么可以使用case语句来代替if语句。
8.Shell循环结构有哪几种实现方式?
Shell提供的循环结构有3种,分别是while、until和for。
第10章 C/C++编程
1.简述GCC编译的各个阶段。
使用GCC编译并生成可执行文件需要经历4个阶段。
(1)预处理。GCC调用cpp(预处理器)命令对源码文件进行预处理。此阶段一般无需产生结果文件(.i),如果需要结果文件来分析预编译语句,可以加上选项-E。
(2)编译。调用cll(编译器)命令将每个文件编译成汇编代码。此阶段通常无需产生结果文件(.s),如果需要结果文件,加上选项-S即可。所生成的.s文件是汇编源码文件,具有可读性。
(3)汇编,这是针对汇编语言的步骤,调用as(汇编器)命令进行工作。一般来讲,.s为扩展名的汇编语言文件,经过预编译和汇编之后都生成以.o为扩展名的目标文件。此阶段将每个文件转换成目标代码。
(4)连接。调用ld命令来完成最后的关键性工作,即将所有的目标文件和库合并成可执行文件,结果是接近目标文件格式的二进制文件。
2.为什么要使用动态连接?
动态连接库的函数具有共享特性,连接时不会将它们合成到可执行文件中。使用动态连接的好处是生成的程序比较小,占用较少的内存。
3.简述make命令的功能。
在Linux/UNIX环境中,make一直是一个重要的编译工具。它最主要也是最基本的功能就是通过Makefile文件维护源程序,实现自动编译。make可以只对程序员在上次编译后修改过的部分进行编译,对未修改的部分则跳过编译步骤,然后进行连接。
4.简述Makefile基本语法格式。
Makefile文件通过若干条规则来定义文件依赖关系。每条规则包括目标、条件和命令三大要素。基本语法格式如下:
目标 … : 条件 …
命令
…
…
目标是一个目标文件,可以是目标代码文件,还可以是可执行文件,也可以是一个标签。条件就是要生成目标所需要的文件,可以是源代码文件,也可以是目标代码文件。命令就是make需要执行的命令,可以是任意的Shell命令,可以有多条命令。目标和条件要素定义的是文件依赖关系,要生成的目标依赖于条件中所指定的文件;命令要素定义的是生成目标的方法,即如何生成目标。
5.Makefile中的伪目标有什么作用?
伪目标并不是一个文件,只是一个标签,因而make无法生成它的依赖关系和决定它是否要执行。只有通过指明这个目标才能让其生效。当然,伪目标的命名不能和文件名重名。为了避免与文件重名的这种情况,可以使用一个特殊的标记“.PHONY”来显式地指明一个目标是伪目标,向make说明,不管是否有这个文件,这个目标就是伪目标。
6.简述make的工作方式。
(1)读入所有的Makefile文件。
(2)读入被include语句嵌入的其他Makefile文件。
(3)初始化这些文件中的变量。
(4)推导隐式规则,并分析所有规则。
(5)为所有的目标文件创建依赖关系链。
(6)根据依赖关系,决定哪些目标需要重新生成。
(7)执行生成目标的命令。
7.为什么要使用Autotools?
Makefile拥有复杂的语法结构,当项目规模非常大的时候,维护Makefile非常不易。源代码包安装分为3个步骤configure、make和make install,在构建过程中涉及到许多文件,制作起来非常复杂。使用Autotools工具生成Makefile文件,大大方便源码安装包的制作,而且无需更多的专业知识。
8.简述GTK+与Qt的功能和特性,以及两者的主要区别。
GTK+目前已发展为一个功能强大、设计灵活的通用图形函数库。GTK+可以用来进行跨平台GUI应用程序的开发。GTK+及相关的库按照面向对象设计思想来实现。GNOME桌面环境以GTK+为基础,为GNOME编写的程序使用GTK+作为其工具箱。
Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等,其核心库也加入了进程间通信、多线程等模块,极大地丰富了Qt开发大规模复杂跨平台应用程序的能力。Qt具有优良的跨平台特性,面向对象,具有丰富的API,支持2D/3D图形渲染,支持OpenGL,支持XML。
与GTK+相比,Qt不仅是GUI库,而且具有编程语言功能,拥有更好的开发环境和工具,能很好地支持桌面、嵌入式和移动应用。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
第11章 Java与Android应用开发
1.简述Java的主要特点。
Java的主要特点有:简单易学、分布式、跨平台、减少应用系统的维护费用、在B/S开发方面Java要远远优于C++。
2.简述Java体系。
Java是一套完整的体系,主要包括JVM、JRE和JDK。开发人员利用JDK开发自己的JAVA程序后,通过JDK中的编译程序将Java源文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或操作系统的系统调用。
3.针对不同的应用,JDK分为哪几个版本?
针对不同的应用,JDK分为3个版本:标准版(standard edition,SE)、企业版(enterprise edition,EE)和微型版本(micro edition,ME)。
4.简述Android系统架构。
Android采用了分层的系统架构,从低到高分别是Linux内核层、系统运行库层、应用框架层和应用层。
5.什么是Android SDK?
Android SDK指的是Android专属的软件开发工具包,包括为开发者提供的库文件以及其他开发所需的工具。开发Android程序时,引入Android SDK工具包即可使用Android相关的API。
第12章 LAMP平台与PHP开发环境
1.简述LMAP平台的组成。
LAMP是一个缩写,最早用来指代Linux操作系统、Apache网络服务器、MySQL数据库和PHP(Perl或Python)脚本语言的组合,由这4种技术的首字母组成。后来M也指代数据库软件MariaDB。这些产品共同组成了一个强大的Web应用程序平台。
2.简述Ubuntu上Apache配置文件体系。
Ubuntu的Apache主配置文件是/etc/apache2/apache2.conf,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如ports.conf等,则通过Include指令包含进来。位于mods-enabled、conf-enabled和sites-enabled目录中的配置文件分别包含用于管理模块、全局配置和虚机主机配置的特别配置片段。
3.简述Ubuntu上PHP配置文件体系。
Ubuntu上的PHP配置文件默认放在/etc/php5目录下。在该目录下有3个子目录:apache2、cli和conf.d。apache2和cli目录下都有php.ini文件且彼此独立。这两个目录还有conf.d子目录,且均是指向/etc/php5/conf.d目录相应配置文件的符号链接。
4.Webmin用于远程管理服务器有什么优势?
采用这种Web管理方式,管理员不必编辑系统配置文件,能够方便从本地和远程管理系统。它采用插件式结构,具有很强的扩展性和伸缩性。
这表示要调用test,以区别于同样经常使用方括号的字符、模式匹配操作(正则表达式)。
7.简述条件语句if和case的区别。
if语句通过判定条件表达式做出选择。大多数情况下,可以使用test命令来对条件进行测试,比如可以比较字符串、判断文件是否存在。
case语句是一种多选择结构,与其他语言中的“switch … case”语句类似。case语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。如果存在很多条件,那么可以使用case语句来代替if语句。
8.Shell循环结构有哪几种实现方式?
Shell提供的循环结构有3种,分别是while、until和for。
第10章 C/C++编程
1.简述GCC编译的各个阶段。
使用GCC编译并生成可执行文件需要经历4个阶段。
(1)预处理。GCC调用cpp(预处理器)命令对源码文件进行预处理。此阶段一般无需产生结果文件(.i),如果需要结果文件来分析预编译语句,可以加上选项-E。
(2)编译。调用cll(编译器)命令将每个文件编译成汇编代码。此阶段通常无需产生结果文件(.s),如果需要结果文件,加上选项-S即可。所生成的.s文件是汇编源码文件,具有可读性。
(3)汇编,这是针对汇编语言的步骤,调用as(汇编器)命令进行工作。一般来讲,.s为扩展名的汇编语言文件,经过预编译和汇编之后都生成以.o为扩展名的目标文件。此阶段将每个文件转换成目标代码。
(4)连接。调用ld命令来完成最后的关键性工作,即将所有的目标文件和库合并成可执行文件,结果是接近目标文件格式的二进制文件。
2.为什么要使用动态连接?
动态连接库的函数具有共享特性,连接时不会将它们合成到可执行文件中。使用动态连接的好处是生成的程序比较小,占用较少的内存。
3.简述make命令的功能。
在Linux/UNIX环境中,make一直是一个重要的编译工具。它最主要也是最基本的功能就是通过Makefile文件维护源程序,实现自动编译。make可以只对程序员在上次编译后修改过的部分进行编译,对未修改的部分则跳过编译步骤,然后进行连接。
4.简述Makefile基本语法格式。
Makefile文件通过若干条规则来定义文件依赖关系。每条规则包括目标、条件和命令三大要素。基本语法格式如下:
目标 … : 条件 …
命令
…
…
目标是一个目标文件,可以是目标代码文件,还可以是可执行文件,也可以是一个标签。条件就是要生成目标所需要的文件,可以是源代码文件,也可以是目标代码文件。命令就是make需要执行的命令,可以是任意的Shell命令,可以有多条命令。目标和条件要素定义的是文件依赖关系,要生成的目标依赖于条件中所指定的文件;命令要素定义的是生成目标的方法,即如何生成目标。
5.Makefile中的伪目标有什么作用?
伪目标并不是一个文件,只是一个标签,因而make无法生成它的依赖关系和决定它是否要执行。只有通过指明这个目标才能让其生效。当然,伪目标的命名不能和文件名重名。为了避免与文件重名的这种情况,可以使用一个特殊的标记“.PHONY”来显式地指明一个目标是伪目标,向make说明,不管是否有这个文件,这个目标就是伪目标。
6.简述make的工作方式。
(1)读入所有的Makefile文件。
(2)读入被include语句嵌入的其他Makefile文件。
(3)初始化这些文件中的变量。
(4)推导隐式规则,并分析所有规则。
(5)为所有的目标文件创建依赖关系链。
(6)根据依赖关系,决定哪些目标需要重新生成。
(7)执行生成目标的命令。
7.为什么要使用Autotools?
Makefile拥有复杂的语法结构,当项目规模非常大的时候,维护Makefile非常不易。源代码包安装分为3个步骤configure、make和make install,在构建过程中涉及到许多文件,制作起来非常复杂。使用Autotools工具生成Makefile文件,大大方便源码安装包的制作,而且无需更多的专业知识。
8.简述GTK+与Qt的功能和特性,以及两者的主要区别。
GTK+目前已发展为一个功能强大、设计灵活的通用图形函数库。GTK+可以用来进行跨平台GUI应用程序的开发。GTK+及相关的库按照面向对象设计思想来实现。GNOME桌面环境以GTK+为基础,为GNOME编写的程序使用GTK+作为其工具箱。
Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等,其核心库也加入了进程间通信、多线程等模块,极大地丰富了Qt开发大规模复杂跨平台应用程序的能力。Qt具有优良的跨平台特性,面向对象,具有丰富的API,支持2D/3D图形渲染,支持OpenGL,支持XML。
与GTK+相比,Qt不仅是GUI库,而且具有编程语言功能,拥有更好的开发环境和工具,能很好地支持桌面、嵌入式和移动应用。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是一个跨平台应用程序和UI开发框架。使用Qt只需一次性开发应用程序,无需重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
第11章 Java与Android应用开发
1.简述Java的主要特点。
Java的主要特点有:简单易学、分布式、跨平台、减少应用系统的维护费用、在B/S开发方面Java要远远优于C++。
2.简述Java体系。
Java是一套完整的体系,主要包括JVM、JRE和JDK。开发人员利用JDK开发自己的JAVA程序后,通过JDK中的编译程序将Java源文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或操作系统的系统调用。
3.针对不同的应用,JDK分为哪几个版本?
针对不同的应用,JDK分为3个版本:标准版(standard edition,SE)、企业版(enterprise edition,EE)和微型版本(micro edition,ME)。
4.简述Android系统架构。
Android采用了分层的系统架构,从低到高分别是Linux内核层、系统运行库层、应用框架层和应用层。
5.什么是Android SDK?
Android SDK指的是Android专属的软件开发工具包,包括为开发者提供的库文件以及其他开发所需的工具。开发Android程序时,引入Android SDK工具包即可使用Android相关的API。
第12章 LAMP平台与PHP开发环境
1.简述LMAP平台的组成。
LAMP是一个缩写,最早用来指代Linux操作系统、Apache网络服务器、MySQL数据库和PHP(Perl或Python)脚本语言的组合,由这4种技术的首字母组成。后来M也指代数据库软件MariaDB。这些产品共同组成了一个强大的Web应用程序平台。
2.简述Ubuntu上Apache配置文件体系。
Ubuntu的Apache主配置文件是/etc/apache2/apache2.conf,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如ports.conf等,则通过Include指令包含进来。位于mods-enabled、conf-enabled和sites-enabled目录中的配置文件分别包含用于管理模块、全局配置和虚机主机配置的特别配置片段。
3.简述Ubuntu上PHP配置文件体系。
Ubuntu上的PHP配置文件默认放在/etc/php5目录下。在该目录下有3个子目录:apache2、cli和conf.d。apache2和cli目录下都有php.ini文件且彼此独立。这两个目录还有conf.d子目录,且均是指向/etc/php5/conf.d目录相应配置文件的符号链接。
4.Webmin用于远程管理服务器有什么优势?
采用这种Web管理方式,管理员不必编辑系统配置文件,能够方便从本地和远程管理系统。它采用插件式结构,具有很强的扩展性和伸缩性。