ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux笔记

linux笔记

Linux操作系统 作者:ocm_zpt 时间:2014-01-13 17:05:21 0 删除 编辑

内核(Kernel):系统启动时载入一些基本内存,管理一些基本的输入输出,管理进程的初始化,进程的调度
Shell:系统命令的解释器。(用户进程,shell,kernel,硬件)
终端模拟器(Terminal Emulator)
X Window系统:图形界面的管理器
窗口管理器(window manager)
桌面环境(Desktop environment)

本地登录可分为两种登入方式:字符型和图形界面

[root@stationxx root]#
[当前用户名@主机名 当前目录]
home目录是用户登入系统后即所在的默认目录(相当于window下的我的文档)

#useradd test--创建test用户
#passwd 123--创建密码,也就是激活test用户

帮助和在线帮助
指令--help
例如:mknod --help
man指令
例如: man mknod
info指令
例如: info mknod

/usr/share/man下有man page
man page有一些章节1到9
#man 1 passwd--查看man page第一章节中的passwd的信息
#man passwd--默认看1章节的内容

#ls -l --l选项表示列出详细信息
#ls -a --a选项表示列出所有的,包括隐藏的档案
#ls -al --组合着用

#cp /ect/php.ini . --cp文件到当前目录(.代表当前目录)
#cp -r /etc/x11/ . --  -r选项表示cp目录到当前目录

#mv /etc/host.conf . --移动/etc/host.conf到当前目录
#mv php.ini /etc/php.txt --移动php.ini并重命名为php.txt

#rm -f /etc/php.txt --  -f选项表示强制删除文件

touch  创建空文件或更新文件时间
cd 改变当前路径
pwd 打印当前路径
 
绝对路径以根目录开始,相对路径是以当前目录
#cd .. --表示返回上级目录
#cd或者#cd ~ --表示返回家目录

#mkdir test --创建test目录
#rmdir test --删除test目录
#rm -rf -- -rf级联删除目录和其文件

cat --查看文件内容
more -- 逐屏查看文件内容
less --逐行查看文件内容
date --显示当前时间
cal --显示日历
#cat /etc/services --查看文件内容
#more /etc/services --逐屏查看文件内容

df --显示磁盘用量(-h选项方便看)
du --计算目录下文件占用磁盘的大小(-h选项方便看)
#du -h /etc/services

head --显示文件开头部分内容
tail --显示文件结尾部分内容
#head 20 /etc/services --看前20行内容
#tail -f /var/log/message --监视日志文件

tab键补全命令或者文件,按两下或者一下

设备文件
设备在linux中以特殊文件的形式存在
块(block)设备文件(硬盘)
字符(character)设备文件(键盘,鼠标)
设备文件所在位置(/dev)
查看设备类型

虚拟控制台及用户身份切换
在系统中有12个虚拟控制台,前6个可供坐本地登录
用户可以用alt+fn(n=1~12)来切换
su切换用户身份(加-可以完全切换,即把环境变量也切换掉)
/etc/inittbab

离开系统
重新启动
reboot
shutdown -r now --立刻重启
init 6(6是运行级别)
关机
halt
shutdown -h now
poweroff
init 0

用ls -l以长模式查看文件的详细信息,包括当前目录的硬盘使用空间,文件类型,文件权限,硬连接数,文件拥有者,文件所属组,文件大小,更动时间,文件名
用file查看文件类型
由于linux中的文件名中没有扩展名,所以可能需要file来查看文件类型

-:一般文件(文本文件,二进制文件等)
d:目录文件
b:块设备文件(软盘,硬盘等)
c:字符设备文件(键盘鼠标打印设备等)
l:连接文件(软连接,硬链接)
p:人工管道(用于不同介质的信息传递)

文件权限
文件的拥有者(u)user
文件所属组的成员(g)group
其他用户(o)other

读(r)读文件的内容
写(w)改变文件的内容
执行(x)执行文件

