1. 设备在linux中都是以特殊形式存在的。分为块设备和字符设备。都是用文件代表设备。在文件中以b开头的文件是块设备,以c开头的是字符设备
2. 系统有12个虚拟控制台,前6个可作为本地使用,可以按Alt+Fn(1-12)切换。也可以用su – 用户切换用户(特别说明:如果用su 用户名不安全,因为环境变量没有更改,前边的那种事更改了环境变量)
3. file查看文件类型。File 文件名。linux中所有的东西都当做文件。
4. 文件类型
a) “-”表示是一般文件
b) “d”是目录
c) “b“是块文件
d) “c”是字符文件
e) “l”是管道文件
f) “p”是人工管道文件
文件名最大255个字符。
5. 文件权限系统的用户分:所有者u,所属组g,其他用户o。
6. 文件权限:对于上边每类用户分三种:r读,w写,x执行,
7. 硬链接:不可以跨文件系统,不可以给目录建立。软连接就相当于快捷方式,可以给目录也可以跨文件系统。
8. “.”表示当前目录的硬链接”..”表示的当前目录上一级的目录的硬链接。
9. 目录也是一种文件。目录与普通文件的权限不同。
a) 读:表示用户是否可以读取目录内的文件
b) 写:单独使用没有什么作用,与执行权限连用可以在目录内添加删除文件。
c) 执行:用户可以进入目录,调用目录内的文件
所以如果你没有执行权限,即使有写权限也不可以在目录下建立文件。因为你进不去本身都,哪能创建。
10. set gid对目录的作用:所属组都是该目录用户所属
a) 默认情况下,用户建立文件属于用户当前所属组
b) 目录上设置了setgid,表示此目录中,任何人建立的文件,都会属于该目录的所属组。、
设置方法是:chmod g+s 目录
(注意要是本来系统就有执行权限,则权限中加入的s是小写,如果本来没有就会成大写)
11. 冒险位对目录作用
a) 默认情况下,如果一个目录上有w何x权限,则任何人可以此目录中建立删除文件。
b) 一旦目录上设置了冒险位,则表示在此目录中,只有文件拥有者、目录的拥有者与系统管理员可以删除文件。
chmod o+t 目录就行了。
12. 强制位对文件作用:是修改了可执行文件后,当用户执行时候以该可执行文件的所属用户身份执行。如:/bin/ping命令就是设定了强制位,所以其他用户也可以执行,如果去掉,即使给其他用户执行权限也没法ping通,因为ping时候要用icmp查看连接,查看包,icmp只有root用户可以查看,所以执行不了,加上强制位,就会以root身份执行。
chmod u-s 文件
默认情况下,用户执行一条命令都会以该用户身份来运行进程。加上了强制位后就会以该文件拥有者和所属组身份运行进程。
13. 用户可以用chmod指令来为文件设置强制位与冒险位。
a) 4(set uid)
b) 2(set gid)
c) 1(sticky)
设置时候chmod 4777 文件。中的4表示的就是设置了强制组。
14. Umask知识
a) 在没有umask时候文件来说是:创建时候权限是rw-rw-rw-目录创建时候rwxrwxrwx
b) 默认权限的值由环境中的umask值来确定。
c) 一般用户的umask值是002,系统用户的默认umask值是022。
d) 当有umask(一般都有)时候当创建一个文件或者目录的时候其权限就是没有umask的权限减去用户的umask值。例如root用户umask是022时候,创建一个文件没有用umask时候是rw-rw-rw,实际中减去umask后变成了rw-r—r—而对于目录实际中就变成了rwxr-xr-x
e) 可以改变默认权限执行命令:umask 0003就改成了0003了
15. 根目录下边目录讲解:
a) /bin:存放用户指令
b) /boot:存储内核,模块映像等启动用文件
c) /dev:存储设备文件
d) /etc:存储系统,服务的配置与文件。相当于wind中的注册表
e) /home:存储个人主目录
f) /lib:存储库文件,诸如核心模块、驱动。函数库
g) Lost+found:存储fsck用的孤儿文件。
h) /mnt:系统加载文件系统时候用常用挂载文件
i) /opt:第三方工具使用的安装目录。安装的软件应该装在这。
j) /proc:虚拟文件系统,包含系统讯息等。不会占用硬盘空间是虚拟的,会占用内存。
k) /root:root用户主目录
l) /sbin:存储系统管理用的指令
m) /tmp:临时文件的暂存点。类似wind中的回收站。
n) /usr:存储于用户直接相关的文件和目录
o) /var:存储在系统运行中可能会更改的数据。如数据中的数据文件,日志文件等会更改的。
16. Linux中的应用工具分为三种
a) 交互工具
b) 过滤器
c) 编译器
d) 能够接受数据,过滤在输出的工具称为过滤器
e) 对于过滤器和进程,存在着输入源和输出对象。
17. 输入、输出、重定向。文件在数据库中在/dev/下
a) 输入:过滤器的数据来源
i. 标准输入stdin(0):默认是键盘
b) 输出:过滤器的数据去向
i. 标准输出stdout(1):默认是终端屏幕
ii. 错误输出:报错讯息与标准输出走不同德I/O通道
1. 标准错误输出stderr(2)没惹是终端屏幕
iii. 正确输出:
c) 重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或者去向。
18. 输入重定向:
a) 使用“<”重定向输入源。
19. 从当前文档输入
a) 使用“<<”让系统将一次键盘的全部输入,先送人虚拟的‘当前文档’,然后一次性输入
b) 需要一对字母、符号或者字符串作为起始终结标识符
c) 可以选择任意符号作为起始终结标识符
20. 输出重定向:
a) 使用“>”输出重定向
21. 错误输出重定向:
a) 没惹情况下系统错误会显示到屏幕上。
b) 使用2>将报错讯息重定向输入一个文件。如ls-l报错要用输出错误就可以。Ls-l 2>test就会把错误放到文件test中。报错追加应该用>>
c)
22. 双向重定向:使用>和2>可以将一次操作的正确、错误输入输出到文件中。
23. 管道:|把命令连接起来。
24. 重定向和管道实例应用举例子:
a) 复制文件:cat < filea > fileb复制把filea中的内容复制到fileb中
b) 合并把小文件合并成大文件:cat file* > bigfile
c) 分屏显示:ls –l | more
25. 可执行文件搜索:
a) Which查找可执行文件的路径。一般式先查找到一个指令的别名,然后在显示出所在位置。
b) Whereis搜索一个可执行工具及其相关配置、帮助
c) slocate
i. slocate [关键字段]
ii. locate [关键字段]同slocate [关键字段]
d) find指令:find [路径] [参数] [表达式]。其中重要参数-user –group – nogroup .name perm
i. 从指定路径下递归向下搜索文件
ii. 支持
iii. 查到文件拥有者位oracle的文件。user参数。
iv. 查找根据文件所属组查找文件。group参数
v. 根据文件名字查找文件:name参数
vi. size根据文件大小查找。
表示文件大于1000k的文件,要是用-表示小于。
vii. 以文件类型查找。
viii. 查找没有用户的参数nouser,用户nogroup参数
ix. perm参数根据文件的权限查找文件。
x. 特殊例子:当把文件权限设置为6000,一个是6600还有4000和2000时候
说明:当权限前边加上“-“表示的是必须就是前边必须是6。从二进制来解释:6000是110 000 000 000 6600 是110 110 000 000而4000 是100 000 000 000而2000 是010 000 000 000就是说前边必须是11连接着写的。只检查前边两位
但是前边是“+”时候:检查前边两位中有一个有1就行了。
xi. find名后边可以加上 –exec 命令 {} \;表示紧接着对找到的文件处理。其中{}代表find找到的文件,\ 禁止转义 ;表示本行指令结束。例如:
26. 常用的文件操作指令:
a) wc---统计文件的行、词、字数。
4表示行数,5表示字数,11表示字符数。abc.txt是文件名
表示行数。
表示字数。
b) grep显示文件中匹配关键字的行。可以用正则表达式。***可以看看。查一下。
把文件abc.txt中的有a的行都显示出来。
行号显示出来。
没有“a“字符的行显示。
c) sort指令。按序重排文本并送显示。
d) diff
e) uniq回去掉文件中相邻相同的行。不相邻去不掉。
文件内容是。命令输出:
应用可以对文件中内容排序然后去掉重复的行输出:sort 文件 | uniq
f) cut指令用法:显示文件中的某一列。默认是以tab键隔开的。-d设置间隔符号的,-f是显示哪一列。
如果cut -f3 前边的文件名 意思是第三列结果:
cut1文内容
输出邮箱则,
输出第四个字符到第八个字符的内容
g) paste将文本按列拼接。
27. 压缩
a) gzip,gunzip。linux标准压缩工具。对文本压缩达到75%压缩率。zcat可以查看到压缩文件中的内容。
b) compress uncompress,旧的unix压缩工具
c) bzip2,bunzip2。更新linux压缩工具。比gzip有更高的压缩率。
28. tar是打包文件,不提供压缩文件。可以用于磁带机、软盘、zip设备的打包。
a) tar cvf 起个名字为打包的文件 文件或者目录
b) tar xvf 打包文件。解压
c) tar cvf 名字 –C 目录 文件.
d) 对于.tar.gz解压 tar zxvf 文件名
e) 对文件或者目录压缩并打包。tar jcvf 起个名字 文件或者目录
f) 解压.tar.bz2用tar jxvf 文件。
g) 备份到软盘,移动硬盘等上,tar zvxf /dev/floppy test备份到软盘上。
29. dump/restore备份还原:
a) 备份与还原ext2/3文件系统不可以在其他系统上涌
b) 可以选择完全备份或者增量备份。
c) 例如:dump -0u –f /var/tmp/hda2dump /dev/hda1意思是对分区/dev/hda1备份到/var/tmp/下备份名字hda2dump.其中上边的-0u中的0是备份等级(0-9),0是完全备份,如果加上-u备份会把备份记录写到/etc/dumpdates下边,并且只有备份顶层目录时候,即整个驱动备份,才可以用。-f是指定备份路径。
d) restore –rf /var/tmp/hda2dump可以查看备份文件的内容。恢复。
30. shell命令解释器。作用是用户与系统沟通的媒介。
a) 查看系统支持的shell类型:cat /etc/shells
b) bash是bourne again shell的缩写。是gnu计划的组建。
i. 设定变量:a=abc.
ii. echo $a或者 echo ${a}可以得到变量值。最好用的是${a}表示变量。
例如:
当a=$a123时候系统会认为是变量$a123这个变量,但是这个变量没有,而不认为是$a和123。如果加上+号就不一样了,结果如图。
iii. linux中变量可以分为本地变量(是用于当前环境),环境变量(用与所有的环境),可以用set(本地变量和系统环境变量)env(查看系统环境变量)
iv. 常用的预定义环境变量.环境变量都是大写的。
1. HOME:当前用户主目录。
2. PATH:当前用户可执行文件搜索路径
3. LANG:程序应该使用的默认语言。如果屏幕出现乱码可以更改语言改成英文,一般就没有乱码了。LANG=en。在查看就没有了。查看linux支持的语言,可以用locale –a查看知道。
4. PS1:行提示符( ):basename 目录 是截取目录的最后一个目录名。提示符中有:\u(当前用户名) \h(主机名称截取第一个词) \W(截取当前目录中的最后一个目录名) \a \A(时间:时:分) \t(时间24小时的时:分:秒) \T(时间12小时的时:分:秒)
\H表示完整的主机名,\#表示当前执行的是第几条命令。\$表示的是用户的是超级用户还是普通用户。#表示超级用户,$表示普通用户。
例如:
修改过后提示符显示的结果。
5. 将自定义的变量转变为环境变量:用export 变量名。
v. history可以查询用户以前的操作。可以用上下键可以调用以前用过的命令。因为bash会把以前的命令记录下来。history n(数字)最后使用过的n条指令。最多存储1000个默认。echo $HISTSIZE查看默认存储多少条指令。history表存储在内存中,在用户logout时候记录入用户目录下的.bash_history文件中。下载login时候载入。还可以用history –w也可以直接强制性写入该文件。
vi. 可以使用!来调用过往指令:
1. !!:重复执行上一条指令
2. !a:重复执行上一条以a开头的指令
3. !number:重复执行上一条在history表中记录号码为number的指令。
4. !-number:重复执行前第number条指令。
5. 可以用ctrl+r来在history表中查询某条过往指令。按下组合键后可以输入一个字母就是查找最近使用的包含该字母的指令。
6. !$是截取上一条命令中的最后一个字。如;ping 127.0.0.1就会截取127.0.0.1
7.
vii. alias别名功能:
1. 当shell下键入alias可以查询当前alias列表。用户可以用alias来为一条命令取一条命令的别名。用户可以用unalias来取消一条命令的别名。alias记录在shell中总是先行。
2. 可以直接输入alias直接显示已经有的出别名:
3. 设定别名:用alias a=’ls -al’再用a就相当于ls –al对于长命令可以永别吗。取消别名用。unalias a查看别名。
viii. 命令行表达式:
1. 命令行输出-----------“”将一串字符当成一个字符对待,如果字符中有特殊含义的字符如(但是除了$ `(esc下边的那个符号) ! \),则转义。
2. 命令行输出--------‘’将一串字符当成一个字符来对待,如果包含特殊字符不转以。
3. 执行引用符----------``(esc下边那个键)
是首先执行``中的pwd命令然后把结果给命令ls -al
4. 数学运算----------$[]在中括号内的表达式会被数学计算。首先会计算中括号中的内容,然后会把结果付给一个临时变量然后输出。下边的步骤:
5. 逸脱符------------\
a) 用于取消命令行中字符的特殊含义
建立一个目录名为 a b必须用。
还有:接着输入的意思。
6. 命令行结束符”;”用于在一行内分割两个独立的命令。ls;pwd;ls –al一条一条的执行命令。
7. 子shell的机会--------()在小括号内的命令行表示激活一子shell后在子shell中运行。意思是如果(HOME=/usr)是有激活了(生成了)一个shell中运用HOME=/usr而当前的HOME变量没有改变。
8. 逻辑运算符:&& ||。顺序是不能颠倒的。一般要把&&放到前边,||后边。
a) &&表示当前一条指令执行成功时再执行后一条
b) ||表示当前一条命令执行失败后在执行后一条。
例如:如果ls /root/test 如果成功就会执行, echo “exist”如果不成功就会执行 echo “not exist”
上边的第二个是:ls /root/test 先执行,失败则执行后边的,都执行了。所以逻辑指令顺序变换就会变化。
c) 登录shell。登录shell和非登录shell(登陆后用su – oracle就是,还有图形界面打开的终端等)
i. 默认情况下,在shell改变变量、umask、alias,只在此次登录中有效。一旦logout在login就恢复初始化值。
ii. 登录shell从配置文件中读取shell环境。
iii. 想把自己定义的变量写到设置文件中就可以再次登录也可以用。
iv. 定制登录shell
1. bash在用户登录时候从四个文件中读取环境设定:
a) 全局设置文件:
i. /etc/profile:作用:系统的路径变量如:PATH,MAIL等,全局系统整个环境。
ii. /etc/bashrc:作用:掩码的功能,提示符的内容
b) 用户设置文件
i. ~/.bashrc:用户的
ii. ~/.bash_profile:同/etc/profile文件功能相同,只不过是用户的不是全局的。
c)
2.
v. 其他shell设定文件
1. ~/.bash_logout:在用户logout的时候自动执行
2. ~/.bash_history:用户login时候自动读取其内容并加载到内存history记录中,logout时将内存history记录写入。
3. /etc/profile.d/*.sh:在/etc/profile中被执行,其中的环境设定,也会被全局引用
可以看到读取的先后顺序。可以看到如果一个变量在四个文件中都有后边的会覆盖掉前边的。
顺序:可以理解为每次都要先读取全局变量,然后登入要读取该用户的自己环境变量,然后要做shell交互就要读取用户的/etc/.bashrc文件。然后读取系统的/etc/bashrc。最终生效的是系统的bashrc、要改变用户的环境要在最后的/etc/bashrc下设置。
如果非登录就会读取~/.bashrc 然后/etc/bashrc文件。su 用户才是非登录shell而su – 用户是登录shell
其中的/etc/profile和~/.bash_profile只有开启登录shell时候才会执行。个人用户想让自己的变量生效就要到自己用户下的.bashrc下设置。
31. 常用的快捷键:
a) ctrl+d输入已结束
b) ctrl+c键盘中断请求
c) ctrl+s/ctrl+q暂停/恢复
d) ctl+l清屏
e) tab自动补完命令
32. 了解系统的状况
a) uname系统信息
b) hostname显示主机名
c) last列出最近用户登录情况,如来自哪里,登录情况。
d) lastlog列出每个用户的最近登录情况
e) free显示内存使用情况
分析:从图中可以看出,虽然free物理内存显得少了,但是swap中的free多得很,used还是0表示的是物理内存被充分利用,而不是说明系统内存不够用了。
如果当物理内存剩下不多,交换内存也使用了很多,,那么就表示内存不够用了。那么就给系统加一个内存条。
f) top系统监视器:
分析:
1)top是当前时间:后边的up后的是当前系统开机时间,2用户 2users。
2)load average:0.05,0.10,0.09意思是:是五分钟内,十分钟内,十五分钟内的负载状况,当一个系统达到1时候说明系统很繁忙,但是当该值到达5时候就要检查系统了。说明系统很缓慢,说明有问题了。
3)
是进程说明共105个,2个运行,103个睡眠,0个停止,0个僵尸进程。
4)Cpu(s)哪行,中的id指idle是空闲的意思,当其前边值越接近100%说明系统越空闲。说明系统越好,说明系统资源用的很少。如果低说明系统资源用的多了。最好查看一下。
5)Mem:表示内存
6)Swap表示交换区。
默认更新时间时五秒。怎么更改用命令:top –d 3就改成了每三秒更改。
-b是批处理,-n表示多少次结果
top -b –n 2 >/tmp/top.txt意思是把top命令执行两次把结果输入到top.txt文件中。
当按下P时候是按cpu的使用率排序,
按下大写M是以内存使用率排序。
大写N是按照PID大小排序
大写T是按cpu的累积的值排序。
g) vmstat也可以查看内存使用量而且更加详细。
33. 进程:(程序是静态的指令集合不占用系统资源,进程是占用系统资源,随时变化的。是有程序启动的。)进程号PID是唯一的。
a) 系统通过进程来完成工作
b) 每个进程都有一个独立的进程号系统通过调用进程号操控进程,
c) 系统的原始进程是init(因为开机系统进入时候第一个执行的就是init进程)
i. init的pid进程号总是1
d) 一个进程可以产生另一个进程,出了init外,所有的进程都有父进程。
e) 查询进程:
i. ps [option]
1. –A或者-e显示所有进程
2. –a显示与终端无关的进程。
3. –x列出完整的信息
4. –u
5. –l以长模式,就是详细的模式显示
分析:
F是标志位:4表示超级用户。
S是状态
UID是:用户的id号
PID是进城的id号
PPId是进程父进程的id号,
C是cpu的百分比
PRI是进程优先级
ADDR是进程在内存中的那一部分。
SZ是用到内存大小
Wchan是代表当前进程是否在运行 –表示运行 wait是等待
tty:是登陆者终端位置。
6. –f同上显示进程。
7. 常用 ps aux与前边加-是不同的一般不加
分析:
user 是进城的用户,
pid是pid号,
vsz是使用的虚拟内存量kb单位,
rss进程占用的固定内存量kb,tty是在那个终端上运行,?是与终端无关。
stat是当前运行状态,s是进程睡眠,t是停止,r是运行中,z是僵尸进程。<是高优先级,N表示低优先级,
僵尸进程:是父进程不能结束子进程,子进程一直运行,所以要结束他。
time是运行的时间
command是运行的命令
8.
ii. pstree可以用来以树状方式展示父子关系。
iii. top是一个常用的系统监控工具
f) 在终端上输入:gnome-system-monitor就会出现像wind的界面。
34. 控制进程:
a) kill
i. kill [-signal] PID是向进程传送一个特定的讯号。默认是15(终结)
ii. kill –l查看kill可以传入的信号。常用的是:1)sighup,2)sigint(ctrl+c结束进程),9 )sigkill(表示强制终止),15)sigterm(表示正常方式结束进程)
iii. kill -9 PID 强制杀死进程。
iv. killall是杀死进程。可以接进程名称. killall [-signal] 进程名称
b)
35. 进程优先级:负----高 正--------低。越小越高。一般设定的进程的nice的值为0-19。不能设置其他的值。超级用户root可以改成负的值。
a) 进程优先级,用nice值来表示
b) nice以一个不同的nice值来表示运行指令
i. nice –n num command
c) renice 改变一个运行中的进程nice值
i. renice –n pid
ii. 在top命中调整进程nice先top后进出入,然后r回车,然后输入nice值
36. 前台和后台
a) 默认情况下,一个命令执行后在此将独占shell。就是说我们能控制的是前台。
b) 在内存中自行运行的不受我们控制的是后台。
c) 每一个控制台,都允许多个后台进程。
d) 对于前台/后台进程调度都是称为任务控制。
e) 将command &将一个进程直接丢入后台运行。
f) nohup command &将一个进程直接丢入后台运行,而且控制台关闭后进程仍不挂断。
g) ctrl+Z是讲一个正在运行的前台进程暂停,并丢入到后台中。
37. 工作:
a) jobs 是列出系统当前的后台进程
b) fg将后台进程来回前台。默认回去后边是+的如图:
fg后直接把+的6184调入到前台。
想调用其他的则:fg 2就会调用6179.其中的2表示的是【】中的。
c) bg激活后台暂停的进程。
d)
38. /proc目录:注意不要用cat 读取kcore文件。
a) /proc目录是一个虚拟的文件系统包含运行着的核心信息。
b) 用户可以通过 cat /proc/下的文件获取系统信息。目录下的文件
i. cat /proc/cpuinfo
ii. cmdline文件命令信息。
iii. devices文件记录系统设备参数
iv. dma是硬盘的dma设置
v. interrupts是系统的ra rq的设置
vi. kcore是内核景象。不要读取。
vii. loadavg是系统的平均负载值。
viii. meminfo是内存状况。查看到当前系统内存的状况。
ix. modules是当前系统加载驱动的列表。
x. mounts是记录系统加载的数据
xi. swaps是系统虚拟内存信息
xii. pci是记录每台设备上的pci总线的情况。
xiii. uptime是uptime命令的信息
xiv. scsi目录:是scsi设备的信息
xv. ide目录是ide设备的信息
xvi. net目录是网络信息
xvii. 当前系统运行的每一个进程都会有一个目录记录进程的信息。可以读取目录下边的信息查看到进程的信息。
xviii. 目录/proc/sys/下边的目录平时可以修改该目录下的文件可以达到一定的目的。如
c) 可以通过修改目录中的文件及时修改系统的信息。
39. 系统日志:
a) 系统日志记录系统运行中的记录信息。
b) 在服务或者系统发生故障时候,放在/var/log下
40. 常用的系统日志:
a) /var/log/dmesg
i. 核心启动日志。可以通过命令dmesg查看日志,或者cat /var/log/dmesg
b) /var/log/messages
i. 系统报错日志。可以查看到信息用命令。tail –f /var/log/messages可以动态查看到近期正发生的事情,并且是动态的。
c) /var/log/maillog
i. 邮件系统日志。查看sendmail工作状况。
d) /var/log/xferlog
i. ftp服务用的日志
e) /var/log/secure
i. 安全信息
ii. 系统登录与网络连接信息
f) /var/log/wtmp:该文件是二进制文件。防止被修改。可以用last命令查看因为last从该日志文件中得到该信息。
i. 登录记录
41. 检查用户身份
a) 用户可以使用下列指令了解用户身份
i. who:查询当前用户在线的用户
ii. groups 查询用户所属组
iii. id显示当前用户信息
iv. finger查询用户信息。finger 用户名 可以查看用户信息。
42. 添加用户系统步骤:当创建一个用户时候系统必须的步骤。用命令useradd,groupadd
a) 编辑/etc/passwd与/etc/group
b) 创建用户主目录
c) 从/etc/skel拷贝文件与目录
d) 让新用户获得主目录与文件的拥有权限
e) 给新用户一个秘密
43. 更改或者删除用户
a) 更改用户资料通过:usermod指令
i. usermod -c "this is mysql's username" mysql是把mysql的全名改为“”中的
ii. usermod –d /home/mysql mysql意思是把mysql用户的起始目录改为前边的目录。
iii. –e参数可以给用户的密码设定过期时间。usermod -e "2009-01-01" sunming
iv. –G是把用户同时也加入到其他组中,现在有多个组了。usermod -G root sunming
v. –g是改变gid(用户群组的id)。usermod –g root sunming.或者usermod –g 0 sunming 改变用户所属的组。
但是要是用了参数-G后变成了两个组后,要是执行了
usermod –g 0 用户名
那么该用户的组就只有一个了是root(组号0)
然后在执行usermod –g 501(其他是0)的组号 用户名,就会增加一个用户组而不是改变了。
然后在执行usermod –g 504 用户 就会改变了501这个组号,保留0的组号。
如果本身没有执行-G参数那么执行-g就是改变。而不想上边的。
vi. 从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A
或者用命令
gpasswd -d A GROUP
vii. usermod –u 501(一个号) 用户名
viii. usermod –p 密码 用户名 修改用户密码
b) userdel删除用户。参数-r可以帮助系统将用户的目录一并删除。
c) usermod –L 用户 意思是锁定用户。不允许用户使用密码登录。可以用passwd –S 用户名可以查看到用户的状态,如果被锁定了就会显示lock
d) usermod –U 用户 意思是未锁定用户解锁。
e) usermod –u 600 用户名.意思创建的用户uid是600
44. /etc/passwd文件
a) passwd文件中记录的是用户登录信息。
b) 每一行代表一个用户,用:分隔成七项,即用户的基础登录信息。
c) 添加或者删除一个用户,最基本的操作,即在passwd文件中添加或者删除相应个人记录。
45. Home directory
a) login.defs中的create home选项决定了系统在建立用户时候是否同时创建主目录。
b) 在文件login.defs可以看到创建用户时候系统的自动添加的设置。可以查看内容知道。
c) 系统在创建用户主目录时候,会将/etc/skel下的内容复制到新目录下最后系统使该目录与其下的文件归属于新用户。
chown -R user.group
d)
46. /etc/shadow文件
a) linux默认将用户密码存储在/etc/shadow下
b) .password文件默认权限是644,shadow文件默认权限是400
c) shadow文件支持密码过期设定等功能
d) shaow文件每一行表示一个系统用户的秘密记录,用:号分隔
e) 用户可以通过authconfig来设定是否使用shadow文件及md5加密。
f) shadow中内容的说明:栏位
i. 登录用户名
ii. 用户密码(一般经过md5加密)如果密码栏位开头是!或者是*表示该用户被锁定。查看是否解锁可以用 passwd –S 用户名
iii. 从1970年1月1日起到密码上一次被更改时间
iv. 密码再过几天可以被变更(0表示随时间可被变更)
v. 密码再过几天必须被变更(9999表示永远不过期)
vi. 密码过期前几天系统提醒用户(默认为一周)
vii. 密码过期几天后账号会被取消
viii. 从1970年1月1号算起,多少天账号失效。
g) 用authconfig可以更改用户是否要把密码单独放在shadow中,是否用md5加密算法等等。就是关于密码的信息。
47. 组管理:
a) 系统中的组的信息,记录在/etc/group中
b) 系统用户可以直接修改/etc/group文件达到更改组数据的目的,也可以使用下边命令:
i. groupadd 添加
ii. groupdel删除
iii. groupmod更改组信息
c) 用户可以newgrp指令改变当前所属组。
48. 组文件
a) /etc/group中的每一行代表一个组用:隔开不同项:栏位意思。一般不会给群组设定密码。
i. group_name:组名
ii. password:组密码
iii. GID组身份编号
iv. user_list组成员列表。
b) 有效群组:当一个用户属于多个组时候,当该用户创建的文件或者目录时候该文件或者目录是属于有效群组。当用户登录后,groups输出用户组,第一个就是有效用户。或者id 用户名出现的第一个用户组就是有效。
更改有效用户组,newgrkp 组名 该用户的有效用户就改为了有效的。
c) 初始群组:是当用户已登入时候就立刻拥有了该组的所有权限。
d) 应用可以:
i. useradd –u 600 –g tom –G tiankong sunming;意思是:添加一个用户sunming让他的用户uid是600初始群组是tom并且加入到tiankong群组
ii. useradd user1 –s /bin/csh。意思是建立用户user1并让他只能使用csh这种shell。系统默认是bash
e) useradd -M 用户名.意思在创建用户时候不给用户创建起始目录。-m是强制创建目录。-d是制定创建起始目录。
f) 默认创建的都是一般用户,就是默认的uid小于500。要是创建系统用户命令:
i. useradd –r 用户名
g) 创建系统群组。也是加一个-r
i. groupadd –r 组名。
49. 磁盘限额:
a) linux内核支持基于文件的系统磁盘限额
b) 每一个组或者用户,可以单独设置其磁盘限额
c) 磁盘限额包括block的限制于对inode的限制,每一种限制又可以分为软限制与硬限制,
d) 软限制被突破后,经一段时间(grace time),会自动变成硬限制。
50. 设备文件
a) linux沿袭unix风格,将所有的设备认为是文件,设备文件与操作系统的内核相连,为用户提供操作控制硬件的接口,这样用户就像操作普通文件一样操作设备。
b) 设备文件分为两种
i. 块设备文件(b)。一般式以512字节到32k的中举块都是通过缓冲区存放数据。例如:硬盘,光驱等
其中的loop本地回放设备是可以查看本地的网卡,看网卡是否安装好可以
ping 127.0.0.1。ping通就好。
ii. 字符设备文件(c)。
第一个/dev/null。如ls –l >/dev/null。意思是丢弃输出。
/dev/zero创建虚拟内存。
tty0是当前虚拟终端。
iii. 常用的字符连接设备文件
用连接时为了更加容易理解。cdrom更容易懂。
iv.
c) 设备文件一般存放在/dev目录下。
51. 设备文件的使用。
a) 用户可以通过操作设备文件来完成对设备的操作。
i. echo hello > /dev/tty2
在第二个tty终端上显示一个’hello’
ii. cp /dev/fd0 /dev/fd1
将一个软驱中的软盘考入第二个软驱中的软盘
iii. df if=/dev/had f=/root/mbr bs=512 count=1
备份第一个硬盘上的mbr为/root目录下的mbr文件。
iv.
b)
52. dd指令是一个功能强大的copy命令,可以备份一个文件。
a) 支持在拷贝文件的过程转换文件格式
b) 支持指定范围的复制
c) 参数
i. if=文件名:指定源文件
ii. of=文件名:指定目标文件
iii. bs=xxx:指定块的大小
iv. count=n:指定复制块的数量。
d) dd if=/etc/passwd f=/root/passwd.backup
e) dd < /etc/passwd > /root/passwd.backup。同上
f) 硬盘的第一个分区最重要,对于系统来说。 dd < /dev/sda > /root/mbr bs=512 count=1 .把硬盘的第一个扇区备份mbr的作用。
53. mknod指令
a) 系统用户可以用mknod指令来建立所需设备文件
i. 语法: mknod 文件名 文件类型 主号 从号
b) 主号与从号可以在 /usr/src/linux-2.4/Documentation/devices.txt中找到。
54. kudzu。当新加入的一个硬件或者去掉一个硬件会自动检查。
a) kudzu是linux上的自检工具它维护两份文件
i. /etc/sysconfig/hwconf:使用硬件列表
ii. /etc/modules.conf:为硬件指定驱动
b) kudzu以/usr/share/hwdata为数据库寻找硬件
c) hwbrowser是图形界面下的硬件管理器。
55. 硬盘的结构:
a) 对于每个硬盘:
i. 主引导记录/Master Boot Record/MBR
ii. 硬盘分区表/Standard Partition Table/SPT.记录的是硬盘的每个分区从哪个开始从那结束。64字节,一个分区记录占用16字节。所以一个硬盘只能分四个主分区。所以要是有hda4以上的就是逻辑分区了。
iii. 主分区/Primary Partition
iv. 扩展分区/Extended Partition
v. 逻辑分区/Logical Partition
b)
56. 硬盘分区:应该最多划分三个主分区,另外一个要划分为一个扩展分区。
a) 一个硬盘只能有四个主分区
b) 用户可以也只可以将一个主分区变成扩展分区。
c) 在扩展分区上,用户可以以链表方式建立逻辑分区。
d) linux对一个块ide硬盘最多支持63个分区,scsi硬盘支持到15个
e) fdisk工具最多只能辨认出16个分区。
57. 为硬盘分区
a) 硬盘分区工具
i. disk druid:方便的分区工具,只能在安装时候使用。
ii. fdisk:运用广泛的字符界面下硬盘分区工具
iii. 一般可以先创建最多创建三个主分区,然后留一个扩展分区,创建完扩展分区后然后可以创建逻辑分区了。
b) 分区改变后需要重启系统才会生效。或者应用命令partprobe命令立即生效。
如上边的图中,总共磁头是1044,但是最后一个磁盘的结束磁头是556。那么说明硬盘还有空余磁盘可以划分新的分区。
c) 扩充虚拟内存,步骤是现在硬盘上划分出虚拟分区,然后加到当前的虚拟上去。
i. 现在建立一个逻辑分区,然后查看id号是83
ii. 然后再修改id就行了。
iii. fdisk /dev/sda后然后选择t改变id的然后输入刚才建立的sdan中的n号,然后l然后输入82就行了。然后w就建立好了。创建好了然后partprobe然后mkswp /dev/sdan这个分区就行了。swapon /dev/sdan就把分区加载到虚拟上了。如果把虚拟内存释放掉,可以用swapoff /dev/sdan分区。
d) 也可以把文件创建虚拟内存,步骤:
i. dd < /dev/zero > /tmp/swap bs=1M count=100
ii. mkswap /tmp/swap
iii. swapon /tmp/swap加载上了。
e) 创建虚拟内存是有时候为了在运行oracle的时候,当规划不是很好时候可以创建虚拟内存提高运行。是一种解决方案。
58. 文件结构
a) 为了在设备上存储于读取文件,我们需要在分区上创建文件系统
b) 文件系统记录目录与文件称为文件结构。
c) 每个文件系统linux里边被解释成由一个根目录为起点的目录树结构
d) linux将各个文件系统挂载在系统目录树种使用。
59. 文件系统:文件存放的物理空间。linux支持多种文件系统读写,自身最主要使用ext2/ext3文件系统。
60. ext2/ext3文件系统:支持rwx权限及文件属性。采用的是block+inode(块+索引节点)的方式存放文件。
a) block是逻辑块,简称块,硬盘最小存储单位是扇区(单位是512字节),如果读取10M文件,磁头要一个一个扇区读取,要读2w多个字节,为了提高效率产生了块,块是最小的数据存储单位,块一扇区为基础,一般指定块是扇区的2的n此方,让磁盘一次读取一个块,例如为4kb这样就读了2560次,读写效率就提高了。
也就是把读的少,现在规定让他读得多点,读的次数少点。linux中的一个块,只能容纳一个文件,如果规定一个块是4kb如果一个小文件是1kb那么小文件就占用了一个块的空间,就是用4kb但是只占用了1kb剩下的3kb就被浪费了。一般创建文件系统时候要规划好块的大小,如果存放的文件大就规划大点,文件小就规划的小点。
b) innod是索引节点。文件存储时两个部分存储,一个是存放属性,一个是内容(block中)。
inode是记录文件相关属性,和文件内容放在那些块中,拥有一个指针的功能,就是指定文件的内容放在那些块中。
c) 例如块大小为4kb那么要存放一个1M的文件时候,先用一个inode索引节点,然后用250block块存放,并把250块都记录到inode中,并且生成一个唯一的文件索引节点号,ls –il可以查看到索引节点号。
d) 当一个系统打开一个文件时候:先找到inode下找到文件索引节点属性,然后去blocak中找到文件与节点的对应关系,然后到services inode文件的索引节点,sevices inode的指针功能找到services block然后读取文件内容。
e) super block 超级块是,boot后边的第一个块,
61. ReiserFS文件系统
a) 一个优秀的文件系统
b) 可以轻松管理上百G的文件系统
c) 先进的日志机制
d) 高效的磁盘空间利用
e) 独特的搜索方式。
62. 文件属性
a) 在ext2/ext3文件系统中,对每个文件,还提供额外属性支持
b) 用户可以用lsattr来检查文件属性
c) 系统用户可以用chattr来改变文件属性 : +号添加、-号去除
d) 设定一些特殊属性:都需要root用户
i. “I”意思是不允许删除修改该文件,命令 chattr +I 文件名 。确保文件安全.如果是-i是表示去掉属性。
ii. A作用:当文件被修改时候文件的更改时间不会变,
iii. a作用:只能向该文件做内容的追加不会覆盖,
iv. d作用:当备份时候不会备份该文件
v. i作用是,用户不能改变,不能删除,重命名文件。
vi. j作用:系统会将文件本身的信息记录到ext3日志中
vii. S当文件被更改时候更改信息会记录日志中。
e)
63. ext3文件系统。
a) 就比ext2多了个日志功能。
b) 支持三种日志模式
i. 规则(默认,仅记录元数据)
ii. 日志化(将数据像元数据一样记录入日志)
iii. 写回(只在fsck时发生)
c)
64. 创建文件系统:
a) 要用一个分区用于存储文件,要在分区上建立文件系统
b) 常用的创建文件系统的工具:
i. mkfs可意用于创建各种文件系统,由-t参数指定。
ii. mke2fs:创建ext2/3文件系统,支持block大小等功能。可以更改块的大小。
mke2fs –b 4096 /dev/sda5是把块的大小调到4096
iii. mke2fs –I 整数 /dev/sda1。通过调整块和节点比例调整改变节点的个数。
iv. mke2fs –N 节点个数 /dev/sda
v. mke2fs –j ext3 /dev/sda1把原来ext2的文件格式转换为ext3。会把原先分区中的内容被格式化。
c)
65. 查看分区的详细信息:
a) dumpe2fs -h /dev/sdb1
66. 使用文件系统
a) 为了使用文件系统往其中存读文件用户需要先挂载该文件系统
b) 挂载文件系统的指令mount
c) mount –t 文件系统类型 【其他参数】 设备 挂载点
d)
67. mount参数:
a) –t指定挂载文件系统的类型,一般不用。
b) –o 参数,补充追加的参数。
c)
68. /etc/fstab文件
a) 配置文件系统挂载信息
b) mount文件系统时若给出的参数不全系统会/etc/fstab中读取参数补完
c) 系统启动会参考/etc/fstab中的配置项自动加载文件系统。
i. 该文件栏位解释:1:挂载分区,2:挂载目录 3:文件类型或者分区类型, 4:default是? 5:中的1表示每天备份一次,6:中的1表示系统启动先加载的第一个分区。
d) 也被fsck,dump,quotaon,swapon等程序使用。
e) 如果让系统每次启动时候都自动挂载上去,就可以修改/etc/fstab文件。
i. 在文件最后一行添加上,
ii. /dev/sdb1 /data ext3 defaults 0 2
f) 查看当前挂载中的文件系统。通过:/etc/mtab文件。或者用mount指令。或者cat /proc/mounts
69. 卷标:
a) 由于设备文件名可能在硬盘结构发生变化时更动,因此linux对ext2文件系统使用卷标来挂载与卸载。
b) 卷标记录在ext2/3文件系统的超级块中
c) 用户可以用e2label指令来查询与更改ext2文件系统的卷标。
d) 用卷标挂载:mount –L 卷标名 文件目录。
70. 卸载文件系统
a) 当一个文件系统使用完毕,用户应当卸载该文件系统
b) umount指令用于卸载,
c) umount 挂载点。
71. 文件系统的维护。对于检查的分区必须处于非挂载状态。
a) fsck/filesystem check:用于检查与修复文件系统
b) e2fsck检查与修复ext2文件系统
c) 系统在启动时候自动会被检查
d) tune2fs更改ext2文件系统属性。可以转化为ext3文件系统,并且数据不会丢失。
i. tune2fs –j /dev/sdb1转化后可以查看文件都存在。
e) resize2fs:更改ext2文件系统的大小
f) parted更改多种文件系统大小。
72. 自动挂载:
a) 系统通过autofs服务自动挂载文件系统
i. 需要后台automount进程
ii. autofs服务的开闭由/etc/init.d/autofs脚本控制
b) 主要应用于软盘与光驱等场合
c) 如果该设备一段时间没有被使用,autofs会自动卸载。
73. 查看自动挂载的设备可以用文件:cat /etc/auto.misc
添加挂载后要重启服务:service autofs restart
74. 系统引导过程:按了电源后,到bios中进行设备自检,根据设置进行启动,如果设置从硬盘启动,到硬盘中招mbr(master boot record主引导)中的bootloader启动起来,主流的grub(bootloader一种,配置文件在/boot/grub/grub.conf)引导系统的内核。
75. linux的计划任务:
a) linux系统支持一些能够自动执行任务的服务我们称其为计划任务
i. at 命令:指定一个时间执行一个任务
ii. cron机制:根据一个时间表自动执行任务
iii. anacron机制:在一个指定时间间隔错过后自动执行任务。
76. at命令:创建任务是不管当前cpu的状况,直接执行,
a) at命令:安排一个任务在未来执行
b) at命令需要系统后台有一个atd进程
c) 指令:
i. at:安排延时任务
ii. atq:查询当前的等待任务
iii. atrm:删除等待任务
iv. batch,以一个低优先级延时执行任务。当考虑到系统负载时候最好用batch创建命令,他是当系统负载很高时候先不执行。
d) 要是atd服务没有开启可以启动运行/etc/init.d/atd restart.
e) 可以加入自动启动服务:chkconfig –level 345 atd on加入自动启动进程。
f) 例如:
表示的是在当天下午17:11执行命令:把sunming字符串输入到test.txt中。
其中也可以跟上日期:2009-07-01。其中推出用的是ctrl+d
任务都在:/var/spool/at下边
g) atq查询当前主机上有多少个正等待执行的任务。直接atq
h) atrm删除系统中正在等待执行的任务。atrm 工作号.
i) batch.
77. at命令使用的控制文件:
a) at命令使用的控制文件
i. /etc/at.allow
ii. /etc/at.deny
控制at命令,当/etc/ 下既没有at.deny和at.allow文件那么只有root才能执行。
如果都有,用户在allow中就可以执行,如果用户在deny中就是不允许。
如果系统找到有allow文件但是用户并没有列在该文件中,就拒绝,
如果系统没找到allow文件才找deny文件。
b) 基于用户的使用控制。
78.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22729292/viewspace-667374/ ,如需转载,请注明出处,否则将追究法律责任。