常见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
【注释】
嵌入式学习的第二天,迷迷糊糊,一天面对太多知识点,尤其一个一个的指令,每个指令添加不同的参数又具有新的功能,大山一般的指令压的很难受,问了学长,都说指令不要死记硬背,用得多了自然熟记于心,或许吧,起码我还没走到那一步,这条路太长太长。。。
今天整理了一些常用的指令,参考了别人的也有些自己整理的,希望自己有空能翻出来看看,哈哈。当然,还有很多指令,后续会更新。。。今天就到这了,洗澡,睡觉,明天继续重复。。。
- 常见Linux操作指令(上)
- linux常见操作指令
- linux环境下常见指令(上)
- svn 常见操作指令
- redis 常见指令操作
- Postgresql常见操作指令
- Linux常见的指令
- linux常见指令
- Linux常见指令
- Linux的常见指令
- linux 常见的指令
- Linux-常见指令
- linux的常见指令
- Linux Shell 常见指令整理
- Linux常见的指令集
- 01,Linux 常见指令集合
- linux常见指令(中)
- linux常见指令(下)
- EventBus3.0 使用详细介绍
- Python装饰器与面向切面编程
- MS10-058 利用代码
- 通过MapReduce把Hive表数据导入到HBase
- c语言字符串和c语言float的问题解答
- 常见Linux操作指令(上)
- 修改Maven的本地仓库地址
- AndroidStudio插件集合
- 统计学习方法----提升树
- MFC简单线程_两个线程比较
- 关于React-native里Android原生模块和组件的写法
- 图片的三级缓冲问题
- VC6.0 有的类在classWizard中无法显示的问题
- python学习例程1-helloword