Linux学习之文件管理命令

1、ls命令:- list directory contents

ls命令用于列出目标目录下所有子目录和文件

(1)使用格式:

 ls [OPTION]... [FILE]...

(2)option:

ls -a:显示所有文件,包括隐藏文件

[root@hu /]# ls -a /recover
.  ..  cptest  temp  test

ls -A:显示除了 · 和 · · 之外的所有文件

[root@hu /]# ls -A /recover
cptest  temp  test

ls -a /path:显示指定路径下的文件
ls -l:long-长格式列表,显示文件的详细属性信息

[root@hu /]# ls -l 
lrwxrwxrwx.   1 root root     7 Oct 11 08:36 bin -> usr/bin
dr-xr-xr-x.   5 root root  1024 Oct 11 09:43 boot

ls -h:将文件大小转换为易识别的单位——转换后为非精确数值

[root@hu /]# ls -l /recover
total 12
drwxr-xr-x.  4 root root 4096 Nov 24 23:20 cptest
drwxr-xr-x. 11 root root 4096 Nov 24 23:17 temp
drwxr-xr-x.  2 root root 4096 Nov 25 02:05 test
[root@hu /]# ls -hl /recover
total 12K
drwxr-xr-x.  4 root root 4.0K Nov 24 23:20 cptest
drwxr-xr-x. 11 root root 4.0K Nov 24 23:17 temp
drwxr-xr-x.  2 root root 4.0K Nov 25 02:05 test

ls -d:将目录像文件一样显示,而非显示此目录下的文件
ls -ld:查看目录的详细信息,而非目录下文件的详细信息
ls -r:逆序显示文件——reverse

[root@hu /]# ls -l /recover
total 12
drwxr-xr-x.  4 root root 4096 Nov 24 23:20 cptest
drwxr-xr-x. 11 root root 4096 Nov 24 23:17 temp
drwxr-xr-x.  2 root root 4096 Nov 25 02:05 test
[root@hu /]# ls -rl /recover
total 12
drwxr-xr-x.  2 root root 4096 Nov 25 02:05 test
drwxr-xr-x. 11 root root 4096 Nov 24 23:17 temp
drwxr-xr-x.  4 root root 4096 Nov 24 23:20 cptest

ls -R:递归显示目录下所有的文件和子目录

补充:

1、查询结果说明
	d r-x r-x r-x.   5 root root  1024 Oct 11 09:43 boot
	1  2    3   4    5  6     7     8        9       10
	1——d:表示文件类型
	2——rwx:表示文件属主权限
	3——rwx:表示文件属组权限
	4——rwx:表示文件其他用户权限(非属主、属组)
	5——5:表示文件被硬链接次数
	6——root:表示文件属主
	7——root:表示文件属组
	8——1025:表示文件大小(以字节为单位(用-h选项换算单位))
	9——oct 11  09:43——表示文件最后一次修改时间(过去的时间)
	10——boot:表示文件名
2、硬链接与软连接概念:
	(1)inode号:元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。
	(2)硬链接:若一个 inode 号对应多个文件名,则称这些文件为硬链接。
		硬链接的特点:
			文件有相同的 inode 及 data block;
			只能对已存在的文件进行创建;
			不能交叉文件系统进行硬链接的创建;
			不能对目录进行创建,只可对文件创建;
			删除一个硬链接文件并不影响其他有相同 inode 号的文件(只有删除最后一链接时才会删除文件本身)
	
	(3)软链接:若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。(软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块)
		软链接特点:
		软链接有自己的文件属性及权限等;
			可对不存在的文件或目录创建软链接;
			软链接可交叉文件系统;
			软链接可对文件或目录创建;
			创建软链接时,链接计数 i_nlink 不会增加;
			删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

	(4)链接的特点:链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处
3、路径表示
	· :表示当前路径
	·· :表示当前路径的上一级目录路径