只有文件的拥有者和root才可以改变文件的权限
chmod [-R] 权限 文件名
#chmod u+x install.log --改变权限
#chmod u=rwx install.log
#chmod u-x install.log
#chmod 644 install.log --数字方式改变文件权限

建立链接
ln
硬链接(不可以跨文件系统,不能给目录创建硬链接,相当于复制加同步更新): ln 源文件 新建链接名
软链接: ln -s 源文件 新建链接名
#ln /home/test.txt test.txt --建立硬链接
#echo "hello world" > /home/test.txt--写入内容
#ln -s /home/test.txt test.txt --建立软链接

ext2/3中文件的构成
在ext2和ext3文件系统中,文件以inod+block的方式存在
一旦用rm指令删除文件中的inode记录,文件无法被找回
stat指令可以用来检测文件的block与inode状况

root用户可以用chown改变文件的拥有者
文件拥有者和root用户可以用chgrp改变文件所属的组
#chown xiaowang install.log--改变拥有者为xiaowang
#chgrp xiaowang install.log--改变所属组为xiaowang
#chgrp root:root install.log--改变所属组和所有者

文件名
文件名最大为255个字符
开头为.的文件为隐藏文件
目录
目录在文件类型上用d标识
用/分割目录层
linux操作系统都有且仅有一个起始目录,用/表示,称为根目录
对每一个shell和操作环境,都有一个当前工作目录
.文件和..文件
在每个目录下都有这两个文件
.文件是对当前目录的一个硬链接(通俗的理解成当前目录)
..文件是对上级目录的一个硬链接

目录权限
目录也是一种文件,它的rwx权限与普通文件不同:
读:用户可以读取目录内的文件
写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件。
执行:用户可以进入目录,调用目录内的资料

强制位与冒险位
除了rwx权限以外,ext2文件系统还支持强制位(setuid和setgid)与冒险位(sticky)的特别权限
针对u,g,o,分别有set uid,set gid,和sticky
强制位与冒险位添加在执行权限的位置上。如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。
set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。
默认情况下,用户建立的文件属于用户当前所在的组。
目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。
#chmod g+s test --设置gid
默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立和删除文件
一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者,目录的拥有者与系统管理员可以删除文件。
#ls -ld /tmp --查看目录本身的详细信息
#ls -l /tmp --查看目录下的详细信息

强制位对文件的作用
在可执行文件上,用户可以添加set uid和set gid。
默认情况下,用户执行一个指令,会以该用户的身份来运行进程
指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或者所属组的身份运行进程。

用户可以用chmod指令来为文件设置强制位和冒险位
set uid: chmod u+s 文件名
set gid: chmod g+s 文件名
sticky:chmod o+t 文件名
也可以用数字方式设定,在rwx权限前加数字
4(set uid)
2(set gid)
1(sticky)
例如:chmod 4777 文件名
      chmod 2777 文件名
      chomd 7777 文件名
      chmod 0777 文件名--去掉冒险位和强制位
uid 只能对文件设定
sticky 只能对目录设定
gid对文件和目录都可以设定
-------------------------------------------------------------------------------------------------------

umask每个用户创建文件时文件都有默认权限,由umask确定,一般用户的umask值为002,系统用户的默认权限umask值为022
#umask --默认的文件权限
#umask -S
#umask 003 --改变umask值

根目录下的目录
/bin:存储常用用户指令
/boot:存储核心,模块映象等启动用文件
/dev:存储设备文件
/etc:存储系统,服务的配置目录与文件
/home:存放个人主目录
/lib:存放库文件,诸如核心模块,驱动
/lost+found:存储fsck用的孤儿文件
/mnt:系统加载文件系统时用的常用挂载点
/opt:第三方工具使用的安装目录
/proc:虚拟文件系统,包含系统讯息等资料
/root:root用户的主目录
/sbin:存储系统管理用的指令
/tmp:临时文件的暂存点
/usr:存放与用户直接相关的文件与目录
/var:存储在系统运行中可能会更改的数据

