博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux笔记5(设备文件、文件系统、计划任务)
阅读量:7237 次
发布时间:2019-06-29

本文共 8767 字,大约阅读时间需要 29 分钟。

设备文件

linux沿袭Unix的风格,将所有设备认成一个文件。设备文件分两种:块设备文件(b),字符设备文件(c); 设备文件一般存放在 /dev 目录下。

常用的块设备文件

  1. /dev/hd[a-t]:IDE
    设备
  2. /dev/sd[a-z]:SCSI
    设备
  3. /dev/fd[0-7]:
    标准软驱
  4. /dev/md[0-31]:
    raid
    设备
  5. loop[0-15]:
    本地回访设备
  6. ram[0-19]:
    内存

 

/dev/null:无限数据接收设备

/dev/zero:无限零资源

/dev/tty[0-31]:虚拟终端

/dev/ttyS[0-9]:串口

/dev/lp[0-3]:并口

/dev/console:控制台

/dev/fb[0-31]:framebuffer

例:

[root@redhat root]# cd /dev

[root@redhat dev]# ls -l > /dev/null     //将输出的设备送到null设备文件,功能:所有的输出被null丢弃掉。

[root@redhat dev]# ls -l > /dev/zero        //将当前的目录信息输出到zero设备

[root@redhat dev]# echo 123 > /dev/tty2    //123输出到tty2虚拟终端

 

常用的符号连接设备文件

/dev/cdrom à /dev/hd[a-t],sd[a-z]

/dev/modem à /dev/ttyS[0-9]

/dev/pilot à /dev/ttyS[0-9]

 

设备文件的使用

cp /dev/fd0 /dev/fd1

将第一个软驱中的软盘拷入第二个软驱中的软盘

dd if=/dev/hda of=/root/mbr bs=512 count=1

备份第一个硬盘上的mbr/root目录下mbr文件

 

dd指令是一个功能强大的copt命令,支持在拷贝文件的过程中转换文件格式,支持指定范围的复制,常用参数:

if=文件名:指定源文件

of=文件名:指定目标文件

bs=xxx:指定块的大小

count=n:指定复制块的数量

 

[root@redhat dev]# dd if=/etc/passwd of=/root/passwd.bak ///etc/passwd备份到/root/passwd.bak

3+1 records in

3+1 records out

[root@redhat dev]# dd < /root/install.log > /root/install.log.bp //备份install.log文件

[root@redhat root]# rm -f install.log    //删除

[root@redhat root]# dd < install.log.bp > /root/install.log    //还原

[root@redhat root]# dd < /dev/sda1 > /opt    //备份sda1这个分区

[root@redhat root]# dd < /dev/sda > /root/mbr bs=512 count=1    //备份第一个硬盘的第一个扇区

1+0 records in

1+0 records out

 

mknod建立设备文件

语法:mknod 文件名文件类型主号从号

主号与从号可以在 /usr/src/linux-2.4/Documentation/devices.txt中找到。

[root@redhat root]# mknod /dev/hda55 b 3 5        //创建一个hda55设备

 

分区

[root@redhat root]# fdisk -l /dev/sda    //列出硬盘sda分区的详细信息

[root@redhat root]# fdisk /dev/sda        //操作硬盘sda分区

The number of cylinders for this disk is set to 1044.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

 

Command (m for help): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

Command (m for help):

[root@redhat root]# partprobe     //让分区表立刻生效

[root@redhat root]# mkswap /dev/sda6        //(首先用"t"改变分区的id82,再)sda的第6个分区格式化成swap分区

[root@redhat root]# free        //查看内存

[root@redhat root]# dd < /dev/zero > /tmp/swap bs=4k count=100    //创建一个100Mswap文件

[root@redhat root]# mkswap /tmp/swap        //格式化为swap文件格式,并加入到swap分区

[root@redhat root]# free

[root@redhat root]# swapoff /tmp/swap    //将这个swap文件脱离swap分区

 

