当前位置: 建站>运营/SEO
本页文章导读:
▪IBM的LPI复习资料之LPI101-Topic103 :GNU和Unix命令(3)文件和目录管理 引言:你可能已经听说过在Linux中一切皆是文件,所以一定要打好基础,把文件和目录的管理如查找、列出、移动、复制、打包等学扎实。本文针对LPI 101考试,当然读者也可以为了兴趣来学习.........
▪tsung
yum install erlang
做HTTP测试:
tsung rocorder
tsung stop_recorder
gedit ~/.tsung/tsung.xml
对配置稍作调整
......
▪把当前目录下指定后缀名修改为其他后缀名 #!/bin/bash
#把指定目录下的所有指定后缀名的文件替换为指定后缀名的文件
SELF=$0
DIR=$1
SRCSUFFIX=$2
DESTSUFFIX=$3
if [ $# -ne 3 ]; then
echo "$SELF path,srcSuffix, destSuffix"
exit 0
fi
if [ -d $DIR ]; then
.........
[1]IBM的LPI复习资料之LPI101-Topic103 :GNU和Unix命令(3)文件和目录管理
来源: 互联网 发布时间: 2013-10-27
引言:你可能已经听说过在Linux中一切皆是文件,所以一定要打好基础,把文件和目录的管理如查找、列出、移动、复制、打包等学扎实。本文针对LPI 101考试,当然读者也可以为了兴趣来学习。
摘要:本文介绍几本的文件和目录管理命令,具体有
- 列举目录中文件
- 复制、移动或者删除文件和目录
- 迭代操作多个文件和目录
- 使用通配符
- 使用find命令,根据文件类型、大小或者时间来查找定位文件
- 使用gzip和bizp2来压缩和解压文件
- 使用tar,cpio,dd来打包文件
本文帮助你为LPI-1的103.2复习,本部分权重是4。
所有Linux和Unix中的文件都是从一个单根树状文件系统中获得,这个文件系统的为一个的根就是/。可以使用mount挂载更多的文件到这个树上,也可以使用unmount卸载树上的已有文件。
本文中,我们将使用前一篇文章中创建的文件来做实验。
文件和目录的路径可以是绝对路径(以/开头),也可以是相对路径(相对于当前工作目录)。绝对路径以/开头,后面是目录的名称,目录之间使用/分隔。
给定一个文件或目录的相对路径,则当前工作目录的绝对路径/相对路径 就是文件或目录的绝对路径了。例如当前工作目录的绝对路径是 /home/ian,已知目录的相对路径是lpi103-2,则其绝对路径就是 /home/ian/lpi103-2。
使用pwd命令可以打印出当前的工作目录。有时候环境变量PWD也代表当前工作目录。下图展示了使用pwd命令,以及三种不同的方式来使用ls来列举目录中的文件。
[root@localhost lpi103-2]# pwd /root/lpi103-2 [root@localhost lpi103-2]# ls msg sedtab text1 text2 text3 text5 text6 xaa xab yaa yab [root@localhost lpi103-2]# ls $PWD msg sedtab text1 text2 text3 text5 text6 xaa xab yaa yab [root@localhost lpi103-2]# ls /root/lpi103-2/ msg sedtab text1 text2 text3 text5 text6 xaa xab yaa yab
可以看出,ls的参数可以是绝对路径,也可以是相对路径。
在一个存储设备中,一个文件或者目录是被存放到被称为block的多个存储单元中的。一个文件的元信息则存放到inode中,它记录了文件的属主、修改时间、大小、是否是目录、读写权限等。inode号也被叫做文件序列号,在一个特定的文件系统中它是唯一的。我们可以使用-l选项(或者--format=long)来显示这些元信息。
默认情况下,ls不会显示以文件名.开头的文件。除了根目录,其他每个目录中至少有两个这样的文件:一个是目录本身(.),另一个是父目录(..)。根目录没有父目录。
下图展示了使用-l 和 -a选项来显示元信息以及以.开头的特殊文件。
[root@localhost lpi103-2]# ls -al total 92 drwxr-xr-x 2 root root 4096 May 7 17:29 . dr-xr-x---. 10 root root 4096 May 7 15:47 .. -rw-r--r-- 1 root root 43851 May 7 15:38 msg -rw-r--r-- 1 root root 8 May 7 17:14 sedtab -rw-r--r-- 1 root root 24 May 7 14:29 text1 -rw-r--r-- 1 root root 25 May 7 14:48 text2 -rw-r--r-- 1 root root 63 May 7 16:07 text3 -rw-r--r-- 1 root root 24 May 7 16:41 text5 -rw-r--r-- 1 root root 98 May 7 17:29 text6 -rw-r--r-- 1 root root 15 May 7 15:15 xaa -rw-r--r-- 1 root root 9 May 7 15:15 xab -rw-r--r-- 1 root root 17 May 7 15:16 yaa -rw-r--r-- 1 root root 8 May 7 15:16 yab
上图第一行显示了列出的所有文件所占用的block数量。接下来的行报告了每个文件的情况。
- 第一列报告了文件的类型以及权限。第一个字符表示文件的类型,其中d表示目录,-表示一般文件,-l表示符号链接,还有很多其他特殊的文件类型。接下来的9个字符被分成三组,每组三个字符。三个分组分别表示文件属主、同组用户、其他用户对文件的读、写、执行权限。
- 第二列表示文件的硬链接数。我们说过,inode包含了文件的元信息。目录中的每一个项都包含了一个指向inode的指针,所以每一个文件至少有一个硬链接。对于目录来说,其自身又包含了表示自己的.,再加上父目录中对它的硬链接,所以至少有2个硬链接,又因为每个子目录中还有一个..来链接父目录,所以每增加一个子目录,父目录的硬链接数也就加1。如上图中/root共有10个硬链接。
- 第三列第四列分别表示文件属主和属主的主分组,在一些如RedHat的系统中,每个用户默认有一个独立的分组,但是其他系统中可能不是这样。
- 第五列是文件的长度,以字节为单位。
- 倒数第二列,表示文件最后修改时间。
- 最后一列是文件名。
ls -i 会显示文件的inode号。
[root@localhost lpi103-2]# ls -i 1839215 msg 1839209 text1 1839189 text3 1839219 text6 1839212 xab 1839214 yab 1839218 sedtab 1839210 text2 1839216 text5 1839211 xaa 1839213 yaa
(译者注:硬链接就是目录中存放的inode号,一个inode号在多少个目录中出现,就是有多少个硬链接。没有被硬链接了的inode,也就无法访问了,对应的文件也就相当于被删除了,上一个不严格的图帮助理解一下)
ls 可以同时接受多个文件或目录作为参数。对于目录名,ls默认会读取目录的内容然后列出每个项的元信息,而不是列出目录本身的元信息。可以使用-d选项来改变这种默认方式。如下:
[root@localhost lpi103-2]# ls -ld ../lpi103-2 sedtab xaa drwxr-xr-x 2 root root 4096 May 7 17:29 ../lpi103-2 -rw-r--r-- 1 root root 8 May 7 17:14 sedtab -rw-r--r-- 1 root root 15 May 7 15:15 xaa排序输出结果
默认情况下,ls按照文件名排序输出。ls提供了很多选项来控制输出的排序,例如-t 是按照修改时间(最新修改在前)排序,-lS 则按照大小排序, -r则倒转排序先后。例如 -lrt会按照修改时间排序,并且最新修改的在最后输出。更多地选项参考man手册页。
我们已经学会了一些创建文件的方法,那么如何复制、重命名、移动、或者删除文件呢?这要用到三个很短的命令:
- cp 用于复制一个或多个文件或者目录。必须提供源和目的参数,源或目的参数可以包含路径。如果目标是一个存在的目录,那么所有的源都将复制到这个目录下。如果目标是一个不存在的目录, 那么源也必须是目录,然后一个源目录的拷贝就会产生,名称为目标名称。(译者注:在CentOS6中实验,结果不是这样)如果目标是文件,那么源也必须是文件,然后源文件的一份拷贝就会产生,并且以目标名为新名称,如果目标文件存在,则覆盖之。与DOS和Windows不同,这里的目标参数必须提供,不存在默认的目标参数。
- mv 用于重命名或者移动一个或多个文件及目录。其规则与cp类似。因为文件名字只是其所在目录的一个项的属性,所以改名并不会影响inode编号。但是跨文件系统移动时,inode将会改变,因为这要靠复制然后删除原来的文件来实现。
- rm 用于删除一个或者多个文件。后面我们会讨论删除目录的问题。
下面的实验使用了cp和mv来备份我们的文件,也使用了ls -i来显示文件的节点信息。
[root@localhost lpi103-2]# cp text1 text1.bkp [root@localhost lpi103-2]# mkdir backup [root@localhost lpi103-2]# cp text1 backup/text1.bkp.2 [root@localhost lpi103-2]# ls -i text1 text1.bkp backup/ 1839209 text1 1839220 text1.bkp backup/: 1839222 text1.bkp.2 [root@localhost lpi103-2]# mv text1.bkp backup [root@localhost lpi103-2]# mv backup/text1.bkp backup/text1.bkp.1 [root@localhost lpi103-2]# ls -i text1 text1.bkp backup ls: cannot access text1.bkp: No such file or directory 1839209 text1 backup: 1839220 text1.bkp.1 1839222 text1.bkp.2
正常情况下,如果目标文件存在,那么cp将会覆盖之。而mv却不会。 可以通过选项来控制cp 和 mv的覆盖行为。
- -f 或者 --force 导致cp会尝试覆盖掉目标文件,即使目标文件不可写。
- -i 或者
[2]tsung
来源: 互联网 发布时间: 2013-10-27
Source Code: http://tsung.erlang-projects.org/
Install:
yum install erlang
./configure
make
sudo make install
安装完成之后的 tsung 运行脚本在 /usr/bin/tsung ,在系统 path 之中,可以直接运行。
make
sudo make install
安装完成之后的 tsung 运行脚本在 /usr/bin/tsung ,在系统 path 之中,可以直接运行。
Config:
做HTTP测试:
cp /usr/local/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml
tsung 采用了巧妙的 proxy 方式来“录制”测试脚本。具体来说,就是建立一个本机的 http proxy 默认使用 8090 端口,在配好 firefox 使用 localhost 8090 作为代理之后(推荐 foxyproxy 插件),所有“流经”这个 proxy 的 http 动作都会被记录下来,测试时可以“回放”这些步骤来产生请求。
tsung rocorder
tsung stop_recorder
tsung stop_recorder
“录制”完了,会得到一个 ~/.tsung/tsung_recorderXXXXXXXXXX.xml 文件,这就是测试时回回放的脚本。
将这个脚本加到 tsung.xml 之中
gedit ~/.tsung/tsung.xml
就像这样
<!DOCTYPEtsungSYSTEM"/usr/share/tsung/tsung-1.0.dtd" [
<!ENTITYmysession1SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
...
<sessions>
&mysession1;
</sessions>
<!ENTITYmysession1SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
...
<sessions>
&mysession1;
</sessions>
对配置稍作调整
<monitoring>
<monitorhost="localhost"type="erlang"></monitor>
</monitoring>
<!-- 需要配置到 localhost 无须密码的 ssh 登录(ssh via rsa_key),开启了这个配置可以,获得目标机器的 cpu 和 ram 消耗情况 -->
<load>
<arrivalphasephase="1"duration="1"unit
<monitorhost="localhost"type="erlang"></monitor>
</monitoring>
<!-- 需要配置到 localhost 无须密码的 ssh 登录(ssh via rsa_key),开启了这个配置可以,获得目标机器的 cpu 和 ram 消耗情况 -->
<load>
<arrivalphasephase="1"duration="1"unit
[3]把当前目录下指定后缀名修改为其他后缀名
来源: 互联网 发布时间: 2013-10-27
#!/bin/bash #把指定目录下的所有指定后缀名的文件替换为指定后缀名的文件 SELF=$0 DIR=$1 SRCSUFFIX=$2 DESTSUFFIX=$3 if [ $# -ne 3 ]; then echo "$SELF path,srcSuffix, destSuffix" exit 0 fi if [ -d $DIR ]; then echo "$DIR is validate directory." else echo "$DIR is invalidate directory." exit 0 fi find $DIR -name *.$SRCSUFFIX | while read i do SRCNAME=$i echo "srcName is $SRCNAME"; DESTNAME=${SRCNAME%.*}.$DESTSUFFIX echo "destName is $DESTNAME"; mv $SRCNAME $DESTNAME done
工作中经常要把当前目录下指定后缀名(如×。cc)修改为指定后缀名(×。cpp)。写了一个脚本来做这个事情,在linux下测试通过。
作者:jetlan 发表于2013-5-10 10:35:03 原文链接
阅读:66 评论:0 查看评论
最新技术文章:
 
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!