文件基本操作
查看
cat命令
cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。
参数 作用
-n 显示行号
-b 显示行号(不包括空行)
-A 显示出“不可见”的符号,如空格,tab键等等
more命令
more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”
参数 作用
-n 显示行号
-b 显示行号(不包括空行)
-A 显示出“不可见”的符号,如空格,tab键等等
head命令
head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。
参数 作用
-n 10 显示10行
-n -10 正常输出(如cat命令),但不显示最后的10行
tail命令
tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”
参数 作用
-n 10 显示后面的10行
-f 持续刷新显示的内容
od命令
od命令用于对查看特殊格式的文件,格式为:“od [选项] [文件]”。
参数 作用
-t a 默认字符
-t c ASCII字符
-t o 八进制
-t d 十进制
-t x 十六进制
-t f 浮点数
复制删除移动
cp命令
cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。
复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数 作用
-p 保留原始文件的属性
-d 若对象为"链接文件",则保留该"链接文件"的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p,d,r为上述的参数)
mv命令
mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。
rm命令
rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”
参数 作用
-f 忽略警告信息
-i 删除前先询问
-r 删除文件夹
dd命令
dd命令用于指定大小的拷贝的文件或指定转换文件,格式为:“dd [参数]”。
参数 作用
if 输入的文件名称。
of 输出的文件名称。
bs 设置每个“块”的大小。
count 设置要拷贝“块”的个数。
conv=ucase 将字母从小写转换为大写。
conv=lcase 把字符从大写转换为小写。
创建
vi命令
比如vi www.sh
会显示一个空白的文件,添加字符并且:wq后,会保存退出
touch命令
touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”。
1.我们可以用“touch test”轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。
2.对于在Linux中的文件有三种时间:
更改时间(mtime):内容修改时间(不包括权限的)
更改权限(ctime):更改权限与属性的时间
读取时间(atime):读取文件内容的时间
如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。
3.
参数 作用
-a 近修改“访问时间”(atime)
-m 近修改“更改时间”(mtime)
-d 同时修改atime与mtime
-t 要修改成的时间[YYMMDDhhmm]
其他
tr命令
tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”。
例如:查看tr.txt文件,并将所有的小写字母转换为大写字母
cat tr.txt | tr [a-z] [A-Z]
wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
参数 作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
cut命令
cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”。
参数 作用
-d 分隔符 指定分隔符,默认为Tab。
-f 指定显示的列数。
-c 单位改为字符
获取当前系统中所有用户的名称:
参数作用:-d以”:”来做分隔符,-f参数代表只看第一列的内容。
cut -d: -f1 /etc/passwd
权限(包括文件夹)
查看权限
我们来查看一下zhaoyuqiang.html这个网页文件的权限。
方法:在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)查看的是xxx文件之中的文件权限
那么就会出现相类似的信息,主要都是这些:-rw-rw-r–
权限含义
-rw-r--r--
中间那三个 rw- 代表的是所有者(user)拥有的权限
然后那三个 r-- 代表的是组群(group)拥有的权限
最后那三个 r-- 代表的是其他人(other)拥有的权限
然后
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
-
表示相应的权限还没有被授予
之后的root root 就是用户拥有者了。
需要注意的是:查看文件权限的目录问题: 如果有文件夹 /a/b/c
那么执行 ls -l /a/b 查看权限的文件并不是b,而是查看的c的权限。
ls -l /a 查看的是b文件的权限
ls -l /a/b 查看的是c文件的权限
ls -l /a/b/c 查看的是c文件的权限
修改权限
在终端输入:
chmod o w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
行动:
表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r–r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
修改权限(数字)
另外一种方法是以数字来表示权限,而且仅需三个数字。
r: 对应数值4
w: 对应数值2
x:对应数值1
-:对应数值0
(一) 我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100再将其每三位转换成为一个十进制数,就是754。
(二) 也可以将其简单的理解为一种运算: (4+2+1) (4+1) (4)=754
例如,我们想让zhaoyuqiang.html这个文件的权限为:
自己 同组用户 其他用户
可读 是 是 是
可写 是 是
可执行 是
那么,我们先根据上表得到权限串为:rw-rw-r–,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我们执行命令:
chmod 664 test.sh
[root@localhost ~]# chmod 700 /mnt/fileA注:仅把fileA目录的权限设置为700
[root@localhost ~]# chmod -R 744 /mnt/fileA注:表示将整个/mnt/fileA
目录与其中的文件和子目录的权限都设置为744
需要注意的还是关于修改权限的文件问题:比如有文件 /a/b/c.
执行: chmod 700 /a 修改的是a文件的权限
chmod 700 /a/b 修改的是b文件的权限
chmod 700 /a/b/c 修改的是c文件的权限
要和查看文件权限的目录分开
所有者
chown 语法
chown [选项]… [所有者][:[组]] 文件…
举例:将oldboy文件的属主改为oldboy用户
[root@localhost oldboy]# ls -l oldboy
-rw-r--r-- 1 root root 5 May 1 09:57 oldboy
[root@localhost ~]# chown oldboy:root oldboy #这里冒号也可以换成点(.)
[root@localhost oldboy]# ls -l oldboy
-rw-r--r-- 1 oldboy root 5 May 1 09:57 oldboy
说明:chown 所接的新的属主和新的属组之间应该以.或:连接,属主和属组任意之一可以为空。如果属主为空,应该是:属组;如果属组为空,就不必需要.或:了。
root@localhost ~]# mkdir -p /test/oldboy
[root@localhost ~]# cd /test/oldboy/
[root@localhost oldboy]# touch oldboy.txt
[root@localhost oldboy]# ls -l oldboy.txt
-rw-r--r-- 1 root root 0 May 3 08:09 oldboy.txt
[root@localhost oldboy]# chown zgy oldboy.txt #把oldboy.txt的属主改为zgy
[root@localhost oldboy]# ls -l oldboy.txt
-rw-r--r-- 1 zgy root 0 May 3 08:09 oldboy.txt
[root@localhost oldboy]# chown :zgy oldboy.txt
[root@localhost oldboy]# ls -l oldboy.txt
-rw-r--r-- 1 zgy zgy 0 May 3 08:09 oldboy.txt
[root@localhost oldboy]# chown root:etiantian oldboy.txt #把oldboy.txt的属主改为root,把属组改成etiantian用户组
[root@localhost oldboy]# ls -l oldboy.txt
-rw-r--r-- 1 root etiantian 0 May 3 08:09 oldboy.txt
特别提示:要修改的用户和组鄙视是系统中已经存在的。
chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,我们可以通过加-R参数来改变某个目录下的所有文件到新的属主或属组;
[root@localhost oldboy]# mkdir zgy_dir
[root@localhost oldboy]# ls -ld zgy_dir/
drwxr-xr-x 2 root root 4096 May 3 08:26 zgy_dir/
[root@localhost oldboy]# mkdir zgy_dir
[root@localhost oldboy]# ls -ld zgy_dir/
drwxr-xr-x 2 root root 4096 May 3 08:26 zgy_dir/
文件夹
创建
mkdir命令
mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。
参数 作用
-m=MODE 默认的文件目录权限,如"-m 755"
-p 连续创建多层目录(若文件夹已存在则忽略)
-v 显示创建的过程
查看进入
pwd命令
pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。
参数 作用
-P 显示真实路径。(即非快捷链接的地址)
cd命令
cd命令用于切换工作路径,格式为:“cd [目录名称]”。
参数 作用
- 切换到上一次的目录,如“cd -”
~ 切换到“家目录”,如"cd ~"
~username 切换到其他用户的家目录,如"cd ~teak"
.. 切换到上级目录,如"cd .."
复制删除移动
cp命令
cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。
复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数 作用
-p 保留原始文件的属性
-d 若对象为"链接文件",则保留该"链接文件"的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p,d,r为上述的参数)
mv命令
mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。
rm命令
rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”
参数 作用
-f 忽略警告信息
-i 删除前先询问
-r 删除文件夹