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:只显示字数。

来自: http://man.linuxde.net/wc

参数为文件名, 未指定时就会从标准输入流读取数据;

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

results matching ""

    No results matching ""