常见Linux操作指令(上)

来源:互联网 发布:顺时seo 海军帽 编辑:程序博客网 时间:2024/06/04 18:05

一丶文件目录操作命令

1.ls(列出目标目录中所有的子目录和文件。

常用参数:

-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件

-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。

-c  配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序

-C 每栏由上至下列出项目

–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一

-d, –directory 将目录象文件一样显示,而不是显示其下的文件。

-D, –dired 产生适合 Emacs 的 dired 模式使用的结果

-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效

-g 类似 -l,但不列出所有者

-G, –no-group 不列出任何有关组的信息

-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

–si 类似 -h,但文件大小取 1000 的次方而不是 1024

-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地

–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)

-i, –inode 印出每个文件的 inode 号

-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目

-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。

-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。

-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息

-m 所有项目以逗号分隔,并填满整行行宽

-o 类似 -l,显示文件的除组信息外的详细信息。   

-r, –reverse 依相反次序排列

-R, –recursive 同时列出所有子目录层

-s, –size 以块大小为单位列出所有文件的大小

-S 根据文件大小排序

2.grep(查找文件里符合条件的字符串)

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。转义
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

简单列子
注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号
$ grep‘test' d* -r  <==>grep test d* -r  即'test' <==> test
    显示所有以d开头的文件中包含 test的行。
$ grep‘test' aa bb cc -r
    显示在aa,bb,cc文件中匹配test的行。
$ grep‘[a-z]\{5\}' aa
    显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
默认情况下,'grep'只搜索当前目录。如果此目录下有许多子目录,明确要求搜索子目录:grep –r

 

3. find(查找文件并执行指定操作)

find指令在指定目录下查找文件。find指令还能够对查找到的文件执行指定的操作,这种功能是通过调用其他Linux指令来实现的。使用find指令时必须指定一个查找的起始目录,find指令将从指定目录向下递归地遍历其各个子目录,将满足查找条件的文件显示在标准输出设备(通常是显示终端)或者对这些文件采取指定的操作。

用法总结如下:
find pathname -options [-print -exec -ok]
pathname:查找路径
-option:主要选项如下:
-name:按照文档名称查找
-perm:按照文档权限查找
-prune:不在当前指定的路径查找。假如同时指定了-depth选项,则prune被忽略
-user:按照文档属主查找
-group:按照文档属组查找
-mtime -n +n:按照文档更改时间查找。-n 指距离现在时间n天以内;+n n天以外
-nogroup:查找无效属组文档
-nouser:查找无效属主文档
-newer file1 !file2:查找更改时间比file1新比file2旧的文档

-type:查找某一类型文档
b:块设备文档
d:目录
c:字符设备文档
P:管道文档
l:符号链接文档
f:普通文档

4.cd(进入目录)

1. 命令格式:

cd [目录名]

2. 命令功能:

切换当前目录至dirName

3. 常用范例

进入系统根目录

命令:

cd /  

说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了 

命令:

cd .. 或者 cd .. //

进入系统根目录可以使用“ cd .. ”一直退,就可以到达根目录 

命令:

cd ../.. //

跳转到指定目录

命令: 

cd /opt/soft

返回进入此目录之前所在的目录

命令:

cd –

把上个命令的参数作为cd参数使用。 

命令:

cd !$

5.pwd(查看当前工作目录)

一般情况下不带任何参数

如果目录是链接时:

格式:pwd -P  显示出实际路径,而非使用连接(link)路径。 

 pwd 命令查看默认工作目录的完整路径

 pwd 命令查看指定文件夹

目录连接链接时,pwd -P  显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

命令:

pwd –P

/bin/pwd [选项]

选项:

-L 目录连接链接时,输出连接路径

-P 输出物理路径

当前目录被删除了,而pwd命令仍然显示那个目录

 

6.mkdir(创建目录)

linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录

命令参数:

-m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 

-v, --verbose  每次创建新目录都显示信息

--help   显示此帮助信息并退出

--version  输出版本信息并退出

简单例子

创建一个空目录 

mkdir test1

递归创建多个目录 

mkdir -p test2/test22

创建权限为777的目录 

mkdir -m 777 test3