4、变量查看——使用echo $name进行查看
	echo $PWD:表示当前工作目录
	echo $OLDPWD:表示上一次的工作目录
文件类型分为以下几种:
“-”:表示常规文件——即f
“d”:directory——目录文件(完成路径映射)
“b”:block device——块设备文件(支持以block为单位进行随机访问)
“c”:character device——字符设备(支持以character为单位进行线性访问)
	Major number:主设备号,用于标识设备类型,进而确定加载的驱动程序
	major number:次设备号,用于标识同一类型中的不同设备(设备号之前使用8位二进制表示)
“l”:symbolic link——符号链接文件(如:Windows快捷方式或软连接)
“s”:socker——套接字文件
“p”:pipe——命名管道

2、pwd命令:- print name of current/working directory

pwd命令用于显示当前路径的完整路径

(1)使用格式:

pwd [OPTION]...

(2)option:
pwd -l:目录连接链接时,输出连接路径
pwd -p:显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

3、cd命令:- Change the shell working directory.

cd命令用于切换当前工作目录到指定的工作目录。

(1)使用格式:

cd [option]  

(2)option:
cd ~:表示切换到自己的家目录
cd ~ name:表示切换到指定用户名的家目录
cd -:表示在上一次所在目录与当前目录来回切换
注意:bash中‘~’表示家目录;cd可用于相对路径也可用于绝对路径

补充:

1、相对路径和绝对路径
	(1)文件路径:就是文件在电脑中的位置
	(2)相对路径:相对路径是以你当前的目录为起点,以你到达的目录为终点的路径。比如:usr/local/bin这里假设当前目录为根目录。
		 注意:表示相对路径时我们并没有加上表示当前目录的那个.,而是直接以目录名usr开头,因为这个usr目录是在根目录“/”下,可以省略那个.
	(3)绝对路径:绝对路径就是以根“/”目录为起点,以你所到达的目录为终点,表现形式为/usr/local/bin。

4、cat命令- concatenate files and print on the standard output

cat命令用于连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

(1)使用格式:

cat [OPTION]... [FILE]...

(2)option:
cat -n:表示显示每行的行号——即对每行编号

[root@hu recover]# cat -n ./temp/test.txt
     1	sdfwag
     2	w
     3	eg
     4	sd

cat -E:表示在每行末尾显示$——即在每行末尾显示结束符

[root@hu recover]# cat -E ./temp/test.txt
sdfwag$
w$
eg$
sd$

5、tac命令:- concatenate and print files in reverse

tac命令用于文本查看的工具,与cat相同,但是显示顺序与cat相反

(1)使用格式:

 tac [OPTION]... [FILE]...

(2)option:
tac -b:表示在行前面非行尾添加分隔标志

wsdfwag[root@hu recover]# tac ./temp/test.txt    ==>表示不换行

tac -r:表示将分隔标志视作正则表达式来解析
tac -s<字符>:表示 使用指定字符串代替换行作为分隔标志

6、file命令:— determine file type

file命令用于探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程

(1)使用格式:

file [option][FILE] 

(2)option:

file -b:表示不显示文件名称

[root@localhost ~]# file -b install.log 
UTF-8 Unicode text

7、echo命令:- display a line of text

echo命令用于显示文本(一般只起提示作用)

(1)使用格式:

	echo [SHORT-OPTION]... [STRING]...
	echo LONG-OPTION

(2)option:
echo -n:表示不自动进行换行
echo -e:表示让转义字符生效
echo -e:也可以用来控制颜色显示

[root@hu recover]# echo -e "test\\ test1\ntest\t"
test\ test1
test

[root@hu recover]# echo -e  "\033[31mhello.my bestfriend\033[0m test one"
hello.my bestfriend test one

echo ‘string’(“string”):表示引用

补充:

