day03

day03

1文件

FHS(Filesystem Hierarchy Standard)文件系统层级标准

文件系统:存储设备指定存放数据文件的方法和数据结构

/ 所有数据文件

bin 所有用户都可以执行的命令文件

sbin 只有管理员才可以执行的命令文件

lib 32位数据的库文件

lib64 64位数据的库文件

sue 核心资源文件

root root(管理员)用户家目录

home 所有普通用户的家目录

boot 系统加载引导相关所有文件

dev 设备目录文件

etc 系统中所有的配置文件

opt 自定义软件的安装路径

proc 系统内核相关的进程信息

sys 硬件驱动程序

run 应用程序文件的进程

srv 服务程序文件的路径

tmp 临时目录

var 动态可变化的数据文件路径

2文件相关的操作命令

(1) 同一路径下不能有两个相同的文件名

(2)严格区分大小写

(3)文件命令不能以/字符命令

(4)文件命名字符不能超过255字符

touch 创建 文本文件

当一个路径下不存在该文件通过touch可以创建一个普通文本文件

当一个路径下存在该文件就改变该文件的时间信息

stat FILENAME 文件详细属性信息

touch FILENAME

touch  a b c
touch {1,2,3,4}
touch {1..10}(两个点表示省略)
eg:
touch /root/a b c(a文件在/root/其他文件在当前路径创建)
touch /root/{1..3}(都在/root目录下创建)

mkdir DIRNAME

-p 父目录 创建多级目录

-v 详细信息

mkdir  d1 d2 d3
mkdir  dd{1..3}
eg:
mkdir     /root/{1..3}/abc
mkdir -pv /root/1/2/3/4/5

tree 显示文件树状结构

rm 删除文件

-r 递归

-f 强制

rm FILENAME 删除文本文件

rm -r FILENAME 删除目录文件

-rf FILE强制删除一个文件

*任意长度的任意字符

rm -rf a* 删除以a字符开始命名的所有文件

mv 移动文件

mv 源文件名 目标路径(目录)

#touch    /root/file
#mv      /root/file /
#mv     /root/file   /newfile
(1)当/newfile不存在,将file移动到/目录并改名为newfile
(2)当/newfile存在,如果是目录文件,表示file移动到/newfile目录下
                   如果是文本文件,表示file移动到/目录改名为newfile
                   

cp 复制文件

-r 递归

cp 源文件名 目标路径

#touch    /root/file
#cp      /root/file /
#cp     /root/file   /newfile
(1)当/newfile不存在,将file移动到/目录并改名为newfile
(2)当/newfile存在,如果是目录文件,表示file复制到/newfile目录下
                   如果是文本文件,表示file复制到/目录改名为newfile
#mkdir /root/test
#cp -r /root/test 复制目录文件

cat -n FILENAME

tac FILENAME 分屏显示文件内容,最后将内容输出到终端

moreFILENAME 分屏显示文件内容,打开文件阅读 退出q 换页空格 切换下一页

b切换上一页 /关键词 匹配关键词

head FILENAME 查看文件前十行

head-n 5 FILENAME ==head-5FILENAME 查看前五行信息

tail FILENAME 查看文件后五行信息

wget下载文件

-O 将连接文件下载到对应路径的并改名

-p 将连接文件下载到对应路径

-c 实现断点续传

-r 下载一个目录文件

作业

作业题:

1、#创建目录(尝试以下通过一条命令实现

在/mnt下创建boot和sysroot目  

在/mnt/boot下创建grub目录    

在/mnt/sysroot下创建proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp

    在/mnt/sysroot/usr下创建bin,sbin,lib

    在/mnt/sysroot/lib下创建modules

    在/mnt/sysroot/var下创建run,log,lock

    在/mnt/sysroot/etc下创建init.d 
1. [root@eihei mnt]# mkdir -p /mnt/boot/grub sysroot/{proc/,sys/,bin/,sbin/,lib/{modules},user/{bin,sbin,lib},var/{run,log,lock},etc/{init.d},dev/,home/,root/,tem/}
[root@eihei mnt]# tree
.
├── boot
│   └── grub
├── hgfs
└── sysroot
    ├── bin
    ├── dev
    ├── etc
    │   └── {init.d}
    ├── home
    ├── lib
    │   └── {modules}
    ├── proc
    ├── root
    ├── sbin
    ├── sys
    ├── tem
    ├── user
    │   ├── bin
    │   ├── lib
    │   └── sbin
    └── var
        ├── lock
        ├── log
        └── run