过滤器
linux系统应用工具主要有:交互工具,过滤器,编辑器
输入,输出,重定向
根据过滤器的数据来源和去向可以分为:
  标准输入stdin(0):默认是键盘
  标准输出stdout(1):默认是终端屏幕
  标准错误输出stderr(2):默认是终端屏幕
#ls -l /dev/std* --会列出输入输出的软链接
重定向:标准输入,输出和错误输出都可以用特定符号改变数据来源或去向
#tr 'A-Z' 'a-z' < .bash_profile --.bash_profile相当于一个输入源来代替键盘输入,结果是此文件中的大写字符都变为小写
#cat > cat.file < > this is test
>!
写this is test到cat.file中遇到!结束
#ls -l > listfile --将ls -l输出信息写入到listfile中,listfile文件原有内容会被覆盖掉
#ls -l >> listfile --往listfile中追加ls -l内容
#ls-lll 2> test --将报错写入test
#ls-lllllll 2>> test --将报错信息追加到test

#find /etc -name passwd 2> stderrout > stdout--将错误的信息写入stderrout,正确信息写入到stdout
#find /etc -name passwd &> allout---&选项表示将所有信息写入到allout
#find /etc -name passwd > allout 2>&1 --作用同上(推荐使用)

管道(|)
#ls -al /etc | more --管道后的more可以分屏
#ls -al /etc | more | grep fstab
#ls -l | grep pass

#ls -l | more --分屏显示
#echo "hello" > filea --往filea中写入hello
#cat < filea > fileb--拷贝filea到fileb
#cat filea fileb > file --将数个小文件合并成一个文件
#cat file.* > file1

which 显示一个可执行文件的完整路径,按照alias -> $PATH的顺序查找
whereis搜索一个可执行工具及其相关配置,帮助
#which ls --查找ls命令完整路径(常用)
#whereis ls --
#echo $PATH--查看环境变量

locate和slocate,所有文件名和所在路径包含关键字段的文件与目录都会显示,slocate先将当前目录结构做成一个数据库,然后再在此数据库中搜索匹配记录
#slocate passwd
#vi /etc/updatedb.conf
#updatedb

find
find [路径] [参数] [表达式]
#find /root -user root --查看用户是root的文件
#find /root -group root
#find /etc -name services
#find /etc -size +1000k --查看大于一mb的文件
#find /root -type f --  一般文件
#find /dev -type b -- 块文件
#find /dev -type l --链接文件
#find /dev -type c --字符文件
#find /root -type d --找目录文件
nouser nogroup 参数
#find /etc -nouser--查看没有拥有者的文件
#find /etc -nogroup
#find /home -perm 0644--按照文件权限查看文件
#find /root/test -perm -6000 --里面的-号表示至少有6000
会把权限为的数字转换为二进制,然后按照缺一不可的方式找
6000 对应的二进制110 000 000 000
6600 对应的二进制110 110 000 000
2000 对应的二进制010 000 000 000
4000 对应的二进制100 000 000 000
#find /root/test -perm +6000 --+号表示有一的地方有一就可

#find /root/test -perm 6000 -exec chown jack.jack {} \;----改变找的6000文件为jack用户和jack用户组

常用文件操作指令
wc 统计文件的行,词,字数对应的参数为(-l,-w,-c)
grep 显示文件中匹配关键字的行
sort 按照顺序重排文本并送显示
#wc abc --统计abc文件
#grep -n "a" abc --查看abc文件中含有a的行(-n显示行号)
#grep -v "a" abc --参数-v反向选择
#sort -t: -k3 /etc/passwd

diff 报告文本差异内容
comp 报告文本差异位置
uniq 去除文件中重复的行
cut 显示文件中的某一列
paste 将文本按照列拼接
#diff abc ABC --比较abc和ABC文件的不同
#uniq abc --去除重复行,不改变源文件
#sort abc | uniq
#cut -f3 abc
#cut -f2 -d, abc
#cut -c4-8 abc --按照字符位置
#paste abc ABC > merge--链接文件
#cat abc ABC > merge--链接文件,链接方式与上面的paste不同