1、转义字符:
	 \a 发出警告声;
   	 \b 删除前一个字符;
  	 \c 最后不加上换行符号;
  	 \f 换行但光标仍旧停留在原来的位置;
  	 \n 换行且光标移至行首;
  	 \r 光标移至行首,但不换行;
  	 \t 插入tab;
  	 \v 与\f相同;
  	 \\ 插入\字符;
   	 \nnn 插入nnn(八进制)所代表的ASCII字符;
2、强引用与弱引用
	(1)强引用:变量引用不执行替换—— ‘’ 单引号表示
	(2)弱引用:变量引用会被替换—— “” 双引号表示
3、变量引用正规符号:${name}
	    也可以使用:$name

8、date命令:- print or set the system date and time

date命令用于显示或设定系统的日期与时间。

(1)使用格式:

    date [OPTION]... [+FORMAT]
    date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

(2)option:
date:显示日期和时间
date -u [MMDDhhmm[[CC]YY][.ss]]
date [MMDDhhmm[[CC]YY][.ss]]:设置时间日期

[root@hu recover]# date 112713142018.10
Tue Nov 27 13:14:10 EST 2018
[root@hu recover]# date -u 112713142018.10
Tue Nov 27 13:14:10 EST 2018

date -d “string”:根据指定的string时间显示

[root@hu recover]# date -d tomorrow
Wed Nov 28 13:21:57 EST 2018

date +%F:根据自定义格式显示时间

[root@hu recover]# date +%m-%d
11-27

补充:

1、string有以下几种
	yesterday:显示昨天这个时刻的时间
	today:显示今天这个时刻的时间
	tomorrow:显明天这个时刻的时间
2、时间格式有以下几种
	%H 小时(以00-23来表示)。 
	%I 小时(以01-12来表示)。 
	%K 小时(以0-23来表示)。 
	%l 小时(以0-12来表示)。 
	%M 分钟(以00-59来表示)。 
	%P AM或PM。 
	%r 时间(含时分秒,小时以12小时AM/PM来表示)。 
	%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 
	%S 秒(以本地的惯用法来表示)。 
	%T 时间(含时分秒,小时以24小时制来表示)。 
	%X 时间(以本地的惯用法来表示)。 
	%Z 市区。 
	%a 星期的缩写。 
	%A 星期的完整名称。 
	%b 月份英文名的缩写。 
	%B 月份的完整英文名称。 
	%c 日期与时间。只输入date指令也会显示同样的结果。 
	%d 日期(以01-31来表示)。 
	%D 日期(含年月日)。 
	%j 该年中的第几天。 
	%m 月份(以01-12来表示)。 
	%U 该年中的周数。 
	%w 该周的天数,0代表周日,1代表周一,异词类推。 
	%x 日期(以本地的惯用法来表示)。 
	%y 年份(以00-99来表示)。 
	%Y 年份(以四位数来表示)。 
	%n 在显示时,插入新的一行。 
	%t 在显示时,插入tab。 
	MM 月份(必要) 
	DD 日期(必要) 
	hh 小时(必要) 
	mm 分钟(必要)
	ss 秒(选择性) 

9、clock命令:- query or set the hardware clock (RTC)

clock命令用于查询或设置硬件的时钟

(1)使用格式:

hwclock [function] [option...]

(2)option:
clock -s:以硬件为准,将系统时间改为与硬件时间相同
clock -w:以系统为准,将硬件时间调为与系统时间相同

[root@hu recover]# clock
	Tue 27 Nov 2018 12:37:45 AM EST  -0.924185 seconds
[root@hu recover]# date
	Tue Nov 27 13:36:09 EST 2018
[root@hu recover]# clock -w
[root@hu recover]# date
	Tue Nov 27 13:36:32 EST 2018
[root@hu recover]# clock
	Tue 27 Nov 2018 01:36:37 PM EST  -0.248309 seconds

注意:Linux有两套时钟
系统时钟:启动时从硬件读取日期和时间,之后不再联系,由Linux内核通过CPU工作平率计时。
硬件时钟:由Bios主板上的纽扣电池提供电源的时钟。

