2012年08月22日

Linux:挂接(mount)命令的使用方法


挂接命令(mount)

  首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。

  命令格式:

  mount [-t vfstype] [-o options] device dir

  其中:

  1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:

  光盘或光盘镜像:iso9660

  DOS fat16文件系统:msdos

  Windows 9x fat32文件系统:vfat

  Windows NT ntfs文件系统:ntfs

  Mount Windows文件网络共享:smbfs

  UNIX(LINUX) 文件网络共享:nfs

  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:

  loop:用来把一个文件当成硬盘分区挂接上系统

  ro:采用只读方式挂接设备

  rw:采用读写方式挂接设备

  iocharset:指定访问文件系统所用字符集

  3.device 要挂接(mount)的设备。

  4.dir设备在系统上的挂接点(mount point)

  挂接光盘镜像文件

  由于近年来磁盘技术的巨大进步,新的电脑系统都配备了大容量的磁盘系统,在Windows下许多人都习惯把软件和资料做成光盘镜像文件通过虚拟光驱来使用。这样做有许多好处:一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成问题,随用随调十分方便;三、硬盘的读取速度要远远高于光盘的读取速度,CPU占用率大大降低。其实linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用任何第三方软件包。

  1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。

   #cp /dev/cdrom /home/sunky/mydisk.iso 

   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso

   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso

  2、将文件和目录制作成光盘镜像文件,执行下面的命令。

   #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

   注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk

  3、光盘镜像文件的挂接(mount)

   #mkdir /mnt/vcdrom

   注:建立一个目录用来作挂接点(mount point)

   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom

   注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了。


 配置HPC环境

1.install OS rhel 6.2 (双网卡 eth0 host-only eth1 bridge) 内存 2.5G disk 80GB
2.配置网卡,setup 


private   public






vim /etc/sysconfig/network-scrpts/ifcfg-eth0


service network restart


3.禁用 selinux, vim /etc/sysconfig/selinux,  set to disabled
4.setup md5, reset passwd
5.reboot host 




6.
mkdir /temp
mkdir -p /pcc/software
mkdir -p /pcc/cnbuild
mkdir -p /pcc/software
mkdir -p /pcc/cnbuild
mount 172.17.192.16:/data/export/cnbuild /pcc/cnbuild/
mount 172.17.192.37:/jkstart/software /pcc/software


mkdir -p /root/iso
mount 172.17.192.16:/data/export/cnbuild /pcc/cnbuild/
mount 172.17.192.37:/jkstart/software /pcc/software


cd /root/iso
cd Packages
rpm -ivh createrepo




mount -o loop /pcc/cnbuild/build/output/hpc3.2/RC1/pcm...   /temp


cd /temp
./pcm-installer

执行上一条指令时,有时候会提示主机名输入错误,要求重新输入。此时可以输入命令: vi /etc/HOSTNAME 就可以对主机名进行修改。
可以执行上一条指令之后,系统将会提示要求输入目录:/pcc/sofrware/unix/rhel6/rhel6u2_64/rhel-server-6.2-X86-64-dvd.iso。
















































































<think>嗯,用户现在问的是第二个问题,关于输入一个人的出生期,然后分别输出、月、。之前他们问的第一个问题是关于定义变量和使用scanf输入不同类型的数据,现在这个问题看起来类似,但需要处理期格式。 首先,我需要确定用户的需求。他们可能在学习C语言的基础输入输出操作,特别是如何解析和处理结构化的输入数据,比如期。用户可能希望了解如何正确使用scanf来读取,并分别存储到不同的变量中,然后输出各个部分。 接下来,我需要考虑期的常见输入格式。通常,期会用分隔符如斜杠、连字符或点分隔,例如YYYY-MM-DD或者YYYY/MM/DD。用户可能希望用户输入时使用这些分隔符,所以在scanf中需要处理这些分隔符。 然后,定义变量。通常用整数表示,所以需要声明三个int变量,比如year, month, day。接下来是scanf的格式字符串,这里需要注意输入中的分隔符。比如,如果用户输入的是用斜杠分隔的,那么格式字符串应该是"%d/%d/%d",对应的变量地址是&year, &month, &day。 但用户可能没有指定具体的分隔符,这时候可能需要灵活处理。不过根据常见情况,可能需要明确指定分隔符,比如在scanf中使用非格式字符来匹配输入中的分隔符。例如,如果用户输入的是“1999-12-31”,那么格式字符串应该是"%d-%d-%d"。 不过,用户的问题描述中没有明确说明输入格式,所以可能需要假设用户输入的是用非数字字符分隔的。因此,在scanf中使用%d/%d/%d这样的格式可能更通用,或者允许任何分隔符,只要它们是非数字字符。但为了准确,可能需要明确提示用户输入的格式,比如在printf中提示“请输入期(格式:/月/)”。 另外,需要注意scanf在读取多个数值时,会自动跳过空白字符,但分隔符如斜杠或连字符需要明确在格式字符串中写出,否则会导致读取错误。例如,如果格式字符串是"%d%d%d",而用户输入的是“2023/10/05”,那么scanf会将“2023/10/05”视为三个数字,但第一个%d会读取2023,然后遇到非数字字符停止,导致后续读取错误。 因此,正确的做法是在格式字符串中包含分隔符。例如,如果用户输入的是用斜杠分隔的,格式应为"%d/%d/%d",这样scanf会正确解析每个部分。 接下来是代码结构。首先包含头文件stdio.h,然后在main函数中定义三个int变量,使用scanf读取输入,然后分别输出、月、。需要添加提示信息,让用户知道输入的格式,比如“请输入出生期(格式:/月/):”,然后使用scanf读取。 同时,要注意输入时的错误处理,但用户的问题可能没有要求错误处理,所以可能不需要处理无效输入的情况,但可以提及注意事项,比如输入不匹配时的行为。 最后,输出部分需要按照用户的要求,分别输出、月、。例如,使用printf语句,分别打印三个变量。 可能的错误点包括:忘记在scanf的格式字符串中包含分隔符,导致输入无法正确解析;变量地址未正确使用&符号;或者输入的顺序与变量存储顺序不符。 举个例子,如果用户输入“1999-12-31”,而scanf的格式字符串是"%d-%d-%d",那么year会被赋值为1999,month为12,day为31,正确。但如果用户输入时用了其他分隔符,比如点,那么就会出错。因此,在提示用户时明确输入格式非常重要。 此外,需要考虑月份和的有效性,比如月份应在1-12之间,期根据月份不同有不同天数,但用户的问题可能不需要验证这些,只是单纯地输入输出,所以可能不需要加入校验部分,但可以提到这是实际应用中需要注意的地方。 综上,代码的大致结构应该是: #include <stdio.h> int main() { int year, month, day; printf("请输入出生期(格式:/月/):"); scanf("%d/%d/%d", &year, &month, &day); printf(":%d\n月:%d\n:%d\n", year, month, day); return 0; } 或者允许不同的分隔符,比如: scanf("%d%*c%d%*c%d", &year, &month, &day); 这里%*c会读取并忽略一个非数字字符,无论分隔符是什么,比如连字符或斜杠。这可能更灵活,但需要注意用户输入是否严格符合这种格式。 但更常见的是指定明确的分隔符,这样更安全。因此,在示例中,明确提示用户使用特定分隔符,并在scanf中使用对应的格式。 最后,测试示例,比如输入2023/10/05,输出:2023,月:1005(注意,如果输入的是5,输出会是5,而不是05,但用户可能不需要前导零,除非特别要求)。 用户可能需要进一步了解如何处理不同格式,或者如何验证输入,但当前问题只需要分别输出、月、,因此代码可以保持简单。</think>以下是实现生期分割输出的C语言代码及详细说明: ```c #include <stdio.h> int main() { /* 步骤1:定义存储、月、的整型变量 */ int year, month, day; /* 步骤2:读取格式化输入 */ printf("请输入出生期(格式:/月/):"); scanf("%d/%d/%d", &year, &month, &day); // 注意格式控制符中的斜杠 /* 步骤3:分别输出三个值 */ printf("\n:%d\n", year); printf("月:%d\n", month); printf(":%d\n", day); return 0; } ``` ### 关键点解析 1. **输入格式控制**: - `scanf`中的`"/"`是格式匹配符,强制要求输入时必须包含斜杠 - 输入示例:`2000/08/25`(注意不能省略数字前的零) 2. **变量类型选择**: - 范围较大(如1900-2100),但`int`类型足够存储 - 月和用`int`存储,因为数值范围小(1-12和1-31) 3. **输入验证建议**(扩展知识): ```c if(month < 1 || month > 12) { printf("月份输入错误!"); return 1; } if(day < 1 || day > 31) { printf("期输入错误!"); return 1; } ``` ### 执行示例 输入数据: ``` 1999/12/31 ``` 输出结果: ``` :1999 月:12 :31 ``` ### 多格式支持技巧 若需要兼容多种分隔符(如`-`或`.`),可修改为: ```c scanf("%d%*c%d%*c%d", &year, &month, &day); ``` - `%*c`:读取并丢弃1个任意字符(包括符号和空格) - 此时支持输入:`2005-07-22` 或 `2012.3.15` ### 注意事项 1. **输入容错性**: - 输入必须严格匹配格式,如输入`200012月25`会导致解析失败 - 建议添加输入验证确保数据有效性 2. **前导零处理**: - 当输入`08`这类带前导零的月份时,`%d`会自动转换为十进制数8 - 输出时如需保持格式,应使用`%02d`:`printf("月:%02d\n", month);` 3. **千虫问题**: - 建议输入完整份(如`1999`而非`99`) - 如需处理短份,可添加逻辑: ```c if(year < 100) year += 2000; // 假设处理21世纪期 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值