从命令行管理文件


 

[root@linux ~]# cd /
[root@linux /]# ls
bin  dev  home  lib64 mnt  proc  run  srv  tmp  var
boot etc  lib   media opt  root  sbin sys  usr  xx


/bin

/dev 包含特殊的设备文件,供系统用于访问硬件

/home 普通用户存储其个人数据和配置文件的主目录

/root root的主目录

/lib64

/mnt

/proc

/run 自上一次系统启动以来启动的进程的运行时数据。包括进程ID文件和锁定文件等。

此目录中的内容在重启时重新创建。(此目录整合了旧版RHEL中的/var/run/var/lock

/srv

/tmp 供临时文件使用的全局可写空间。10天未访问,未更改,或未修改的文件将自动从该目录中删除。还有一个临时目录/var/tmp,该目录中的文件如果在30天内未访问,更改或修改过,将被自动删除。

/var 特定于此系统的可变数据,在系统启动之间保持永久性。

/boot 开始启动过程所需要的文件

/etc 特定于此系统的配置文件

/lib

/media

/opt

/root

/sbin

/usr 安装的软件、共享的库,包括文件和静态只读程序数据。重要的子目录有:

-/usr/bin:用户命令

-/usr/sbin:系统管理命令

-/usr/local:本地自定义软件

 

更多详情 man 7 hier

 

绝对路径:自根(/)开始,指定达到且唯一代表单个文件所遍历的每个子目录。

相对路径:第一个字符是/之外的其他字符的路径名。

 

导航路径 pwd:显示当前位置的完整路径名

[root@linux ~]# pwd
/root
[root@linux ~]#


ls

-l长列表格式

-a包含隐藏文件的所有文件

-R递归方式,包含所有子目录内容

 

cd ~返回家目录

cd –返回上一次所在目录

cd ..返回上一级目录

cd .点代表当前目录

 

 



 

使用命令行工具管理文件

目的:能够在各种目录中创建、复制、链接、和删除文件与子目录

 

                     单一操作              多个操作

复制文件       cp file1 file 2                cp file1 file2 file3 dir

移动文件       mv file1 file2(1)           mv file1 file2 file4dir

删除文件       rm dir                           rm–f file1 file2 file3

创建目录       mkdir dir                      mkdir –p pro1/par2/dir

复制目录       cp –r dir1 dir2(2)         cp –r dir 1 dir2 dir3dir4

移动目录       mv dir1 dir2(3)             mv dir1 dir2 dir3 dir4

删除目录       rm –r dir1(2)                rm –rf dir1 dir2 dir3

(1)   重命名

(2)   递归处理

(3)   如果dir2存在则移动,dir2不存在则复制

(4)   “force”,强制删除,不提示

 

 




使用路径名扩展

*   0个或以上字符组成的任何字符串

    任何一个字符

~     当前目主目录

~yi   yi用户的主目录

~+   当前工作目录

~-    上一工作目录

[ab..]扩起的类中的任何一个字符

[^a]  取反,不包括

[!a]  取反,不包括

 POSIX字符类

[[:alpha:]]任何字母

[[:lower:]]任何小写字母

[[:upper:]]任何大写字母

[[:alnum:]]任何字母字符或数字

[[:punct:]]除空格和字母数字意外的任何可打印字符

[[:digit:]]任何数字,即0-9

[[:space:]]任何一个空白字符,可能包含制表符、换行符、或回车符,以及换行页符和空格。

 

大括号扩展

用于生成任意字符串

{1,2,3,4}

[root@linux xx]# touch{sunday,monday,tuesday,wednesday}.log
[root@linux xx]# ls
monday.log sunday.log  tuesday.log  wednesday.log


 

1..4

[root@linux xx]# ls
file1 file2  file3  file4


 

{a,b}{1,2}

[root@linux xx]# touch {a,b}{1,2}.txt
[root@linux xx]# ls
a1.txt a2.txt  b1.txt  b2.txt


 

{a{1,2},b,c}

[root@linux xx]#touch {a{1,2},b,c,}
[root@linux xx]#ls
a1  a2  b  c


 

 

命令替换

$()
[root@linux xx]#echo The time is $(date +%M) minutes past $(date +%l%p).
The time is 59minutes past 10上午.
[root@linux xx]#host=$(hostname);echo $host
Linux

``

[root@linux xx]# echo my path is `pwd`
my path is /xx


 


 

防止参数被扩展

\ 转义符 “” 双引号‘’单引号

root@linux xx]#echo my name is $USER  
my name is root
[root@linux xx]#echo my name is \$USER
my name is $USER
[root@linux xx]#echo "my name is $USER"
my name is root
[root@linux xx]#echo 'my name is $USER'
my name is $USER