2.如何一次性在/test目录创建以abc表示的100个文件,例如abc1,abc2,abc3,…abc100

touch /test/abc{1..100}

t3.复制/mnt/boot目录文件到/test并改名为/boot.bak。

[root@eihei test]# cp -r  /mnt/boot /test/book.bak                                         

4.复制/test所有有9字符命名的文件到/pub下。

cp /test/*9* /pub

5.移动/test所有有1字符命名的文件到/pub目录下。

mv /test/*1* /pub
鸣谢 首先要感谢linus,给了我们一个可以自由翱翔的平台; 其次,要感谢网络上千万的linux/windows先行者,给予的有意或无意的指点和帮助; 再次,感谢陈皓兄的《跟我一起写makefile》,引导我走过了makefile的迷雾。后来发现于凤昌兄译的《GNU Make使用手册》,也有颇多受益。 背景 从2004年,我在一个公司作服务端软件的开发,要支持linux/windows平台,主要是为了容易维护,就设计、开发了这一套比较常用的类。 2005一直在windows下作IPTV的开发,在2006年底,又回到linux下作IPV6下IPTV的开发。在空闲时间,看看两年前的那些零散类文件,开始整理这些类成库,并写了简单的使用和测试范例,放在网上和朋友们共享。 由于早期的平台从windows98和VC6.0,redhat8.0,经历了些变迁,没有太多的时间再一一仔细测试,就用现在的windowsXP和VS.2003,Fedaro Core4.0作的测试。 主要是为了相互学习,希望能和朋友们共同进步!如有引用,请标明出处,会不胜感激!禁止商业性的书籍的引用!很多不良的作者,完全是在骗钱。 功能简介 通用于linux/windows平台C++的应用。 主要是对一些系统功能,进行了简洁封装。 主要有读写锁类, 线程类, 线程池类, 定时器类, socket1.1的封装类, ini文件类, txt文件类, 可删除内容的文件类, 查找文件类, 调试输出类, 字符串类, 同步的普通队列和优先级队列类, 智能指针和内存自动管理类,数据库类. 特别声明:因为环境限制,这次测试代码中,没有测试数据库类。我以前也只是在PostgreSQL,SQL Server2000和Acess2000中实际用过。如有朋友用到,请自行修改、测试。 这些类的风格,与个人习惯密切相关。推荐QT,跨平台的类库,还是不错的;ACE就太难使用了! 编译和运行: 1. windwos下,用vs2003打开pub下的test.sln文件,所有的测试程序和类库文件就载入,编译即可。其它程序引用库时,请选中/MDd选项。 2. linux下,执行pub下的Makefile文件,编译即可。如果没有安装PostgreSql,数据库部分会编译不过。 关于inline函数 我写的这些类的函数,大部分是可以写成inline函数的,对性能提高也有很大的帮助。但是,GCC和VC的不同版本编译器的支持程度不同,可能会编译不过,所以就都没有为提高效率而写inline函数。依赖于编译器,对跨平台的程序来说,也比较麻烦! 不过,现在的硬件系统,对这些小小的性能提升,也感觉不出来的。 如有需要,请自行改写! 关于异常和错误处理 也是仁者见仁,智者见智! 习惯于C开发的朋友,大概喜欢函数错误时返回错误码。函数有返回值,就要处理,就使程序逻辑较为复杂,看去也比较的混乱。 我则喜欢用异常代替,主要是代码简洁和逻辑清晰。异常抛掷,会使流程很简洁,只显示执行正确时的流程,错误集中处理 对于那些失败即意味着中止的一个操作,我让其抛掷异常。如果是正常的分支流程,则用返回失败值。就我遇到的情况,大部分则为操作失败,调用的流程一般都要中止的。 这个判断也是比较难下的。放在一个局部,异常可能导致操作中止;但放在更上一层,则异常又可能是正确程序流程处理。 bug的反馈和修改支持 如果有重大的错误需要偶修正,请发到[email protected]的邮箱,尽量说明问题的现象,我会在一周内解决的(如果工作比较紧急的时候,不能即时就处理的)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值