1. 绝对路径和相对路径,例如opt目录下创建test

作者:金沙总站6155

一.创建文件

  使用touch 可以创建空文件,例如opt目录下创建test2.txt文件。这种一般是有些程序必须要先创建文件,才能使用。
        澳门娱乐6165 1

 

二. 复制文件

  2.1 使用cp命令来复制文件,需要两个参数-----源对象和目标对象。例如在opt目录下将test2.txt复制一份为test3.txt。
        澳门娱乐6165 2

  2.2 使用cp –R参数,可以一条命令将整个目录内容递归复制,例如将/opt目录及目录下所有文件复制到/usr下, 查看 /usr/opt 内容已全部复制过来。
        澳门娱乐6165 3

      下面是删除/usr/opt目录及目录下所有文件

         澳门娱乐6165 4

   2.3 也可以在cp命令中使用通配符,例如将opt目录下的以.txt结尾的文件全部复制到/usr目录下。
        澳门娱乐6165 5

1. 绝对路径和相对路径

 三.  制表键自动补全  

    当命令字符太长,很容易输错命令。可以使用tab键自动补全。例如关机命令shutdown。可以按下shut按tab来补全,文件目录太长用法也是一样。自动补全在于要给shell足够的信息,使其与其他名字区别。

    如果按下tab无法补全,可以再按一下tab,将显示以输入命令开头的文件名,例如输入sh, 按一下tab没有作用,再按一下tab,将显示sh开头的所有信息。
        澳门娱乐6165 6

绝对路径:由根目录“/”写起的。如:/usr/local/mysql

 四.链接文件 ln(共享文件)   

    链接文件是linux文件系统的一个优势,如需要在系统上维护同一个文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。虚拟副本叫链接。链接是目录中指向文件真实位置的点位符。分二种类型文件链接类型: 一是符号链接又叫软链接, 二是硬链接。
    4.1 符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件,这两个通过符号链接在一起的文件,彼此的内容并不相同。

      使用ln命令以及-s选项来创建符号链接,下面是在etc目录下,给my.cnf创建符号链接在本目录。
      澳门娱乐6165 7

      如下所示:ls_my.cnf只有6字节,它只是指向my.cnf而已。
      澳门娱乐6165 8

      尝试随意使用vim修改某个配置个文件,都会在另一文件中修改,因为是符号链接。
      澳门娱乐6165 9

      链接文件为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

    4.2 硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,引用硬链接文件等同于引用了源文件。ln命令不需要加额外参数。

      使用ln命令来创建硬链接,还是使用etc下的my.cnf来演示:
      澳门娱乐6165 10

      上图使用了ls –li 命令显示了inode编号,列表第一列(文件的唯一标识,它用来区别同一个文件而非是文件名来区别)以及长列表。带有硬链接的文件共享inode编号。因为它们终归是同一个文件,链接计数显示2(列表中第三项),显示两个文件都有两个链接,另外它们文件大小也一模一样。

      澳门娱乐6165 11

      尝试随意某个配置文件,都会在另一文件中修改,因为是一个完全相同的副本. 是一个 inode 号对应多个文件名, 硬链接就是同一个文件使用了多个别名

总结:

  硬链接以下几点特性:

    文件有相同的 inode;

    只能对已存在的文件进行创建;

    不能交叉文件系统进行硬链接的创建;

    不能对目录进行创建,只可对文件创建;

    删除一个硬链接文件并不影响其他有相同 inode 号的文件;

  软链接以下几点特性:

    软链接有自己的文件属性及权限等;

    可对不存在的文件或目录创建软链接;

    软链接可交叉文件系统;

    软链接可对文件或目录创建;

    创建软链接时,链接计数 i_nlink 不会增加;

    删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

 

相对路径:不是由根目录“/”写起的。

几个与文档、目录相关的命令

2. 命令 cd

# cd dir

cd - change directory,命令 cd 是用来变更用户所在工作目录的,其后只能跟目录名,当目录名为空时,会进入到当前用户的家目录下。