文件系统

不同的文件系统存放、搜索文件的方式都有不同,Linux支持多种文件系统的读写。linux自身最主要使用的是ext2/ext3文件系统。

ext2/ext3文件系统支持rwx权限及文件属性(attributes); ext2/ext3文件系统采用block+inode方式存放文件;ext2/ext3文件系统上有一块空间被称为超级块(superblock)用于存放文件系统的元数据,诸如卷标名、block数、inode数等等;inode存放文件的元数据,包含文件权限、属性、更改时间等等数据。

 

例:

[root@redhat root]# ls –il    //列出目录下的文件的索引结点号以及详细信息

[root@redhat root]# df    //查看硬盘分区信息

[root@redhat root]# dumpe2fs /dev/sda1    //查看第一个分区的超级块信息

 

ReiserFS文件系统

  1. 一个非常优秀的文件系统
  2. 可轻松管理上百
    G
    的文件系统
  3. 先进的日志机制
  4. 高效的磁盘空间利用
  5. 独特的搜寻方式

 

文件属性

  1. ext2/3
    文件系统中,对每一个文件,还提供额外的属性支持
  2. 用户可以用
    lsattr
    来检查文件的属性
  3. 系统用户可以用
    chattr
    来改变文件的属性。
    +
    号添加、
    -
    号去除

例:

[root@redhat root]# chattr +i install.log    //给文件设定一个i属性,设定之后,文件无法被删除悠

[root@redhat root]# lsattr install.log

----i-------- install.log

[root@redhat root]# chattr -i install.log    //删除文件的i特殊属性

 

ext3文件系统

  1. ext3
    文件系统即一个添加了日志功能的
    ext2,
    ext2
    文件系统无缝兼容
  2. ext2
    文件系统可以通过增加日志的方式简单地升级成为
    ext3
    文件系统
  3. ext3
    文件系统支持三种日志模式:

    规则(默认,公记录元数据);日志化(将数据象元数据一样记录入日志) ;写回(只在fsck时发生)

[root@redhat root]# cat /proc/filesystems        //查看当前系统所启用的文件系统

 

创建文件系统

常用的创建文件系统的工具:

mkfs:可以用于创建各种文件系统,由-t参数指定。

mke2fs:创建ext2/3文件系统,支持指定block大小等功能。

例:

[root@redhat root]# mkfs -t ext2 /dev/sda5    //sda5分区上创建ext2文件系统

[root@redhat root]# dumpe2fs -h /dev/sda5    //查看sda5的超级块信息

[root@redhat root]# mke2fs -b 2048 /dev/sda5    //sda5创建ext2文件系统,并指定块大小为2048kB

[root@redhat root]# mke2fs -i 1028 /dev/sda5    //把索引结点的大小设置为1028kB

[root@redhat root]# mke2fs -L data /dev/sda5    //sda5创建一个名为-L的卷标

[root@redhat root]# mke2fs -j /dev/sda5        //sda5创建ext3文件系统

[root@redhat root]# mount /dev/sda5 /opt        //sda5挂载到/opt目录下

[root@redhat root]# cd /opt

[root@redhat root]# touch test

[root@redhat root]# ls

[root@redhat root]# umount /opt        //卸载/opt目录

 

mount使用

1.-t 文件系统类型:用于指定挂载文件系统的类型,一般这个参数是必须的。

2. 参数:补允追加的参数

3.ext2文件系统默认采用的参数:rwsuiddevexecautonouserasync

例:

[root@redhat root]# mount -o ro /dev/sda5 /opt        //挂载sda5/opt,且只读

[root@redhat root]# mount /dev/cdrom /mnt        //挂载光驱

[root@redhat root]# mount /dev/fd0 /mnt        //挂载软驱

[root@redhat root]# mount -o loop,ro /var/boot.iso /mnt    //挂载ISO镜像

[root@redhat root]# vi /etc/fstab    //编辑fstab文件