压缩
gzip,gunzip是linux标准压缩工具,对文本文件可以达到75%的压缩率
compress,uncompress旧的Unix压缩工具
bzip2,bunzip2更新的linux压缩工具,比gzip有着更好的压缩率
#gzip services--压缩services
#gunzip services.gz--解压缩services.gz
#gzip -d services.gz--同上
#zcat services.gz --查看services.gz
#bzip2 services --压缩services
#bunzip2 services.gz2 --解压缩services.gz2
#bzip2 -d services.gz2 --同上
#bzcat services.gz2--查看services.gz2

tar用于在磁带机,软盘,zip设备上做备份。也可以备份在一个硬盘文件上
主要参数
c:将文件备份出来
v:将过程输出
x:从一个文件中解出备份
#tar cvf test.tar test --对test打包为test.tar
#tar cvf 1.tar install.log test--把install.log和test打包为1.tar
#tar xvf test.tar--解压test.tar包
#tar tf 1.tar --查看1.tar包内的内容
#tar cvf 2.tar install.log -C /home--C选项表示对install.log打包为2.tar到/home路径下
#tar cvf test1.tar test--打包test为test1.tar
#tar zcvf test1.tar.gz test--打包压缩test为test1.tar.gz
#tar zxvf test1.tar.gz --解压test1.tar.gz
#tar jcvf test3.tar.bz2 test--打包压缩test
#tar jxvf test3.tar.bz2--解压test3.tar.bz2

-----------------------------------------------------------------------------------------------------------

dump/restore
备份与还原ext2/3文件系统,不可以在其他文件系统上使用
可以选择进行完全备份或增量备份
#dump -0 -f /tmp/dump1 /test--备份/test
#dump -0u -f /tmp/bootdump /boot --备份/boot(磁盘的初始位置加u选项)
#cat /etc/dumpdates --读取备份记录
#restore -tf /tmp/dump1 --查看备份文件内容
#restore -rf /tmp/dump1 --还原备份文件(被还原的位置是当前目录)

Shell简介
命令行解释器,是用户与系统沟通时的媒介
在Unix系统中有各种Shell,linux采用bash为其默认shell
系统可以使用的shell记录在/etc/shells中
bash:Bourne Again Shell的缩写,GNU计划的一个组件