10、cal命令:- display a calendar

cal命令用于显示当前日历,或者指定日期的日历。

(1)使用格式:

	cal [options] [[[day] month] year]

(2)option:
cal -1:显示当前单月输出——或任意指定的月份或年的日历显示;

[root@hu recover]# cal -1
    November 2018   
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

cal -3:显示临近三个月的日历;
cal -s:将星期日作为月的第一天;
cal -m:将星期一作为月的第一天;
cal -j:显示“julian”日期;
cal -y:显示当前年的日历。

补充

Linux基础命令及命令历史

(1)Linux系统上文件类型:此文件类型基于文件系统视角查看其文件类型而并非使用file命令查看文件内容的类型。
(2)基本命令
A、命令类型

	a、外部命令:在系统加载时并不随系统一起被加载到内存中,而是需要时才将其调用内存——在文件系统中有对应二进制运行文件。
	b、内部命令:在Linux系统加载运行时shell就被加载并驻留在系统内存中——在文件系统中并没有对应的二进制文件。

B、如何查看内部和外部命令——使用type命令

	[root@hu lib]# type cd
	cd is a shell builtin
	[root@hu lib]# type ls
	ls is aliased to `ls --color=auto'
	[root@hu lib]# type find
	find is /bin/find

内部命令:显示is a shell builtin
外部命令:显示为aliased to 'ls --color=auto’或者is /path
注意:命令可以有别名-alias,别名与原名可以相同,此时原名隐藏。若主要使用原命令则在命令前加反斜线,如:\ls
C、如何查看命令别名

	[root@hu lib]# alias  					 ==>用于查看当前别名列表
	[root@hu lib]# alias name='command'      ==>用于定义别名
	[root@hu lib]# alias unalias			 ==>撤销别名

注意:只对当前shell系统有效,打开多个伪终端或登出当前shell后又登录均无效
11、which命令:- shows the full path of (shell) commands.

which命令用于查看命令的完整路径

(1)使用格式:

	which [options] [--] programname [...]

(2)option

which --skip-alias:查询时忽略别名

	[root@hu lib]# which ls
	alias ls='ls --color=auto'
		/bin/ls
	[root@hu lib]# which --skip-alias ls
	/bin/ls

12、whereis命令:- locate the binary, source, and manual page files for a command

whereis命令用于显示二进制文件路径,源码文件路径,手册页路径。

(1)使用格式:

	whereis [options] [-BMS directory... -f] name...

(2)option
whereis -b:只显示we进制文件路径
whereis -m:只显示手册文件路径
whereis -s:只显示源码文件路径

	[root@hu lib]# whereis -b ls
	ls: /usr/bin/ls
	[root@hu lib]# whereis -m ls
	ls: /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
	[root@hu lib]# whereis -s ls

13、who命令:- show who is logged on

who命令用于查看登录用户信息

(1)使用格式

	who [OPTION]... [ FILE | ARG1 ARG2 ]

(2)option
who -b:显示最近一次系统启动时间
who -d:显示死进程
who -l:显示登录进程
who -u:显示登录的用户
who -r:显示运行级别

	[root@hu lib]# who -b
         	system boot  2018-11-26 05:08
	[root@hu lib]# who -d
	[root@hu lib]# who -l
	[root@hu lib]# who -u
	root     :0           2018-11-26 05:09   ?          2825 (:0)
	root     pts/0        2018-11-26 05:10  old         3389 (:0)
	root     pts/1        2018-11-26 05:13   .          4507 (192.168.1.103)
	root     pts/2        2018-11-26 05:14 00:11        4545 (192.168.1.103)
	[root@hu lib]# who -r
         	run-level 5  2018-11-26 05:09

14、w命令:- Show who is logged on and what they are doing.

w命令用于显示登录的用户以及这些用户在做什么

(1)使用格式

	w [options] user [...]

(2)option
w -s:以短格式显示,不显示登录时间,jcpu、pcpu

	[root@hu lib]# w
 	20:39:05 up 1 day,  2:31,  4 users,  load average: 0.00, 0.01, 0.05
	USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
	root     :0       :0               Mon05   ?xdm?  10:35   0.56s gdm-session-worker [pam/gdm-password]
	root     pts/0    :0               Mon05   39:25m  0.04s  0.04s /bin/bash
	root     pts/1    192.168.1.103    Mon05    1.00s  0.54s  0.04s w
	root     pts/2    192.168.1.103    Mon05    2:57   0.26s  0.00s less -s
	[root@hu lib]# w -s
	 20:41:13 up 1 day,  2:33,  4 users,  load average: 0.00, 0.01, 0.05
	USER     TTY      FROM              IDLE WHAT
	root     :0       :0               ?xdm?  gdm-session-worker [pam/gdm-password]
	root     pts/0    :0               39:28m /bin/bash
	root     pts/1    192.168.1.103     1.00s w -s
	root     pts/2    192.168.1.103     5:05  less -s

15、mkdir命令:- make directories

mkdir命令用于创建目录

(1)使用格式

	mkdir [OPTION]... DIRECTORY...
		mkdir命令是对基名的操作
		basename /path/filename
		filename就是基名
	注意:(mkdir没有使用option时)路径基名为mkdir的作用对象,若基名前路径不存在则报错。

(2)option
mkdir -p:自动按需创建父目录
mkdir -v:(verbose)显示详细过程

[root@hu test]# mkdir -pv ./test12/testa/testv
mkdir: created directory ‘./test12’
mkdir: created directory ‘./test12/testa’
mkdir: created directory ‘./test12/testa/testv’

mkdir -m mode:直接给定权限;否则创建的文件为默认模式

	[root@hu test]# mkdir -m 777 test2
	[root@hu test]# ls -ll
	total 8
	-rw-r--r--. 1 root root   81 Nov 25 02:05 mvtest
	drwxrwxrwx. 2 root root 4096 Nov 27 21:52 test2

16、rmdir命令:- remove empty directories

rmdir命令用于删除空目录

注意:若目录为非空目录使用rmdir会报错

(1)使用格式

	rmdir [OPTION]... DIRECTORY...

(2)option
rmdir -p:删除某目录后,若父目录为空则一并删除
rmdir -v:显示执行过程

	[root@hu test]# rmdir -pv ./test12/testa/testv
	rmdir: removing directory, ‘./test12/testa/testv’
	rmdir: removing directory, ‘./test12/testa’
	rmdir: removing directory, ‘./test12’
	rmdir: removing directory, ‘.’
	rmdir: failed to remove directory ‘.’: Invalid argument

17、tree命令:- list contents of directories in a tree-like format.

以树状结构显示目录层级结构

(1)使用格式

tree directory

(2)option
tree:显示当前所有层的层级结构
tree -L n directory:显示指定目录的n层的层级结构

[root@hu recover]# tree -L 2
.
├── a_c
├── a_d
├── b_c
├── b_d
├── cptest
│   ├── etc
│   ├── home
│   └── testcp
├── temp
│   ├── etc
│   ├── q_y
│   ├── q_z
│   ├── system-release -> centos-release
│   ├── te

18、more命令:- file perusal filter for crt viewing

more命令用于查看文件——翻屏至文件尾部后自动退出

(1)使用格式

	more [options] file [...]

(2)option

	[root@hu /]# more /etc/profile.d/welcome.sh
	echo "欢迎进入Linux世界,尽情期待!"

19、less命令:- opposite of more

less命令用于查看文件——man命令就是调用的less命令

(1)使用格式

	less FILE

(2)option

[root@hu /]#less /etc/profile.d/welcome.sh
echo "欢迎进入Linux世界,尽情期待!"

20、head命令:- output the first part of files

head命令用于查看文本——默认查看文件前10行

(1)使用格式

head [OPTION]... [FILE]...

(2)option
head -n x:指定查看文件前x行

[root@hu test]# head -n 3 mvtest
sdfwag
w
eg

21、tail命令:- output the last part of files

tail命令用于显示文件后10行

(1)使用格式

	tail [OPTION]... [FILE]...

(2)option
tail -n x:指定显示后x行内容

	[root@hu test]# tail -n 5 mvtest
	s
	dg
	a
	dga

tail -f:显示文件尾部并不退出,可以追加输入进来的新行值,直接显示。

	[root@hu test]# tail -n 2 -f  mvtest
	dga

	testwe es
	sgd
	sgs
	dg
	sgwe

22、stat命令:- display file or file system status

stat命令用于显示文件或文件系统状态

(1)使用格式

	stat [OPTION]... FILE...

(2)option
注意:文件分两类数据:第一类就是元数据——metdate文件的属性;第二类就是真数据——date真正的数据。
stat看到的都是元数据,而cat、tail等文件看到的是真正的数据流

[root@hu test]# stat mvtest
  File: ‘mvtest’
  Size: 81        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 266993      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2018-11-27 19:49:16.726183451 -0500
Modify: 2018-11-25 02:05:42.105665019 -0500
Change: 2018-11-25 02:05:42.107665045 -0500
 Birth: -
 
1、 File:文件名
2、 Size:文件大小
3、Blocks:文件占用的数据块
4、IO Block:文件所占数据块的块大小
5、Device: 硬件,既说明该文件在硬盘的那个柱面
6、Inode: 节点号
7、Links:链接次数
8、Access:文件的总权限
9、Uid:文件的属主权限
10、Gid:文件的属组权限
11、Context:安全上下文
12、Access:最近一次被访问的时间
13、Modify:文件内容最近一次更改的时间
14、Change: 文件属性最近一次更改的时间
15、Birth:创建的时间

23、touch命令:- change file timestamps

touch命令用于改变时间截

(1)使用格式

touch [OPTION]... FILE...

(2)option
touch -a:仅改变Access时间
touch -c:当filename不存在时,也不会创建新文件或路径——默认时要创建和安装
touch -m:仅改变modify时间
touch -t [[CC]YY]MMDDhhmm[.ss]:用于自定义更改时间

[root@hu test]# touch -t 201811231225.03 mvtest
[root@hu test]# stat mvtest
  File: ‘mvtest’
  Size: 81        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 266993      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2018-11-23 12:25:03.000000000 -0500
Modify: 2018-11-23 12:25:03.000000000 -0500
Change: 2018-11-27 20:31:10.365772990 -0500
 Birth: -

24、cp命令:- copy files and directories

cp命令用于将源文件复制到目的地的目标文件中

(1)使用格式

cp [OPTION]... [-T] SOURCE DEST
单个文件复制;目标文件可以是一个文件也可是目录
	a、若目标文件不存在,则事先创建此目标文件,并将源文件数据流复制到目标文件中
	b、若目标文件存在,若目标文件是非目录文件——则复制源文件数据流覆盖目标文件
	   若目标文件时目录文件——则先在目标文件下创建一个与源文件名相同的文件,并将源文件数据复制到目标文件中。
	   
cp [OPTION]... SOURCE... DIRECTORY
多个文件复制,目标文件必须是一个目录

cp [OPTION]... -t DIRECTORY SOURCE...
多个文件复制,只不过目标文件和源文件相反
	a、若目标文件不存在:则报错
	b、若目标文件存在,若目标文件是非目录文件——则报错
					     若目标文件是目录——分别复制每个文件至目标文件中,并保持原名
	c、复制时需要加上-r参数才能复制目录,不然会报错				

补充:

	A、源文件:要复制的文件
	B、目标文件:将文件复制到目标地点中的文件
	C、复制主要针对数据而言(非元数据),称为流式数据(一个字节一个字节)

(2)option
cp -i:交互式,提醒用户确认
cp -f:强制覆盖目标文件
cp -r:递归复制目录
cp -d:复制符号链接文件本身,而非复制其指向的源文件

[root@hu test]# cp -d /etc/redhat-release /recover
[root@hu recover]# ll
total 28
drwxr-xr-x.  2 root root 4096 Nov 27  2018 a_c
drwxr-xr-x.  2 root root 4096 Nov 27  2018 a_d
drwxr-xr-x.  2 root root 4096 Nov 27  2018 b_c
drwxr-xr-x.  2 root root 4096 Nov 27  2018 b_d
drwxr-xr-x.  4 root root 4096 Nov 24 23:20 cptest
lrwxrwxrwx.  1 root root   14 Nov 27 21:46 redhat-release -> centos-release
此时redhat-release -> centos-release只是链接文件而不是文件本身。

cp -a:复制时保留文件所有属性,用于实现归档
cp -p:-p (保持) – 对于每个原文件(或目录),在复制时也复制下述特性:

  • 最后一次修订时间与最后一次访问时间。
  • 所属用户ID和所属组ID(仅在有权限如此做时)。
  • 文件权限位以及SUID和SGID权限位。
    –preserve
    mode:权限
    owership:从属关系
    timestamps:时间截
    context:安全上下文
    xattr:扩展属性
    links:符号链接
    all:上诉所有属性

25、mv命令: - move (rename) files

mv命令用于对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

(1)使用格式

mv [OPTION]... [-T] SOURCE DEST
单文件移动若没有创建指定则创建一个自定的目标名,再将数据流移动到目标文件中
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
多文件移动时不需要像cp一样加-r选项

(2)option
mv -i:交互式删除,提醒用户确认
mv -f:强制移动文件

更改文件名
[root@hu recover]# ls
cptest  test  ttp
[root@hu recover]# mv ttp temp
[root@hu recover]# ls
cptest  temp  test

26、rm命令:- remove files or directories

rm命令用于删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

(1)使用格式

rm [OPTION]... FILE...

(2)option
rm -r:递归删除文件
rm -f:强制删除文件

[root@hu recover]# rm -rfv ./cptest/home
removed directory: ‘./cptest/home/hu/Music’
removed ‘./cptest/home/hu/.bash_profile’
removed ‘./cptest/home/hu/.bash_logout’

注意:自建回收站——所有文件建议不要直接删除,而是移动到自建回收站中,确认好了以后再删除

补充

变量
(1)变量名——即有名称的储存空间
(2)变量类型(变量内部储存的积类型:整型、浮点、字符型、布尔型)
```Linux
a、字符型
b、数值型
	精确数值型
	近似数值