LABEL=/ / ext3 defaults 1 1

none /dev/pts devpts gid=5,mode=620 0 0

none /proc proc defaults 0 0

none /dev/shm tmpfs defaults 0 0

/dev/sda2 swap swap defaults 0 0

/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0

/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

[root@redhat root]# mount        //查看当前挂载中的文件系统

[root@redhat root]# cat /etc/mtab    //查看当前挂载中的文件系统

[root@redhat root]# cat /proc/mounts        //查看当前挂载中的文件系统

[root@redhat root]# e2label /dev/sda5    //查看sda5的卷标

[root@redhat root]# e2label /dev/sda5 data        //sda5创建一个卷标

[root@redhat root]# mount -L data /opt    //使用卷标将sda5挂载到/opt

[root@redhat root]# umount /opt        //卸载/opt下的挂载设备

[root@redhat root]# umount /dev/sda5    //卸载sda5设备

 

文件系统维护

  1. fsck/filesystem check:
    用于检查和修复文件系统。
    e2fsck:
    检查与修复
    ext2
    文件系统。
  2. 系统在启动时自动会被检查。
  3. tune2fs
    :更改
    ext2
    文件系统属性。
  4. resize2fs
    :更改
    ext2
    文件系统的大小。
  5. parted:
    更改多种文件系统大小。

例:

[root@redhat root]# fsck -y /dev/sda6    //检测sda6分区

[root@redhat root]# tune2fs -j /dev/sda5    //sda5转换为ext3文件系统

[root@redhat root]# rpm -q autofs        //查看系统是否安装了autofs(自动挂载套件)

 

自动挂载

系统通过autofs服务自动挂载文件系统,需要后台的automount进程,autofs服务的开闭由/etc/init.d/autofs脚本控制,主要应用于软驱与光驱等场合,如果该设备一段时间没有被使用,autofs会自动卸载。

[root@redhat root]# cat /etc/auto.misc    //查看自动挂载设备

[root@redhat root]# service autofs restart    //重启自动挂载服务

[root@redhat root]# cat /etc/auto.master        //自动挂载目录集合

真正挂载目录的为 auto.master集合中的目录+auto.misc中的路径。

 

安装中的窗口切换

在安装过程中,用Alt+Fn键来切换显示窗口:

Alt+F1:安装对话框

Alt+F2:一个bash

Alt+F3:安装日志

Alt+F4:与系统、核心相关的信息

Alt+F5:其他讯息,诸如mke2fs,grub的标准输出

Alt+F7:X图形化显示

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

[root@redhat root]# sestatus        //查看SELinux的状态

[root@redhat root]# vi /etc/sysconfig/selinux        //编辑selinux文件

设置:SELINUX=disabled        //设置为不可用

 

Linux的计划任务

at命令:指定一个时间执行一个任务

cron机制:根据一个时间表自动执行任务

anacron机制:在一个指定时间间隔错过后自动执行任务

 

at命令需要系统后台有一个atd进程

at:安排延时任务

atq:查询当前的等待任务

atrm:删除等待任务

batch:以一个低优先级延时执行任务

例:

[root@redhat root]# ps -ef|grep atd        //查看atd是否启动

[root@redhat root]# /etc/init.d/atd restart        //重新启动atd服务

[root@redhat root]# chkconfig --level 2345 atd on //设置系统启动运行等级是2345时,启动atd服务

[root@redhat root]# at now +1 min    //设置一分钟后的任务

at> echo "hello" > /dev/tty2        //hello输出到tty2

at> <EOT>        //ctrl+D

job 4 at 2011-11-21 13:44

然后在linux系统中按下快捷键Alt+f2,显示第2个终端可以看到:Redhat login: hello

[root@redhat root]# at 13:55        //设置1355后的计划任务

at> echo "this is test" > /root/test.txt        //将内容输出到 /root/test.txt

at> <EOT>        //ctrl+D

job 5 at 2011-11-21 13:55

[root@redhat root]# cat /root/test.txt

this is test

[root@redhat root]# at 1:00 2011-11-22        //2011-11-22 100自动关闭系统

at> /sbin/shutdown -h now        //自动关闭系统

at> <EOT>

job 6 at 2011-11-22 01:00

[root@redhat root]# cd /var/spool/at        //进到at目录下

[root@redhat at]# ls

a0000101502a34 a0000201502a37 a0000301502a37 a0000601502cdc spool

[root@redhat at]# cat a0000601502cdc

…………

/sbin/shutdown -h now

[root@redhat at]# atq        //查询系统有多少个正在等待被执行的任务

1 2011-11-21 13:40 a root

2 2011-11-21 13:43 a root

3 2011-11-21 13:43 a root

6 2011-11-22 01:00 a root

[root@redhat at]# at now +5 min

at> echo "test" > /dev/tty2

at> <EOT>

job 7 at 2011-11-21 14:16

[root@redhat at]# atq

1 2011-11-21 13:40 a root

2 2011-11-21 13:43 a root

3 2011-11-21 13:43 a root

6 2011-11-22 01:00 a root

7 2011-11-21 14:16 a root

[root@redhat at]# atrm 3    //删除工作号为3的任务

[root@redhat at]#

You have new mail in /var/spool/mail/root

[root@redhat at]# mail

……

& 8

Message 8:

From root@localhost.localdomain Mon Nov 21 14:20:00 2011

Date: Mon, 21 Nov 2011 14:20:00 +0800

From: root <root@localhost.localdomain>

Subject: Output from your job 8

To: root@localhost.localdomain

 

hi luowei

[root@redhat at]# batch    //用于创建大批量的任务

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

at> echo "hi" > /dev/tty2

at> <EOT>

job 9 at 2011-11-21 14:28

 

at命令的使用控制

at命令的使用控制文件

/etc/at.allow

/etc/at.deny

基于用户的使用控制

                at命令的控制流程

例:

[root@redhat at]# vi /etc/at.deny

test

jack

~

[root@redhat at]# su - jack

[jack@redhat jack]$ at

You do not have permission to use at.

[jack@redhat jack]$

 

转载于:https://www.cnblogs.com/luowei010101/archive/2011/11/25/2263570.html

你可能感兴趣的文章
OPPO R11继续升温,8月8日将推出巴萨定制机
查看>>
从主流厂商宣传语看中国CRM领域的发展
查看>>
腾讯动漫回应停止支付作者稿酬传闻:均会按时如数支付
查看>>
卫健委:保障病人就医需求 加强流感药品物资保障
查看>>
因无力偿还网贷 内蒙古一对夫妻贩卖亲生龙凤胎
查看>>
2018年深圳出口规模续称雄 新业态进出口倍增
查看>>
第二届EmTech China 峰会在京举行 畅谈科技创新未来
查看>>
证监会对6宗内幕交易案件作出行政处罚 涉及现代制药等
查看>>
张近东智慧零售大开发加码:2019年开店15000家
查看>>
西班牙一亚洲女子疑似被人从三楼推落 伤势严重
查看>>
学习Python编程语言-这28本有关Python书籍值得去了解
查看>>
刚刚,蚂蚁区块链喜提“世界互联网领先科技成果”
查看>>
后端工程师入门前端页面重构(一):口诀
查看>>
广州三本找Java实习经历
查看>>
初识 weex 系列(前端视角) - 基础完结
查看>>
《Web 推送通知》系列翻译 | 第七篇:推送事件 && 第八篇:显示一个通知
查看>>
你不知道的 Electron (一):神奇的 remote 模块
查看>>
华为资深架构师:Cloud Native架构一致性问题及解决方案
查看>>
AI还有什么不会的?机器人写稿技术应用
查看>>
iOS 中的 block 是如何持有对象的
查看>>