#a=boobooke
#echo $a --打印变量a的值
#echo ${a} --打印变量a的值(推荐使用)
#a=boobooke
#a=${a}123
#echo $a --打印的值为boobooke123
#unset a --删除变量a的值
set可以查看本地变量和环境变量
env可以查看环境变量
常见的预定义环境变量(环境变量一般大写):
HOME:当前用户和的主目录(#cd $HOME --进入家目录)
PATH:当前用户的可执行文件搜索路径
LANG:程序应该使用的默认语言(#LANG=en)
PS1:行提示符[root@test ~]#
#locale -a --列出支持的语言
#echo $PS1  --列出PS1变量的值([\u@\h \w]\$)
#PS1='[\u@ \H \w \A \#]\$'--改变PS1的值
export指令把本地变量变为环境变量

history:bash中操作指令历史,内存中指令记录的个数由环境变量HISTSIZE决定.
history表存储在内存中,在用户logout时会记录用户主目录下的.bash_history文件中,下次login时载入。.bash_history中的指令数根据环境变量中的HISTFILESIZE而定。
#history -w --强制把指令写入文件

调用过往指令:
!!:重复执行上一条指令
!a:重复执行上一条以a为首的指令
!number:重复执行上一条在history表中记录号码为number的指令
!-number:重复执行前第number条指令
可以用来在history表中查询某条过往指令

#alias --别名
#unalias a --把a这个别名去掉

双引号和单引号都是把一串字符作为一个字符串来对待,区别就是双引号中的特殊字符会转义,而单引号中的特殊字符原样输出不转义。

#ls -al 'pwd'--先执行pwd后执行ls

数学运算-----$[]
#echo $[1+4] --输出结果是5
逸脱符-------\
用于取消命令行中字符的特殊含义
用于表示一行未结束
#mkdir a b
#mkdir a\ b --与上不同
命令行结束符-------;
用于在一行内分割两个独立命令,表示一行已结束,作用相当于回车键。
pwd ; ls -l
子shell激活--------()

shell中的&&(逻辑与)和||(逻辑或)
&&:当前一条指令执行成功时再执行后一条指令
||:当前一条指令执行失败时再执行后一个指令
#ls /root/test && echo "exist" || echo "no exist"--成功时输出exist,失败时输出no exist

bash 在用户登录时从四个文件中读取环境设定
全局设置文件:
    /etc/profile
    /etc/bashrc
用户设置文件:
    ~/.bashrc
    ~/.bash_profile

用户登录的时候会顺序读/etc/profile>~/.bash_profile>~/.bashrc>/etc/bashrc文件
-----------------------------------------------------------------------------------------------------

系统监控
#uname -a --显示系统信息
#hostname--显示主机名
#last--列出最近的用户登录
#lastlog--列出每个用户的最近登录情况
#free --内存使用状况
#vmstat --内存使用状况
top:系统监视器
#top -d 3--每三秒更新一下信息
#top -b -n 2 > top.txt--执行两次,把信息输入到top.txt
输入命令后可以按下不同的字母进行排序

进程
系统通过进程来完成工作,每个进程都有一个独立的进程号,系统通

过调用进程号来调度操控进程
系统的原始进程是init,init的PID总是1
一个进程可以产生另一个进程,除了init以外,所有的进程都有父进

程。
#ps -l --列出进程信息
pstree可以用来以树状方式查看进程
top是一个常用的系统监视工具
#ps -aux --查看所有的有效进程的详细信息
#ps -ef --查看进程
#ls -l --查看当前属于自己
#pstree -a
#LANG=en--改变语言环境
#ps -aup
#gnome-system-monitor

#top &--在后台执行
#kill -l
#kill -9 数字 --强制杀掉进程

进程的优先级,用nice值来表示
nice:以一个不同的nice值来运行指令
nice -n num command
renice:改变一个运行进程的nice值
renice -n pid

#ps -ef | grep top
#killall -9 top --杀掉一批进程
#nice -n -5 top & --改变top指令nice值
#renice 10 4709 --改变一个运行中的进程的nice值

默认情况下,一个命令执行后,此指令将独占shell,并且拒绝其他输

入。我们称之为前台进程。反之为后台进程
对每一个控制台,都允许多个后台进程,对前台/后台进程的控制和调

度,被称为任务控制。
command &:将一个进程直接丢入后台运行
nohup command &:将一个进程直接丢入后台运行,而且在该控制台退

出后,进程仍然不挂断。
ctrl+z:将一个正在运行的前台进程暂停,并丢入后台。
jobs:列出系统当前的后台进程
#jobs -l --列出系统当前的后台进程
fg:将后台进程拉回前台
fg+作业号
bg:激活后台暂停的进程
bg+作业号

/proc目录是一个虚拟的文件系统,包含了来自正在运行着的核心信息

,用户可以通过cat /proc/下的文件,来获得系统信息,这些信息包

括系统硬件,网络设置,内存使用以及其他的一些东西。/proc/sys目

录下的文件,允许系统管理员更动,这些变动会直接影响当前核心。
#ls -l /proc
#cat /proc/cpuinfo--查看cpu信息
kcore这个文件不要用cat读取,它存储运行的内核镜像,读取后当前

环境不能用了就

#ls /proc/sys
#ping 127.0.0.1
#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
#ping 127.0.0.1 --这次只ping一次

系统日志记录着系统运行中的记录信息,在服务或系统发生故障的时

候,通过查询系统日志,可以帮助我们诊断,系统日志可以预警安全

问题,系统日志一般都存放在/var/log目录下
/var/log/dmesg--核心启动日志
#cat /var/log/dmesg
#dmesg
/var/log/messages--系统报错日志
#tail -f /var/log/messages--动态查看日志
/var/log/maillog--邮件系统日志
/var/log/xferlog--FTP服务用日志
/var/log/secure--安全信息,系统登录与网络连接的信息
/var/log/wtmp--登录记录

用户管理
who:查看当前在线的用户
groups:查看用户所属的组
id:显示当前用户信息
#id root
#id
finger:查看用户信息
#finger root --查看root用户信息

添加用户
useradd
passwd
#useradd test  --创建test用户
#passwd test --设置密码
系统添加用户的标准步骤:
  编辑/etc/passwd与/etc/group
  创建用户主目录
  从/etc/skel拷贝文件与目录
  让新用户获得其主目录与文件的用户权限
  给新用户一个密码

更改用户,删除用户
  图形界面:redhat-config-users或kusers工具
  字符界面:使用usermod指令
系统管理员可以用userdel指令删除已存在的用户,r参数可以帮助系

统将一个用户的目录等都删掉。
#usermod -c "this is test's username" test--给test用户添加描

述
#usermod -d /home/test test --改变test用户的家目录为test
#usermod -e "2009-01-01" test--设定test用户密码的过期时间
#usermod -G root test--将test用户加入到root组里面
#usermod -g root test--将test用户的gid改变为root组
#usermod -s /bin/csh test--改变test用户的shell为csh
#usermod -u 504 test --改变test用户的uid为504
#usermod -p 123456 test--改变test用户密码
#passwd -S test --查看用户是否锁定状态
#usermod -L test --锁定test用户,test不能登录了就
#usermod -U test --解锁test用户

#useradd jack
#userdel jack
#userdel -r jack--级联删掉相关目录

/etc/passwd文件
passwd文件中记录的是用户的登录信息,每一行代表一个用户,用:

分割成七项,既用户的基础登录信息
#cat /etc/passwd | wc -l 计算passwd中的行数,也就是用户个数
/etc/passwd文件记录如下:
login name:passwd:uid:gid:full name:home directory:shell
早期的系统密码都是放在passwd中的,后来为了安全放到/etc/shadow

中。
目前,red hat linux默认将用户密码存储在/etc/shadow文件中,

passwd文件默认权限为644,shadow文件默认权限为400(最好不要随

便更改这两个文件的权限)。shadow文件支持密码过期设定等功能,

shadow文件中每一行表示一个系统用户的密码记录,用:号分隔,用

户可以通过authconfig来设定是否使用shadow文件及md5加密。
shadow文件每一行详细:
  登录用名
  用户密码(一般经md5加密,不过现在md5好像被破解了)
  从1970年1月1号起到密码上一次被更改的时间
  密码再过几天可以被变更(0表示随时可被变更)
  密码再过几天必须被变更(99999表示永不过期)
  密码过期前几天系统提醒用户(默认为一周)
  密码过期几天后账号会被取消
  从1970年1月1号算起,多少天后账号失效。
  关于1970年这个问题:因为32位能表示的最大值为2147483647,用

它除与一年的秒数31536000=68.1,也就是说32位能表示的最长时间是

68年,而实际上到2038年便会达到最大时间。所以最早出现的unix操

作系统考虑到计算机产生的年代和应用的时限综合取了1970作为unix

time的纪元时间(开始时间)。
#LANG=en
#authconfig--打开一个文本文件
uid为0,则为系统管理员账号。
uid的范围:1-的uid给系统默认账号用,500-(补充..)

home directory
login.defs中的create home(值为yes)选项决定系统在建立用户的

时候是否同时创建其主目录
系统在建立用户主目录时,会将/etc/skel下的内容复制到新目录下。

最后,系统会使用该目录与旗下的文件归属于新用户
chown -R user.group 目录名
#ls -a /etc/skel --查看skel目录下内容

组管理:
系统中的组的信息,记录在/etc/group中,系统用户可以直接修

改/etc/group文件达到更改组数据的目的,也可以使用命令:
groupadd:添加一个组
groupdel:删除一个已经存在的组
groupmod:更改组的信息
用户可以用newgrp指令改变当前所在组
#groupadd boobooke --创建boobooke组
#groupdel boobooke --删除boobooke组
/etc/group中每一行代表一个组,用:分割不同项
group_name:password:giduser_list
组名:组密码(一般不用):组身份编号:组成员列表
/etc/gshadow文件放群组密码。
#groupmod -n jack tom --改变组tom名称为jack
#groupadd boobooke--创建组boobooke
#gpasswd boobooke--设定密码
#gpasswd -a jack boobooke --把jack用户加入到组boobooke中
#useradd -u 600 -g tom -G boobooke test
  创建test用户,指定uid为600,初始群组为tom,其他的组为

boobooke。
#useradd teest1 -s /bin/csh--创建test1用户使用shell为csh
#useradd -M test2 --创建一个不带家目录的用户test2
#useradd -m test3 --创建一个带家目录的用户test3
#useradd test4 -d /test4--指定创建的test4用户家目录为/test4
#useradd -r test5 --创建系统用户test5,uid小于500

磁盘限额
linux内核支持基于文件系统的磁盘限额,每一个组或用户,可以单独

设置其磁盘限额,磁盘限额包括对block的限制与对innod的限制,每

一种限制又可以分为软限制与硬限制,软限制被突破后,经过一段时

间(grace time),会自动变成硬限制。

设备文件
linux沿袭unix的风格,将所有设备认成一个文件
设备文件分为两种(根据是否需要缓冲区):
块设备文件(b)
和字符设备文件(c)
设备文件一般存放在/dev目录下。
块设备文件通过512个字节32个字节的中巨快的缓冲区
字符设备文件通过1个字节传输数据,不需要缓冲区

常用的块设备文件:
1./dev/hd[a-t]:IDE设备(hda(hda1,hda2,hda3.),hdb,hdc,hdd)
2./dev/sd[a-z]:SCSI设备(sda,sdb,sdc,,)
3./dev/fd[0-7]:标准软盘
4./dev/md[0-31]:软raid设备
5./loop[0-15]:本地回访设备
6.ram[0-19]:内存

常用的字符设备文件
1./dev/null:无限数据接收设备
2./dev/zero:无限零资源
3./dev/tty[0-31]:虚拟终端
4./dev/ttyS[0-9]:串口
5./dev/lp[0-3]:并口
6./dev/console:控制台
7./dev/fb[0-31]:framebuffer
#ls -l > /dev/null--什么都没有(黑洞)
#ls -l > /dev/zero
#echo 123 > /dev/tty2--把123输出给tty2这个虚拟终端(tty0代表当前使用的虚拟终端,总共有七个)

常用的符号连接设备文件
1./dev/cdrom -> /dev/hd[a-t],sd[a-z]
2./dev/modem -> /dev/ttyS[0-9]
3./dev/pilot -> /dev/ttyS[0-9]

dd:
dd指令时一个功能强大的copy命令,支持在拷贝文件的过程中转换文件格式,支持指定范围的复制,常用的参数:
if=文件名:指定源文件
of=文件名:指定目标文件
bs=xxx:指定块的大小
count=n:指定复制块的数量
#dd if=/dev/hda of=/root/mbr bs=512 count=1
  备份第一个硬盘上的mbr为/root目录下的mbr文件
#dd if=/etc/passwd of=/root/passwd.backup bs=512 count=3

mknod:系统用户可以用mknod指令来建立所需的设备文件,语法是:
mknod 文件名 文件类型 主号 从号
主号和从号可以在
/usr/src/linux-2.4/Documentation/devices.txt中找到

#more /usr/share/doc/makedev-3.15.2/devices.txt
#mknod /dev/hda5 b 3 5

kudzu:Red Hat Linux上的硬件自检工具,它维护两份文件:
 /etc/sysconfig/hwconf:使用硬件列表
 /etc/modules.conf:为硬件指定驱动
kudzu以/usr/share/hwdata为数据库寻找硬件,hwbrowser是图形界面下的硬件管理器。
#chkconfig kudzu off--把这个kudzu工具关掉

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29429974/viewspace-1070102/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-01-07

  • 博文量
    1
  • 访问量
    6896