# cd /tmp/ 可以不加后面的斜杠,“.”表示当前目录,“..”表示当前目录的上一级目录,“-”表示上一次的工作目录,cd

  • 即可返回上一次的工作目录。

# echo $HOME 或 echo ~,可以打印出当前用户的家目录。

3. 命令 alias

可使用 # alias,查看系统所有的别名,可以起别名,后面跟自定义的新名称,例如:# alias sc = 'service sshd restart',可使用分号分隔多个命令,取消别名使用 # unalias sr。

4. 命令 pwd

pwd - print name of current/working directory,用于打印当前所在目录。

5. 命令 mkdir

mkdir - make directories,用户创建目录,如果需要级联创建目录,需要使用 - p 参数。

[root@ryan ~]# mkdir -p linux/test

6. 命令rmdir

rmdir - remove empty directories,用于删除空目录,需要删除级联的空目录时,添加 - p 参数。

[root@ryan ~]# vi linux/test/aa.txt
[root@ryan ~]# rmdir -p linux/test
澳门娱乐6165,rmdir: failed to remove `linux/test': Directory not empty

7. 命令 rm

rm - remove files or directories,删除文件和目录,其中参数 -r 能删除非空目录,-f 表示强制删除,所以一般 -rf 连用。

[root@ryan ~]# rm -rf linux/test/aa.txt

8. 命令 which

which - shows the full path of (shell) commands,用来查找 PATH 环境变量中出现的路径下的可执行文件。

[root@ryan ~]# which ls
alias ls='ls --color=auto'
/bin/ls

# echo $PATH,可以输出 PATH 环境变量中的值。

[root@ryan ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

9. 命令 cp

cp - copy files and directories,复制文件和目录,参数 -r 表示要复制一个目录,-i 会询问是否覆盖已存在的文件。

[root@ryan linux]# cp -r test test1
[root@ryan linux]# ll
total 8
drwxr-xr-x. 2 root root 4096 Nov 26 02:38 test
drwxr-xr-x. 2 root root 4096 Nov 26 03:16 test1

[root@ryan test]# cp cp1.txt cp2.txt
cp: overwrite `cp2.txt'? y