创建新目录都显示信息

mkdir -v test4

7.rm(删除文件和目录)

该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

命令参数

 -f, --force    忽略不存在的文件,从不给出提示。

-i, --interactive 进行交互式删除

 -r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。

-v, --verbose    详细显示进行的步骤

 --help     显示此帮助信息并退出

--version  输出版本信息并退出

简单例子

删除文件file,系统会先询问是否删除。 

rm 文件名

强行删除file,系统不再提示。 

rm -f log1.log

删除任何.log文件;删除前逐一询问确认 

rm -i *.log

 test1子目录及子目录中所有档案删除

rm -r test1

rm -rf test2命令会 test2 子目录及子目录中所有档案删除,并且不用一一确认

rm -rf  test2 

删除以 -f 开头的文件

rm -- -f

8.rmdir(删除空目录)

一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)

该命令从一个目录中删除一个或多个子目录项,必须具有对父目录的写权限。rmdir 不能删除非空目录

简单例子

rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除 

rmdir -p logs

9.mv(文件的剪切或重命名)

命令参数:

-b :若需覆盖文件,则覆盖前先行备份。 

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会更新(update)

 -t : --target-directory=DIRECTORY move allSOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

简单例子

1文件改名

mv  test.log  test1.txt

将文件test.log重命名为test1.txt

2移动文件

mv test1.txt  test3

将test1.txt文件移到目录test3中

3将文件log1.txt,log2.txt,log3.txt移动到目录test3中。 

mv log1.txt  log2.txt  log3.txt  test3

4将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

mv  -I  log1.txt  log2.txt

5将文件file1改名为file2,即使file2存在,也是直接覆盖掉。

mv  -f  log3.txt  log2.txt

6目录的移动

mv dir1  dir2 

如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。

7移动当前文件夹下的所有文件到上一级目录

mv * ../

8把当前目录的一个子目录里的文件移动到另一个子目录里

mv test3/*.txt  test5

9文件被覆盖前做简单备份,前面加参数-b

mv log1.txt  -b  log2.txt

10.cp(复制文件或目录)

一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。

简单例子

1复制单个文件到目标目录,文件在目标文件中不存在

cp log.log  test5

在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。

2目标文件存在时,会询问是否覆盖

cp log.log  test5

11.cat(查看文件内容)

cat命令的用途是连接文件或标准输入并打印

cat主要有三大功能:

1.一次显示整个文件:cat filename

2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件:cat file1 file2 > file

简单例子

1把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

cat -n log2012.log log>2013.log 

2把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 

cat -b log2012.log log2013.log>log.log

12.more(从前向后读取文件)

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能。

简单例子

1显示文件中从第3行起的内容

more  +3 log2012.log

2从文件中查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出 

 more  +/day3 log2012.log、

13.less(往前往后读取文件)

在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

简单例子

1查看文件

less  log2013.log

2查看命令历史使用记录并通过less分页显示

 history  |  less

3浏览多个文件 

less  log2013.log  log2014.log

14head(显示开头或结尾某个数量的文字区块)

head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

简单例子

1显示文件的前n行

head -n 5 log2014.log

2显示文件前n个字节

head -c 20 log2014.log

3显示文件前n个字节

head -c 20 log2014.log

4显示文件前n个字节

head -c 20 log2014.log

15tail(显示指定文件末尾内容)

不指定文件时,作为输入信息进行处理。常用查看日志文件。

简单例题

1显示文件最后5行内容

tail -n 5 log2014.log

2循环查看文件内容

tail -f test.log

3从第5行开始显示文件

tail -n +5 log2014.log

 

 

【注释】

嵌入式学习的第二天,迷迷糊糊,一天面对太多知识点,尤其一个一个的指令,每个指令添加不同的参数又具有新的功能,大山一般的指令压的很难受,问了学长,都说指令不要死记硬背,用得多了自然熟记于心,或许吧,起码我还没走到那一步,这条路太长太长。。。

今天整理了一些常用的指令,参考了别人的也有些自己整理的,希望自己有空能翻出来看看,哈哈。当然,还有很多指令,后续会更新。。。今天就到这了,洗澡,睡觉,明天继续重复。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0