c、当类型确定后:储存格式、数据范围、参与运算都基本确定了
d、浮点数据如何储存

27、set命令:- Set or unset values of shell options and positional parameters.

set命令用于设置或撤销shell选项的值和位置参数。

(1)使用格式

	set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]

(2)option
set +C:撤销防覆盖重定向特性
set -C:开启防覆盖重定向特性

A、设置重定向防覆盖已存在文件夹

	[root@hu io]# set -C						==>开启防覆盖重定向
	[root@hu io]# cat test1.txt > test.txt
	-bash: test.txt: cannot overwrite existing file
	[root@hu io]# set +C						==>取消防覆盖重定向
	[root@hu io]# cat test1.txt > test.txt

B、若在开启防覆盖设置后,任然确定要重定向覆盖,可以使用 | 来强制重定向覆盖

	[root@hu io]# cat test1.txt > test.txt
	-bash: test.txt: cannot overwrite existing file
	[root@hu io]# cat test1.txt >| test.txt

28、tr命令:- translate or delete characters

tr命令用于将输入数据当中的字符,凡是在SET1定义范围内出现的,全部对位转换为SET2出现的字符。

(1)使用格式

	tr [OPTION]... SET1 [SET2]

(2)option
tr -d:删除SET1中指定的字符,并不做转换
tr -c:取代所有不属于第一字符集的字符