[root@ryan test]# cp -i cp1.txt cp2.txt
cp: overwrite `cp2.txt'? y

10. 命令 mv

mv - move (rename) files,移动或重命名文件、目录,不用添加相关参数。

几个与文档内容相关的命令

11. 命令 cat

cat - concatenate files and print on the standard output,用于查看一个文件的内容并显示在屏幕上,常用参数有 -n,将行号显示在屏幕上,参数 -A 显示所有的内容,包括特殊字符。

[root@ryan test]# cat -n cp1.txt
1 111
2 222
3 333

12. 命令 tac

tac - concatenate and print files in reverse,将文件内容倒序打印在屏幕上面,但没有参数 -n 和 -A。

[root@ryan test]# tac cp1.txt
333
222
111

13. 命令 more

more - file perusal filter for crt viewing,向下翻页查看,空格或 Ctrl + F 翻页,回车翻行。

14. 命令 less

less - opposite of more,可以上翻,也可以下翻,j(剪下来,向下翻行),k(看上去,向上翻行),空格或 Ctrl + F 向下翻页,回车向下翻行,Ctrl + B 向上翻页,Ctrl + F 向下翻页,Shift + G 翻页到最下,g 翻页到最上。

15. 命令 head

head - output the first part of files,用于默认显示文件的前10行,后面直接跟文件名。-n 选项则可以显示文件的前 n 行,-n 后面有无空格均可以,字母 n 也可以省略,- 后面直接跟数字,即要显示的行数。

[root@ryan test]# head -n 2 cp1.txt
111
222

[root@ryan test]# head -n2 cp1.txt
111
222

[root@ryan test]# head -2 cp1.txt
111
222

16. 命令 tail

tail - output the last part of files,用于默认显示文件的后10行,后面直接跟文件名。-n 选项则可以显示文件的前 n 行,-n 后面有无空格均可以,字母 n 也可以省略,- 后面直接跟数字,即要显示的行数,-f 选项可以动态显示文件的最后10行。

[root@ryan test]# tail -n 2 cp1.txt
222
333

[root@ryan test]# tail -n2 cp1.txt
222
333

[root@ryan test]# tail -2 cp1.txt
222
333

[root@ryan test]# tail -f /var/log/messages

文件的所属主和所属组

一个Linux目录或者文件,都会有一个所属主和所属组,其中所属主(user,简写为 u),所属组(group,简写为 g)以及其他用户(others,简写为 o),在 Linux 中,一个目录的默认权限为 755,而一个文件的默认权限为 644。

[root@ryan test]# ll
total 8
-rw-r--r--. 1 root root 12 Nov 26 02:38 cp1.txt
-rw-r--r--. 1 root root 12 Nov 26 03:26 cp2.txt

第1列第一个属性用来描述文件类型,d 表示该文件为目录,- 表示该文件为普通文件,l 表示该文件为软链接,b 表示该文件为块设备,如磁盘等,c 表示该文件为串行端口设备文件,如键盘、鼠标等,s 表示该文件为套接字文件(socket)。

后面9位,如 rw-r--r-- 每3个为一组,r 代表可读,w 代表可写,x 代表可执行。前3位为所属主(user)的权限,中间3位为所属组(group)的权限,最后3位为其他非本群组用户(others)的权限。

第2列表示 inode 链接数量。

第3列表示该文件的所属主。

第4列表示该文件的所属组。

第5列表示该文件的大小,字节为Byte。

第6列、第7列和第8列表示该文件最后一次被修改的时间(mtime),依次为月份,日期以及时间。

第9列表示文件名。

更改文件的权限

17. 命令 chgrp

chgrp - change group ownership,用于更改文件与目录的所属组,-R 级联更改子目录与子文件,格式为 chgrp [-R] [组名] [文件名]。

# chgrp -R testgroup dirb 将 dirb 目录及其下子目录和文件的所属组更改为 testgroup。

18. 命令 chown

chown - change file owner and group,用于更改所属主和所属组,-R 级联更改子目录与子文件,格式为 chown [-R] [账户名] [文件名] 或 chown [-R] [账户名:组名] [文件名]。

# chown user1 test 只更改所属主

# chown :testgroup test 只更改所属组

# chown user1:testgroup test 同时更改所属主和所属组,或者# chown user1.testgroup test

19. 命令 chmod

chmod - change file mode bits,更改文件读写执行权限,Linux 中,r 等于4,w 等于1,x 等于1,- 等于0,-R 级联更改子目录与子文件,格式为 chmod [-R] 文件权限数字 [文件名]

# chmod -R 700 test

# chmod u=rwx,og=rx test/test1,ugo 分别代表 user,group,others,a 代表 all,同时包括三种权限。

# chmod u-x test/test2 表示所属主减去 x 权限。

# chmod u+x test/test2 表示所属主增加 x 权限。

20. 命令 umask

umask 命令用于改变文件的缺省权限,默认值为 0022,目录的预设权限为 777,文件的预设权限为 666,所以减去 umask的值后得到目录的权限为 755,普通文件的权限值为 644。

Linux下搜索文件

21. 命令 which

which - shows the full path of (shell) commands,只能用来查找 PATH 环境变量中出现的路径下的可执行文件。

[root@ryan linux]# which ls
alias ls='ls --color=auto'
/bin/ls

21. 命令 whereis

whereis - locate the binary, source, and manual page files for a command,通过预先生成的一个文件列表库去查找与给出的文件名相关的文件,此命令不常用。

[root@ryan linux]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

22. 命令 locate

locate - find files by name,可使用 # updatedb 命令更新mlocate.db 数据库文件,从而通过此文件列表库来查找到文件的路径,此命令不常用。

23. 命令 find

find - search for files in a directory hierarchy,查找文件或目录,格式为:find [path] [param],其中 -name filename 表示通过名称查找文件,-type filetype 表示通过文件类型查找文件,filetype 包括 f(普通文件)、b(块设备)、c(字符设备)、d(目录)、l(软链接)、s(套接字文件) 等类型。例如: 查找当前目录下文件名为 cp1.txt 的普通文件。

[root@ryan test]# find . -type f -name cp1.txt
./cp1.txt

-atime +n/-n:表示访问或执行时间大于或小于 n 天的文件。atime 全称 Access time,是在读取文件或执行文件时候更改的,假如是 10,不含正负号时,表示 10 天整。

-ctime +n/-n:表示写入、更改 inode 属性时间大于或小于 n 天的文件。ctime 全称 Change time,在写入文件、更改所有者、权限或链接设备时随 inode 的内容更改而更改的。

-mtime +n/-n:表示写入时间大于或小于 n 天的文件,该参数用的最多。mtime 全称 Modified time,是在写入文件时随文件内容的更改而更改的。

当 mtime 更改时,ctime 也会随之更改;但当 ctime 更改时,mtime 却不一定更改,使用 touch 或者 vi 命令之后,这三个时间都会改变。使用 stat 命令可列出一个文件或目录的三个时间。

[root@ryan test]# stat tt.txt
File: 'tt.txt'
Size: 15 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 1046678 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-12-02 22:33:16.206991055 +0800
Modify: 2017-12-02 22:33:16.206991055 +0800
Change: 2017-12-02 22:33:16.206991055 +0800

Linux 系统中,链接文件分为硬链接(Hard Links)和软链接(Symbolic Links)两种,两种链接的本质区别在于 inode,创建格式为 ln [-s] [来源文件] [目的文件],不加 -s 选项时建立的是硬链接,加上 -s 选项创建的是软连接,ln - make links between files。

硬链接(Hard Links):由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

文件有相同的 inode 及 data block;

只能对已存在的文件进行创建;

不能交叉文件系统进行硬链接的创建;

不能对目录进行创建,只可对文件创建;

删除一个硬链接文件并不影响其他有相同 inode 号的文件,只有当该文件的所有硬链接全部删除之后,其对应的数据块才可被其他数据写入。

[root@ryan test]# ln ttcp.txt ttcpHard
[root@ryan test]# ll -i
total 20
1046633 -rw-r--r--. 1 root root 16 Dec 3 00:29 cp1.txt
1046650 -rw-r--r--. 1 root root 12 Nov 26 03:26 cp2.txt
1046549 -rw-r--r--. 2 root root 15 Dec 3 13:18 ttcpHard
1046549 -rw-r--r--. 2 root root 15 Dec 3 13:18 ttcp.txt
1046678 -rw-r--r--. 1 root root 15 Dec 2 22:33 ttmv.txt

软链接(Symbolic Links):软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接,相当于 Windows 系统中的快捷方式。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:

软链接有自己的文件属性及权限等;

可对不存在的文件或目录创建软链接;

软链接可交叉文件系统;

软链接可对文件或目录创建;

创建软链接时,链接计数 i_nlink 不会增加;

删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

[root@ryan test]# ln -s ttmv.txt ttmvSoft
[root@ryan test]# ll -i
total 20
1046633 -rw-r--r--. 1 root root 16 Dec 3 00:29 cp1.txt
1046650 -rw-r--r--. 1 root root 12 Nov 26 03:26 cp2.txt
1046549 -rw-r--r--. 2 root root 15 Dec 3 13:18 ttcpHard
1046549 -rw-r--r--. 2 root root 15 Dec 3 13:18 ttcp.txt
1046679 lrwxrwxrwx. 1 root root 8 Dec 3 13:35 ttmvSoft -> ttmv.txt
1046678 -rw-r--r--. 1 root root 15 Dec 2 22:33 ttmv.txt

综上,软连接比较常用,当遇到深层目录或者大文件时,可以通过创建软链接来重新指向,建议创建链接时来源文件与目的文件都使用绝对路径。

* *

本文由澳门娱乐6165发布,转载请注明来源

关键词: