linux指令
文件管理
查看文件
- ls 查看当前目录下的所有文件;
- ls -l 可以查看更详细的内容;
promote:linux cold$ ls -l
total 8
-rw-r--r-- 1 cold staff 27 11 3 22:00 t1.txt
drwxr-xr-x 2 cold staff 68 11 3 22:46 未命名文件夹
第一列:文件类型。
第二列:表示文件个数。如果是文件,那么就是1;如果是目录,那么就是该目录中文件的数目。
第三列:文件的所有者,即文件的创建者。
第四列:文件所有者所在的用户组。在Linux中,每个用户都隶属于一个用户组。
第五列:文件大小(以字节计)。
第六列:文件被创建或上次被修改的时间。
第七列:文件名或目录名。
注意:每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",所以对于一个空目录,第二列应该为 2。
通过 ls -l 列出的文件,每一行都是以 a、d、- 或 l 开头,这些字符表示文件类型:
前缀 描述
- 普通文件。如文本文件、二进制可执行文件、源代码等。
b 块设备文件。硬盘可以使用块设备文件。
c 字符设备文件。硬盘也可以使用字符设备文件。
d 目录文件。目录可以包含文件和其他目录。
l 符号链接(软链接)。可以链接任何普通文件,类似于 Windows 中的快捷方式。
p 具名管道。管道是进程间的一种通信机制。
s 用于进程间通信的套接字。
- ls .txt 过滤文件;
\ 可以匹配 0 个或多个任意字符;
? 匹配一个字符。 - ls -a 查看所有文件(包括隐藏文件)
promote:linux cold$ ls -a
. .DS_Store 未命名文件夹
.. t1.txt
创建文件
- vi filename 创建一个文件;
使用 vi 指令打开文件, filename 文件不存在则新建文件;
按i进入编辑模式, esc退出编辑模式;
:q 退出不保存; :qw 保存退出;
查看文件
- cat filename 查看文件;
- cat -b filename 查看文件, 且带有行号;
统计单词数目
- wc(选项)(参数) 统计文件的行数、单词数和字符数
选项:
- -c: 只显示Bytes数;
- -l:只显示列数;
- -w:只显示字数。
参数为文件名, 未指定时就会从标准输入流读取数据;
promote:linux cold$ wc t1.txt
4 6 27 t1.txt
第一列:文件的总行数
第二列:单词数目
第三列:文件的字节数,即文件的大小
第四列:文件名
复制文件
- cp source_file destination_file
cp t1.txt t2.txt
重命名文件
- mv old_file new_file
promote:linux cold$ mv t2.txt newname.txt
promote:linux cold$ ls -l
total 16
-rw-r--r-- 1 cold staff 27 11 3 23:04 newname.txt
-rw-r--r-- 1 cold staff 27 11 3 22:00 t1.txt
drwxr-xr-x 2 cold staff 68 11 3 22:46 未命名文件夹
删除文件
- rm filename
promote:linux cold$ rm t1.txt
promote:linux cold$ ls -a
. .DS_Store 未命名文件夹
.. newname.txt
目录变换
路径里不带/的是相对路径; 有的是绝对路径;
- cd ~ 打开当前用户的用户主目录
- cd ~username 打开指定用户名的用户目录
- cd - 打开上一个操作的目录
- cd .. 打开上一级目录
目录操作
- pwd 查看当前所在的目录路径;
- ls 目录路径 查看指定路径下的文件列表
- mkdir 路径 创建目录
- mkdir -p 路径 创建目录(上层目录不存在则自动创建)
- rmdir dirname 删除空目录
文件权限
ls -l 查看的第一列就包含了文件权限信息;
promote:linux cold$ ls -l
total 8
drwxr-xr-x 4 cold staff 136 11 3 23:22 Dir
-rw-r--r-- 1 cold staff 27 11 3 23:04 newname.txt
drwxr-xr-x 2 cold staff 68 11 3 22:46 未命名文件夹
第一列的字符可以分为三组,每一组有三个,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):
第一组字符(2-4)表示文件所有者的权限,-rwxr-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。
第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。
第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。
更改权限
chmod 043 testfile
数字 | 说明 | 权限 |
---|---|---|
0 | 没有任何权限 | --- |
1 | 执行权限 | --x |
2 | 写入权限 | -w- |
3 | 执行权限和写入权限:1 (执行) + 2 (写入) = 3 | -wx |
4 | 读取权限 | r-- |
5 | 读取和执行权限:4 (读取) + 1 (执行) = 5 | r-x |
6 | 读取和写入权限:4 (读取) + 2 (写入) = 6 | rw- |
7 | 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 | rwx |
find查找文件
find [path…] [expression]
path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
expression:expression可以分为——“-options [-print -exec -ok …]”
-options,指定find命令的常用选项,下节详细介绍
-print,find命令将匹配的文件输出到标准输出
-exec,find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和;之间的空格
find ./ -size 0 -exec rm {} ; 删除文件大小为零的文件 (还可以以这样做:rm -i find ./ -size 0 或 find ./ -size 0 | xargs rm -f &)
为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中:find . -type f -exec ls -l { } ;
在/logs目录中查找更改时间在5日以前的文件并删除它们:find /logs -type f -mtime +5 -exec rm { } ;
-ok,和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
find . -name “*.conf” -mtime +5 -ok rm { } ; 在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示
路径: .表示当前目录, /表示根目录
过滤条件:
- -name 过滤名字 // find . -name "*.txt"
- -perm 权限 //find . -perm 755
- -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 //find . -size -2048c 小于2048字节, +号表示大于, 没+或-表示等于;
- -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
- -mtime -n +n 文件的更改时间, – n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。// find / -mtime -5
- -type 文件类型 // find . -type d
xargs
配合find使用, 将结果每一个执行, 在一个进程里;
find . -size -2048c| xargs echo “” >./core.log