[root@hu io]# tr -d [a-e] < ./test.txt     //指定删除文中a到e的字母
sfsjgkfjgklfsgs
fg

fg
s
[root@hu io]# cat test.txt
dsdfasdjgdkfjgdklfsgsd
fg
d
fg
sd

29、tee命令:- read from standard input and write to standard output and files

tee命令用于从标准输入读取数据的同时写入标准输出文件中

(1)使用格式

tee [OPTION]... [FILE]...

(2)option

[root@hu io]# tee test.txt   //单独使用时就是将键盘输入字字符保存到文件test1.txt中
test1
test1
test2
test2
^C
[root@hu io]# cat test.txt
test1
test2

[root@hu io]# cat test1.txt | tee test.txt |tr [a-z] [A-Z]     //将test1.txt中的数据读出来通过管道送给test.txt文件中,再通过管道将数据送给tr修改指定字符大小写。
TEST1
TEST112
TEST23
TEST5443

30、install命令:- copy files and set attributes

install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。install命令和cp命令类似,都可以将文件/目录拷贝到指定的地点。但是,install允许你控制目标文件的属性。install通常用于程序的makefile,使用它来将程序拷贝到目标(安装)目录。

(1)使用格式

install [OPTION]... [-T] SOURCE DEST			==>单文件或目录复制
例:
	[root@hu recover]# install -m 644 cp.txt cptest
	[root@hu recover]# ll ./cptest
	total 0
	-rw-r--r--. 1 root root 0 Nov 29 08:45 cp.txt
	
install [OPTION]... SOURCE... DIRECTORY		==>将多问价复制到指定目录
install [OPTION]... -t DIRECTORY SOURCE...	==>将文件复制到指定目录
例:
	[root@hu recover]# install -m 644 cp.txt test.txt cptest
	[root@hu recover]# ll ./cptest
	total 4
	-rw-r--r--. 1 root root  0 Nov 29 08:46 cp.txt
	-rw-r--r--. 1 root root 39 Nov 29 08:46 test.txt
	
install [OPTION]... -d DIRECTORY...			==>创建空目录
例:
	[root@hu recover]# install -d tt
	[root@hu recover]# ls
	cptest  cp.txt  io  test.txt  tt

(2)option
install -m:设定文件权限,默认为775
install -o:设定目标文件属主
install -g:设定目标文件属组
install -d:创建空目录

31、mktemp命令:- create a temporary file or directory

mktemp命令用于创建临时文件或目录

(1)使用格式

mktemp [OPTION]... [TEMPLATE]

(2)option
mktemp -d:创建目录而不创建文件
mktemp -u:并不创建文件,只是用于测试

[root@hu ~]# mktemp /tmp/mytest.XXXX		——>. XXXX表示随机字符至少三个
/tmp/mytest.TyTf
注意:mktemp会将创建的临时文件名直接返回,因此可直接通过命令引用保存起来
	且在tmp中创建的临时文件过段时间一般会自动删除
例:[root@hu recover]#  test=$(mktemp /tmp/mytest.XXXX)

32、dirname和basename

1、dirname:用于显示文件名路径
	实例:[root@localhost local]# dirname /etc/rc.d/init.d
				/etc/rc.d
2、basename:用于显示该路径下的文件名
	实例:[root@localhost local]# basename /etc/rc.d/init.d
				init.d

xargs
awk
strings

sum
diffstat
script
apropos
locate
chattr
cksum
cmp
split
dirname
findfs
ln
lndir
lsattr
od
paste
tmpwatch
md5sum
comm
pg
join
fmt
ispell
col
colrm
fold
iconv
dc
expr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值