#blog text
1. 描述计算机的组成及其功能。
2. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
3. 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
4. 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
5. 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
6. 请罗列Linux发行版的基础目录名称命名法则及公用规定。
###描述计算机的组成及其功能
计算机由CPU、内存、IO设备组成。
CPU由控制器和运算器组成。
控制器:输入控制指令。
运算器:运算数据,得出运算结果。
内存:像是与cpu进行数据交换,为CPU提供数据,并将CPU运算结果再次交给内存。
IO:输入、输出设备。用于数据的输入和输出。
###按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
slackware
S.U.S.E
SLES
OpenSUSE
debian
ubuntu
mint
knopix
redhat
redhat 0-9.0
RedHat Enterprise Linux(RHEL)
Community ENTerprise OS(CentOS)
Fedora core(6个月)
gentoo
ArchLinux
Linux的发行版是以GNU/Linux为基础,在其基础上将其包装,添加基本常用的应用以及自己发行版独特的标志等改动。就像如同在同一个地基上,造出不同风格的房子一样。(地基则是GUN/Liunx,Linux的发行版则是一个完整的房子),而不同风格的房子也就是不同发行版Linux的联系与区别了。
###描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
1.Linux一切皆文件。
在Linux中所有的设备、管道、套接字、目录等都是以文件的形式存在。
2.Linux由众多功能单一的程序组成;一个程序只做一件事,而且要做好;组合小程序完成复杂任务。
Linux中的程序分工明确,每种程序只做其该做的事,因此每个程序都不会太大,运用Linux中的一些工具将其组合起来,可以完成复杂困难的任务。
3.尽量避免跟用户交互。(目标:易于以编程的方式实现自动化任务;)
运行程序后减少跟用户的交互,可以减轻人员的工作量。
4.使用文本文件保存配置信息。
每个程序都会有其对应的配置文件,文本文件更加容易修改。
### 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
Linux中命令分为内部命令和外部命令。
type命令可以查询出此文件为什么命令;
如:~]# type man
man is /usr/bin/man
外部命令
~]# type type
type is a shell builtin
内部命令
内部命令获取帮助信息:
help COMMAND
如:~]# help type
外部命令获取帮助信息:
1)通过帮助手册获取帮助(帮助手册路径/usr/share/man)
man COMMAND
如: ~]# man man
manual中帮助信息:
NAME:功能说明
SYSNOPSIS:语法格式
DESCRIPTION:详细描述
OPTION:选项
EXAMPLES:使用示例
AUTHOR/HISTORY:作者
SEE ALSO:参考
BUGS:报告BUG的提交方式
manual手册是压缩格式的文件,分章节:
1)用户命令
2)系统调用
3)C库函数
4)设备和特殊文件
5)文件格式和配置
6)游戏
7)杂项
8)系统管理工具和守护进程
~] # man # COMMAND
whatis命令可以查询此命令有哪些章节:
~] # whatis man
man -M /PATH 可以查看指定路径的帮助手册
2)获取命令的在线文档
info COMMAND
如: ~]# info man
3)命令自带简要格式的帮助
COMMAND –help
如:man –help
4)一般程序会自带帮助文档
如:很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
INSTALL:安装帮助
README:程序相关信息
CHANGES:版本迭代改动信息
###Linux系统命令格式
基本格式:
]# COMMAND [OPIONTS] [OPTIONS_ARG] COMMAND_ARG
COMMAND:命令的执行路径,如/bin/ls
OPTIONS:命令的选项,不同的选项,命令的执行的功能就会不同。如/bin/ls -l;/bin/ls -a。
OPTIONS_ARG:选项的参数。选项作用的对象。如cut -d: -f1
COMMAND_ARG:命令的参数,也就是命令作用的对象。如ls /var
[]:代表中括号中内容可选
|:代表或者。如[a|b],可以选择a或b
…:代表前面的内容可以有多个
ifconfig:configure a network interface
配置一个网络接口;显示网络接口信息。
ifconfig [interface]
]#ifconfig
显示所有连接的网络接口信息
]#ifconfig INTERFACE_NAME
显示指定的网络接口的信息
echo:display a line of text
展示一行文本;回显输出。
echo [SHORT-OPTION]… [STRING]…
-n:不输出换行符
-e:启用转义字符
-E:不启用转义字符(默认选项)
example:
]# echo -n "sadan"
输出sadan不换行
]# echo -e "\tsadan"
sadan
]# echo -E "\tsadan"
\tsadan
tty: print the file name of the terminal connected to standard input
显示连接的终端文件名
tty [OPTION]…
-s 什么都不显示,仅返回一个退出状态
example:
]# tty
显示终端
]# tty -s
什么都不显示
startx-initialize an X session
启动X Window
startx [options]
example:
]# startx
启动X会话
export:Set export attribute for shell variables
设置shell变量属性
export [-fn] [name[=value] …]
or export -p
-f:提交到shell函数
-n:删除变量
-p:显示所有变量和函数
example:
]# export sadan=yxq
将变量sadan设置为yxq
]# export -p
显示所有变量
]# export -n sadan
删除sadan变量
]# export -p
显示所有变量
pwd:print name of current/working directory
打印当前工作目录的名字
pwd [OPTION]…
-L:包含软连接
-P:避免软连接
example:
[root@centos ~]# cd /etc/init.d
[root@centos init.d]# pwd -P
/etc/rc.d/init.d
不显示软连接
[root@centos init.d]# pwd -L
/etc/init.d
显示软连接
history:Display or manipulate the history list
显示或控制历史列表(命令历史保存在.bash_history文件中)
history [-c] [-d offset] [n]
or history -anrw [filename]
or history -ps arg [arg…]
-c:清空历史列表
-d:删除历史列表中指定的命令历史
-r:读命令历史文件并将其添加到历史列表中
-w:将历史列表写入到命令历史文件中
history n:显示最近的n条命令
example:
]# history
显示历史列表
]# history -c
清空历史列表
]# history -d 2
删除编号为2的历史命令
]# history -r
将命令历史添加到历史列表中
]# history -w
将历史列表写入命令历史文件中
]# history 2
显示最近两条历史命令
shutdown:shutdown may be used to halt, power-off or reboot the machine
可以关闭或重启机器
shutdown [OPTIONS…] [TIME] [WALL…]
-r:相当reboot
-H: 相当halt
-P:相当poweroff
-k:仅仅发送信息
-c:取消尚未执行,但正在运行的shutdown指令
TIME:
now
hh:mm
+m
example:
]# shutdown -H now
现在立刻关闭机器
]# shutdown -P +3
三分钟后关闭机器
]# shutdown -r 10:00 please backup
10点准时重启,并提醒所以用户"please backup"
halt、poweroff、reboot: Halt, power-off or reboot the machine
关闭或重启机器
halt [OPTIONS…]
poweroff [OPTIONS…]
reboot [OPTIONS…]
-f : 强制执行
example:
]# halt -f
]# poweroff -f
强制关机
]# reboot -f
强制重启
hwclock:query or set the hardware clock
检查并设置硬件时钟
hwclock [function] [option…]
-r:显示硬件时钟时间
-s, –hctosys:以硬件时间为标准,将系统时间设置为硬件时间
-w, –systohc:以系统时间为标准,将硬件时间设置为系统时间
example:
]# hwclock -s
将系统时间设置为硬件时间
]# hwclock -w
将硬件时间设置为系统时间
date:print or set the system date and time
显示或设置系统日期和时间
date [OPTION]… [+FORMAT]
date [MMDDhhmm[[CC]YY][.ss]]
FORMAT:
%y or %Y :年
%m :月
%d :日
%H :时
%M :分
%S :秒
%s :1970-01-01 00:00:00 到现在经过多少秒
M:月
D:日
h:时
m:分
Y:年
s:秒
example:
显示当前时间
~]# date "+%Y-%m-%d %H:%M:%S"
2016-12-04 01:48:16
设置当前时间
~]# date 020202022016.02
Tue Feb 2 02:02:02 CST 2016
###请罗列Linux发行版的基础目录名称命名法则及公用规定。
其文件名称标准为FHS(firesystem hierachy standard).
根目录下的子目录:
/boot:引导启动时要加载的静态文件、内核和ramdisk及grup等
/bin:用户使用的命令程序
/sbin:系统管理员使用的命令程序
/lib:共享库文件以及内核模块
/lib64:专为x86_64位的共享库文件
/usr:全局共享的只读数据文件;独立的层级结构
/usr/
bin
sbin
lib
lib64
include:C程序头文件
share:自带文档及帮助手册等特定文件
src:程序源码存储位置
local:第三方应用程序的安装位置;也是独立层级结构
/usr/local/
bin
sbin
lib
lib64
include
share
src
/dev:存储设备文件或特殊文件
/etc:系统程序的配置文件
/srv:当前主机为服务提供的数据
/var:存放一些经常改变的文件;独立的层级结构
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
local:专用于为/usr/local下的应用程序提供可变数据
lock:锁文件
log:日志目录及文件
opt:专用于为/opt下的应用程序提供可变数据
run:运行进程相关数据
spool:应用程序的数据池
tmp:保存系统两次重启之间产生的临时文件
/home:用户的家目录
/media:挂载便携式移动设备文件
/mnt:临时挂载目录
/tmp:临时文件
/opt:第三方应用程序安装目录
/proc:用于输入内核与进程信息相关的虚拟文件系统,也叫伪文件系统,由内核参数映射而来
/sys:sysfs虚拟文件系统,提供一种比/proc更方便访问内核的途径;其主要作用在于为管理Linux设备提供一种统一模型的的
#用户及权限管理
用户是什么,在Linux中表现方式
用户信息如何找到,在哪找
对应目录提供的具体信息
/etc/passwd
/etc/gpasswd
/etc/shadow
/etc/gshadow
属主与属组
用户管理命令
权限的出现及其作用
权限在Linux中的表现方式
目录跟文件之间权限的区别
遮罩码是什么?作用?
特殊权限suid,sgid,sticky
用户是什么,在Linux中表现方式
Linux是多用户和多进程的系统,而其中的用户,顾名思义就是使用系统资源的账户,在Linux中将这个账户称为用户名(Username)。每个用户名都有其唯一对应的ID号,其被称为用户的UID。
为了将部分特定资源,让特定用户使用,则出现了用户组这一概念,也就是将资源分组,不同的用户在不同的组内,享受不同的资源。它在Linux则称为组名(GroupName)。每个组也有其对应的ID号,其被称为用户组(基本组)的GID。
Linux中UID分为以下几类:
管理员:root uid=0
普通用户:uid 1-65535
普通用户又可以分为:系统用户和登陆用户两种;
系统用户:1-499(centos6),1-999(centos7) 为了分配一些后台进程或服务类进程以非管理员的身份运行,且不能登陆系统。因而创建的普通用户。
登陆用户:500+(centos6),1000+(centos7) 通过交互式方式登陆的普通用户。
Linux组
管理员组:root gid=0
普通组:1-65535
普通组又分为:系统组和非系统组,我们通常把非系统组就叫作普通组。
系统组:1-499(centos6),1-999(centos7)
非系统组:500+(centos6),1000+(centos7)
对于一个用户而言可以有多个不同的组,称其为用户的基本组和附加组。
基本组:与用户同名,且仅包含用户自己。
附加组:除基本组以外,用户所在的组,被称为该用户的附加组。
还有共有组及私有组之称:
私有组:仅包含一个用户的组,一般都是用户的基本组。
共有组:包含多个用户的组。
用户信息如何找到,在哪找
对应目录提供的具体信息
管理用户在Linux中需要用户名及其密码,组名及其密码。这些信息都保存在以下配置文件中:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/etc/passwd文件中保存信息的格式:
account;password;UID;GID;GECOS;directory;shell
用户名;可以是加密的密码,也可以是占位符x;用户UID;用户主组的GID;注释信息;用户家目录;默认使用shell
/etc/shadow文件中保存信息的格式:
login name;
encrypted password;
date of last password change;
minimum password age;
maximum password age;
password warning period;
password inactivity period;
account expiration date;
reserved field
登陆名;加密的密码;最近一次密码修改时间;最短密码修改期限(天);最大密码修改期限(天);警告期段;过期期限;用户停止时间;保留字段
/etc/group文件中保存信息的格式:
group_name;password;GID;user_list
组名;加密组密码,如果为空则无密码;组ID号;组中的用户列表(以此组为附加组的用户列表)
/etc/gshadow文件中保存信息的格式:
group name;encrypted password;administrators;members
组名;组加密的密码;组管理员;组成员
属主与属组
Linux一切皆文件,在Linux中每个文件都会有其对应属主和属组;也就是说这个文件的所属者是谁,属于哪个组。
~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2153 Nov 22 17:22 /etc/passwd
其中中左边root是文件属主,右边root是文件属组。
用户管理命令
用户管理命令:
创建用户:
useradd [options] LOGIN
-u UID:指定用户UID
-g GROUP:指定用户基本组(该用户组必须事先存在)
-G GROUP1[,GROUP2,…[,GROUPN]]]:指定用户附加组(附加组必须事先存在)
-r:创建一个系统用户
-c COMMENT:用户注释信息
-d HOME_DIR:指定用户家目录
-s SHELL:指定用户默认SHELL
-k:家目录所需框架;也就是将/etc/skel中隐藏文件全部复制到新建的家目录中
-M:不创建家目录;但/etc/passwd中显示有,实际上没有创建
删除用户:
userdel [options] LOGIN
-f:强制删除
-r:删除用户的同时,删除其家目录
修改用户信息:
usermod [options] LOGIN
-u UID:修改用户UID
-g GROUP:修改用户的基本组
-c:用户注释信息
-d HOME_DIR:用户家目录
-m:将用户家目录中所新建的文件移动到新的家目录中
-s SHELL:用户默认shell
-L:锁定用户
用户组管理命令:
用户组添加:
groupadd [options] group
-g GID:指定组的GID
-r:创建系统组
用户组删除:
groupdel [options] GROUP
用户组修改:
groupmod [options] GROUP
-g GID:修改组的GID
查询用户及用户组信息:
id [OPTION]… [USER]
-u:显示指定用户的UID
-g:显示指定用户的基本组GID
-G:显示所有组(基本组和附加组)
-n:使用用户ID查询,显示其名称
用户及用户组密码管理命令:
passwd命令:
passwd [option] [username]
-l:锁定用户
-u:不锁定用户(默认)
-e DATE:过期期限,日期;
-n, –minimum DAYS:最短使用期限
-x, –maximum DAYS:最长使用期限
-w, –warning DAYS:警告阶段
-i, –inactive DAYS:活跃天数
–stdin:将管道的标准输出作为密码
-f:强制
gpasswd命令:
gpasswd [option] group
-a USERNAME:向组中添加用户
-d USERNAME:从组中移除用户
属主和属组命令管理:
chown命令:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
-r:递归管理,对目录使用
用户切换命令管理:
su命令:
su [options…] [-] [user [args…]]
-l:读取用户配置信息重新初始化登陆
-c 'COMMAND':使用指定用户执行此命令
注意:管理员可无密码切换至其它任何用户;
权限的出现及其作用
在此之前需要思考一个问题,那么Linux中仅仅只是用户跟组就足够管理各种资源分配么?很明显是不能的,那么在Linux中引入了权限这个用于细化资源分配的东西。
权限在Linux中的表现方式
那么权限在Linux中是如何表现的呢?
~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2153 Nov 22 17:22 /etc/passwd
从第二字符到第十个字符
可以看出rw-r–r–这些就是Linux中的权限表示,
r:readable,表示可读
w:writable,表示可写
x:excutable,表示执行
-:表示没有此权限
左rw-:表示文件所有者user的权限
中r–:表示文件所属组group的权限
右r–:表示其他者other的权限
权限的数字表示法:
0:表示没有
1:表示有
mode 二进制 八进制
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
修改文件权限命令:
chmod命令
chmod [OPTION]… MODE[,MODE]… FILE…
-R:递归处理
用户简写表示: u:属主 g:属组 o:其它 a: 所有
MODE:
赋权表示:
u=###
g=###
o=###
a=###
授权表示法:直接操作一类用户的一个权限位r,w,x;
a+,a-
o+,o-
g+,g-
u+,u-
数字授权法:
777
###
注意:用户仅能修改属主为自己的那些文件的权限;
目录跟文件之间权限的区别
Linux的权限指的是对文件和目录的权限
文件:
r:可读取文件内容
w:可修改文件内容
x:可执行文件
目录:
r:可以查看目录下一级子文件的名称,可以使用ls /Dir
w:可以修改目录中的子目录(如删除,移动,复制,重命名等),但不能修改文件内容
x:可以进入目录,可以查看文件更详细的元数据(也就是可以使用ls -l命令)
遮罩码是什么?作用?
每次创建文件时,系统默认会分配给创建的文件权限,那么系统根据的是什么呢?
它就是遮罩码,在Linux中是umask。
那么权限对象只有文件和目录:
创建一个新文件的默认权限:
666-umask
注意:如果某类的权限减去的结果有x权限,则在其权限上+1
创建一个新目录的默认权限:
777-umask
umask命令:
umask 查看遮罩码
umask #:设置遮罩码
特殊权限suid,sgid,stick
Linux中有三个特殊权限suid,sgid,sticky
在Linux对文件的访问权限是如何判别的呢?
首先得有一个对文件的访问权限应用模型:
首先查看访问文件的用户是否跟文件的所有者一致,一致则使用属主权限
不一致则查看是否属于文件所有组,一致则使用属组权限,
不一致则使用其它人权限。
那么用户使用一个命令时,那么这个命令去访问其他文件时权限是怎么判断呢?
首先我们知道命令也只是一个文件,它运行成为一个进程。也就是进程所使用的权限是该如何判别。进程访问文件,它的权限是跟谁有关呢?其实就是运行该用户的权限。
SUID
好,现在可以说说SUID了
文件有了它这个权限,运行一个程序时,运行中的进程所使用的权限为其程序自身的权限,而不是运行该程序用户的权限。
SGID
一个场景,不同用户在同一目录中各自创建文件,那么各个文件直接所属者跟所属组都是创建人自身,那么这样的话这些文件都只有其创建人才能去修改,访问。现在我想要在这个目录中所有人创建的文件是共享的。
为了解决这个问题,出现了SGID这个特殊权限。给目录添加SGID权限,该目录下所有创建的文件的属组默认都是该目录的属组。
Sticky
这个特殊权限也叫粘滞位。还是上述场景为例,我在一个共享目录中,我不小心删除了其他人的文件,那该如何,我想的是只有自己才能删除自己的文件,其它人没有此权限。
所以Sticky权限的作用就是有该权限的目录下的文件,所有文件只有创建者才能删除,其他人无删除权限。
那么这三个特殊权限该如何实现呢?
SUID
chmod u+s FILE…
chmod u-s FILE…
表现为在属组的左三个权限位(user):
rws或rwS
当文件自身有x权限时,SUID为s
当文件自身无x权限时,SUID为S
SGID
chmod g+s FILE…
chmod g-s FILE…
表现为在属组的中三个权限位(group):
rws或rwS
当文件自身有x权限时,SUID为s
当文件自身无x权限时,SUID为S
Stiky
chmod o+t FILE…
chmod o-t FILE…
表现为在属组的右三个权限位(other):
rwt或rwT
当文件自身有x权限时,SUID为t
当文件自身无x权限时,SUID为T
同样的三个特殊权限也占用一个权限位:
suid sgid stiky 000 001 010 011 100 101 110 111
0 1 2 3 4 5 6 7
也可以使用权限为来赋予特殊权限
chmod 4755 /path/to/somewhere
原创文章,作者:N25_sadan,如若转载,请注明出处:http://www.178linux.com/62532
评论列表(1条)
总结的很好,下次要加一例子说明就更棒了