龙空技术网

Linux 文件操作命令汇总

寒笛过霜天 159

前言:

眼前看官们对“ubuntuvim创建文件命令”大约比较讲究,你们都想要了解一些“ubuntuvim创建文件命令”的相关文章。那么小编同时在网摘上汇集了一些有关“ubuntuvim创建文件命令””的相关知识,希望各位老铁们能喜欢,大家快快来了解一下吧!

1 文件分类

在Linux/Unix下, block, char, dir, fifo, file, link, unknown等七种类型

block :块设备文件, 磁盘分区, 软驱, cd-rom等 b

char: 字符设备, I/O 以字符为单位, 键盘, 打印机等 c

dir: 目录也是文件的一种 d

fifo:命名管道 f

file:普通文件类型 -

link:符号链接, 是指向文件指针的指针, 类似windows中的快捷方式 l

unknown:未知文件

drwxr-xr-x. 5 root root 100 8月 10 22:19 disk

第1列:包含该文件的类型

d 文件夹(dir)

- 普通文件(file)

l 链接文件(link)

b 块设备文件(block)

p 管道文件(fifo)

c 字符设备文件(char)

s 套接口文件(socket)

文件类型后面的9位, 每3个为一组, "r"代表可读, "w"代表可写, "x"代表可执行

前3位为所属主(user)的权限, 中间3位为所属组(group)的权限, 最后3位为其他非本群组用户(others)的权限

第2列: 表示链接占用的节点(innode), 如果是目录, 那这个数值与该目录下是子目录数量有关。

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

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

第5列:表示该文件的大小。

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

第9列:表示文件名

2、文件权限

r权限:(可读权限), 权重值4

w权限:(可写权限), 权重值2

x权限:(可执行权限), 权重值1

常用的权限代码:777、755、644, 这些数字都是由(4、2、1拼接而来的), 采用八进制

① 7 = 4 + 2 + 1 = r + w + x = 可读可写可执行

② 5 = 4 + 1 = r + x = 可读可执行

③ 4 = 4 = r = 可读权限

1 可执行

2 可写

3 可执行可写

4 可读

5 可读可执行

6 可读可写

7 可读可写可执行

3、目录操作(创建目录与删除目录)

mkdir指令 创建目录

选项:

-p:parent的缩写, 若所要建立目录的上层目录目前尚未建立, 则会一并建立上层目录。

> mkdir -p Application/Admin/Controller

-m:mode的缩写, 创建目录时指定目录权限

> cd Application

> mkdir -m 777 Runtime

rmdir指令:删除目录

选项:

-p: parent的缩写, 删除指定目录后, 若该目录的上层目录已变成空目录, 则将其一并删除。

注意:在Linux中使用rmdir指令删除文件夹时必须保证其内部没有子文件或子文件夹, 否则无法删除, 即使用rmdir -p也不能删除,

因为rmdir指令只能删除目录, 不能删除文件, 如果要删除有子文件的目录可以使用rm -r指令删除含有子文件的目录(谨慎操作)

5、文件操作(创建文件与删除文件)

创建文件

方法一:使用vim指令(vim代表创建并打开), 如果文件未保存, 则该文件不存在。

方法二:使用touch指令(touch代表只创建文件但不打开)

删除文件(强烈推荐)

rm指令 删除文件

-r:recursive的缩写 递归处理, 将指定目录下的所有文件及子目录一并处理。

> rm -r Applicatin

输入y(或yes)或n(no)来确定或取消

注意:执行rm指令可删除文件, 如欲删除目录必须加上参数"-r", 否则预设仅会删除文件。

-f:force的缩写 删除时不弹出确认提示

> rm -rf Application

6、复制与剪切(重命名)操作

cp指令

cp [参数] <源文件路径> <目标文件路径>:复制文件到目标路径

-r(或-R):recursive的缩写, 递归处理, 将指定目录下的所有文件与子目录一并处理。

-p(小写):preserve的缩写, 复制时保持文件的原有权限

-v:显示复制进度(进度条)

> cp file1 dir1

mv指令

mv [参数] [源文件或目录] <目标文件或目录>:剪切文件到目标路径

-v:显示剪切进度(进度条)

> mv dir1/dir2 dir3/dir4 //dir2移动到dir4目录下, 并改名字为原名

> mv dir1/dir2 dir3/dir4 //dir2移动到dir4目录下, 并改名字为原名

mv除了可以剪切还可以重命名文件, 基本语法:

> mv oldFileName newFileName

如何判断是重命名还是移动文件

只在当前目录下操作, 则是重命名;

在不同的目录下操作, 则是移动文件;

7、文件统计

wc [参数] <文件列表>

-c:character缩写, 统计文件中一共有多少个字符

-l:line缩写, 统计文件中一共有多少行

-w:word缩写, 统计文件中一共有多少个单词

> wc filename //查看文件行数

7 8 70 test.txt

行数 单词数 字节数 文件名

8、grep搜索匹配行

grep [参数] <'字符串'> <源文件>

-n:显示所有匹配到的关键词所在行号

> grep -n mysql install.log

-c:统计一共有多少个匹配的行

> grep -c mysql install.log

-i:ignore缩写, 匹配关键词时忽略大小写

> grep -ci mysql install.log

9、显示文件内容

cat正序显示文件所有内容

-n 由1开始对所有输出的行数编号

> cat user.txt

> cat -n 2 user.txt

tac倒序显示文件的所有内容

-n 由1开始对所有输出的行数编号

> tac user.txt

> tac -n 2 user.txt

10、更改文件权限

chmod:更改文件权限

chmod 用户名 文件名

-R :递归(只能是大写的) recursive缩写

> chmod -R 777 oa

u 表示文件拥有者

g 表示文件所属的用户组

o 表示其他用户

a a = u+g+o

+ 增加权限

- 减少权限

= 设置权限

r 可读取

w 可写入

x 可执行

-R 递归修改

chmod u+r a.txt # 所属用户增加可读权限

chmod u-r a.txt # 所属用户减少可读权限

chmod u=r a.txt # 所属用户设置可读权限

chmod a+r a.txt # 给所有人增加可读权限

chmod u+x,g+w a.txt # 同时修改多个权限

chmod ug+x a.txt # 同时修改多个权限

chmod 777 a.txt # 给所有人增加读、写、执行权限

chmod -R 777 目录 # 修改目录及目录下所有文件的权限

chown:更改文件的拥有者

-R :递归(只能是大写的)

> chmod -R xutao oa

chgrp:更改文件的所属组

-R :递归(只能是大写的)

> chmod -R xutao oa

11、创建软链接(快捷方式)

基本语法:

ln -s <源文件或目录> <目标文件或目录>

特别注意:软链接的创建器源文件与目标文件的路径必须是全路径(从根路径开始), 如果为当前路径下的文件指定软连接, 则不必写全路径。

> cd /home

> ln -s data.txt /home/data.txt

命令: umask

上边也提到了默认情况下, 目录权限值为755, 普通文件权限值为644, 那么这个值是由谁规定呢? 追究其原因就涉及到了 'umask'.

umask语法: umask xxx (这里的xxx代表三个数字)

查看umask值只要输入 ‘umask’ 然后回车。

> # umask

0022

umask预设是0022, 其代表什么含义? 先看一下下面的规则:

1) 若用户建立为普通文件, 则预设 '没有可执行权限', 只有'rw'两个权限。最大为666 ('-rw-rw-rw-').

2) 若用户建立为目录, 则预设所有权限均开放, 即777 ('drwxrwxrwx').

umask数值代表的含义为, 上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。所以目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',

普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'.

umask的值是可以自定义的, 比如设定umask 为 002, 你再创建目录或者文件时,

默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.

[root@localhost ~]# umask 002

[root@localhost ~]# mkdir test2

[root@localhost ~]# ls -ld test2

drwxrwxr-x 2 root root 4096 5月 10 09:44 test2

[root@localhost ~]# touch test3

[root@localhost ~]# ls -l test3

-rw-rw-r-- 1 root root 0 5月 10 09:45 test3

可以看到创建的目录权限默认变为775, 而文件默认权限变为664. 然后再把umask改回来。

[root@localhost ~]# umask 022

[root@localhost ~]# touch test4

[root@localhost ~]# ls -l test4

-rw-r--r-- 1 root root 0 5月 10 09:45 test4

umask 可以在 /etc/bashrc 里面更改, 预设情况下, root的umask为022, 而一般使用者则为002, 因为可写的权限非常重要, 因此预设会去掉写权限。

递归修改目录权限为755, 文件权限为644

1.修改所有者:

> # chown -R root.root path(递归修改指定路径的所有文件为root用户组所有)

2.修改目录权限:

> # find path -type d -exec chmod 755 {} \;

3.修改文件权限:

> # find path -type f -exec chmod 644 {} \;

标签: #ubuntuvim创建文件命令