linux常用命令(2)

1、列文件或目录的信息工具 ls或dir;

语法格式:

#ls [参数]   [目录或文件名]

参数:

-a 显示所有文件,包含隐藏文件;包括“.“和“..“
-A 显示所有文件,包含隐藏文件,不包括“.“和“..“目录;
-B 不列出文件名以~结尾的文件;
-C 按列列出文件;
-d 仅可以查看目录的属性参数及信息;
-F 这个参数加上后,能给目录添加上/,给可执行文件加上*,给符号链接加上@  等等,来标记文件名,目的是让用户方便查看; 
-l 长格式输出
-h 习惯人们可阅读的方式来显示文件或目录的大小,比如K、M或G等;
-p 在目录的后面附加/标记;
-r 逆序列出文件;
-t  按文件最后访问(或修改)的时间排序,最新的排在最前面;
-U 按原始排序,
-L 递归显示,也就是说,当我们列某个目录的下的所有文件和目录时,能把它的下级目录的内容显示出来。
--help  获得帮助;

2、移动文件或目录的命令 mv ;

 

mv 命令是用来移动文件或目录的;有以下几种格式;

#mv file1 file2  注:把file1移动到file2,如果file2不存在,则创建file2文件名;
#mv file1 dir 注:把一个文件移动到一个事实存在的目录;
#mv dir1 dir2   移动目录dir1 到 dir2 ,如果dir2不存在,则创建它;
#mv file1 file2 file3 ... ...  dir   移动file1、file2、file3等多个文件到dir目录中;
#mv dir1 dir2 ... ... dirn   注:移动目录dir1和dir2等多个目录到dirn目录中

参数-i ,表示人机交互模式;提示警告信息;

举例:

[root@localhost ~]# mv -i 123.txt  234.txt
mv:是否覆盖“234.txt”? y 注:要在这里输入y,表示允许覆盖234.txt文件;如果是n,请示不允许;

mv 也能和通配符结合一起使用,这样能把相似特征的文件移动到某处;

* 代表0个或多个字符
[]内部包括任何字符
? 任何单个字符


举例:比如移动以数字开头的文件或目录到 root目录下的tmp目录中;

[root@localhost ~]# pwd
/root
[root@localhost ~]# mv [0-9]* tmp/
[root@localhost ~]# ls -lh tmp/
总计 4.0K
-rw-r--r-- 1 root root 21 04-19 15:06 234.txt
-rw-r--r-- 1 root root  0 04-19 22:23 2kexe.txt
-rw-r--r-- 1 root root  0 04-19 22:25 333.tot
-rw-r--r-- 1 root root  0 04-19 22:23 6mns.doc

3、文件或目录的复制工具cp ;


3.1 cp 的语法和参数

#cp  [参数选项]   源文件或目录      目标文件或目录

注:参数是可选的,常用参数比如 -r,-R,-p,-i ;

参数说明(部份)

-a 等同于-dpR参数一起使用;在复制过程中尽可能保留源文件或目录的属性;
-b 给被覆盖的文件做备份。比如我们把file1 复制到file2时,如果file2存在,我们把file2覆盖掉,用这个参数就能同时生成一个file2~的文件,注意文件名后有~结尾
-d 不间接引用符号链接,保持源文件和目标文件之间的硬链接关系;
-f 删除已存在的目标文件;
-i 覆盖已存在的目标文件之前给出警告提示,这是人机交互的选项;
-l 建立文件硬链接,而不是复制;
-p 保存源文件或目录的最后修改时间和模式,比如要保持目标目录或文件的属主、组、权限和最后访问(或修改)时间;
-R 复制目录时,包括淅目录下所有的子目录和文件;
-s 建立源文件的符号链接,而不是复制源文件。源文件名必须用绝对路径;
-r 复制目录时,包括淅目录下所有的子目录和文件;-r选项不同于-R之处在于 尝试打开目的地文件前先删除已存在的目的地文件
-i 人机交互模式,显法覆盖已存在的文件或目录的警告信息;
-v 在复制之前,输出每个文件的名字;
--help 查看帮助 ;


3.2 示例说明cp应用;


3.21 参数-i的示例;

[root@localhost ~]# ls
anaconda-ks.cfg  install.log.syslog  Kernel.rpm                       mydir       Plist  upgrade.log         youdir
fonts.scale      kernel              mkuml-2004.07.17-ananas.tar.bz2  plinux.txt  sun    upgrade.log.syslog
[root@localhost ~]# pwd
/root

[root@localhost ~]# cp  -i Kernel.rpm Plist
cp:是否覆盖“Plist”? y

注:人机交互在数-i的运用;如果源文件复制到目标文件,如果目标文件存在,则提示警告;


3.22 参数-a的示例及说明;

把源目录复制到另外的一个目标,相当于克隆了一个目录,源目录和目标目录在用户组、权限及修改或访问时间保持一致;

[root@localhost ~]# cp -a mydir youdir

注:复制目录mydir 到youdir ,如果yourdir目录不存在,则创建。并且把mydir中所有的文件下级子目录都复制到 yourdir目录中。也就是说mydir目录的文件和youdir是一样的。-a 参数等同于-dpR,并且源目录和目标目录的属性(用户组、权限、最后访问及修改时间)都一致;


3.23 参数-b的示例应用;

把源文件复制为目标文件;并且尝试-b参数的运用;

[root@localhost ~]# cp fonts.scale fonts.dir  把一个文件复制为另一个文件;

[root@localhost ~]# cp -bi fonts.scale fonts.dir 

cp:是否覆盖“fonts.dir”? y  注:因为用了-i 参数,如果目标文件存在,则报警提示;

[root@localhost ~]# ls -lh fonts.*
-rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir
-rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir~  注:-b参数运用的效果就是生成已存在目标文件的覆盖之前备份。
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale


3.24 把多个文件复制到目录目录中示例;

比如我们把位于用户当前目录下的fonts.dir、Kernel.rpm和Plist文件,复制到当前用户所处的目录下的sun目录中;

[root@localhost ~]# pwd  注:判断用户所处的位置,也就是所处的目录;
/root

[root@localhost ~]# mv fonts.dir Kernel.rpm  Plist  sun/ 
[root@localhost ~]# ls sun/
fonts.dir  Kernel.rpm  Plist

注:如果您想把多个目录或文件复制到目标目录时,您得加参数 -R


3.25 复制目录时-R参数的应用;

复制一个目录到另一个目录时,我们要用到 -r或-R 或-a , 如果目标目录不存在,则创建它,如果目标目录存在,则复制源目录到目标目录之下;看看-a和-R或-r有什么不同?尝试看看;

比如我们在用户当前操作的目录中,有mydir目录,我们想把mydir复制为medir(在复制之前medir是不存在的)。

[root@localhost ~]# cp -R mydir medir 注:如果medir目录不存在,则创建medir目录,并且medir目录中的内容和mydir中的一样;

如果您把-R参数换成-a参数,会有什么不同?看看前面的例子所说的;


4、 目录创建工具mkdir和删除空目录工具rmdir;


4.1 mkdir 是目录创建工具;


4.11 mkdir语法格式及参数;

语法格式

#mkdir [参数选项]  目录

参数常用的如下:

-m 在创建目录时要授其权限,要和chmod的授权格式;
-p 如果中间目录不存在,则创建它


4.12 参数 -p 的应用示例

我们要创建一个目录linuxsir,并且linuxsir目录下包含子目录sirdoc,sirdoc目录下还有 redhat目录;

[root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat

举例: -m 参数的应用示例;

我们以不同的权限来创建目录,然后查看我们所创建目录的属性;这要涉及到chown 来改变目录的权限的格式。我们会在以后讲到chown改变目录或文件的权限。在这里不同的是,在目录创建之时就给其授权了;

[root@localhost ~]# mkdir -m  644 sundir
[root@localhost ~]# mkdir -m 755 moondir
[root@localhost ~]# mkdir -m 000 beinandir
[root@localhost ~]# ls -ld sundir moondir beinandir
d--------- 2 root root 4096 04-20 11:01 beinandir 
drwxr-xr-x 2 root root 4096 04-20 11:01 moondir
drw-r--r-- 2 root root 4096 04-20 11:00 sundir


4.2 删除空目录工具 rmdir 和rm ;

rmdir 是用来删除空目录用的,如果目录中有文件或子目录,必须先删除文件或子目录,其语法格式如下:

#rmdir [参数]  目录


rmdir 参数常用的有:

-p 删除目录时是一级一级的时行的,值得注意的是,首先从最里面的目录开始。下面是一个例子;

[root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat/  

注:首先在当前目录下创建linuxsir目录,他的子目录是sirdoc,sirdoc内又有一个子目录redhat 

[root@localhost ~]# rmdir -p linuxsir/sirdoc/redhat/  注:删除linuxsir目录,要用到参数-p
[root@localhost ~]# ls linuxsir  注:检查一下是不是还有这个目录? 
ls: linuxsir: 没有那个文件或目录

rmdir 所删除的目录,每级目录中都是空的,没有其它的文件。如果任何一级的目录有文件,也不能删除。这时您要用到rm -rf 命令强制删除。不过用rm -rf 删除时有点不安全,还是用rf -ri 比较好一点,因为在删除的时候,会有警告提示。这对于安全操作来说是很重要的;

[root@localhost ~]# ls -lh sun/  注:这是sun目录,里面有内容;
总计 28K
-rw------- 1 root root 1.4K 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root    2 04-20 10:24 fonts.dir
-rw-r--r-- 1 root root    2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 5.3K 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root    0 04-19 20:44 Kernel.rpm
-rw-r--r-- 1 root root    0 04-20 10:20 Plist
[root@localhost ~]# rmdir sun/  注:我们尝试用rmdir来删除,
rmdir: sun/: 目录非空   

[root@localhost ~]# rm -rf sun/  注:强制用rm -rf 来删除;

[root@localhost ~]# ls sun    注:检查是否删除,删除成功;
ls: sun: 没有那个文件或目录


5、修改文件名工具 mv

mv 可以移动一个文件(或目录)到另一个文件(或目录),如果文件(或目录)不存在,则创建它。其实mv 这个过程也可以理解为改名过程,所以说mv工具能修改文件名和目录名。

#mv 原文件名或目录名  新文件或目录名

注意:新文件名或目录名应该不能与现有文件名(或目录名)同名。

举例:

[root@localhost ~]# ls
crondw.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

[root@localhost ~]# mv crondw.sh 123.sh  注:移动crondw.sh 到123.sh ,其实就是把文件名改为了123.sh

[root@localhost ~]# ls
123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

再看一例mv 修改目录的。当然mv是把文件(或目录)从一个地方移到另一个地方。如果另一地方没有和源文件(或目录)同名的,就创建。这也相当于改名;

[root@localhost ~]# ls
123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

[root@localhost ~]# mv kernel/ kernelBak

[root@localhost ~]# ls
123.sh  kernelBak  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值