Linux常用命令详解(一)

Linux是目前服务器应用最广泛的系统,对于Linux的学习也是程序员必须具备的众多技能之一,先从Linux系统结构图来看,学习的整个过程大致围绕常用指令来学习:

Linux常用命令详解(一)_第1张图片

ls 常用命令

1.列出某个文件夹下的所有文件和目录详细资料

$ ls -l -R Directory_Path 或者
$ ls -lR Directory_Path

2.列出当前目录中以某个字母或字符串开头的文件信息。
如:

$ ls -l abc*

3.只列出文件下的子目录

$ ls -F /home |grep /$    //列出/home文件下的子目录
$ ls -l /home |grep "^d"  //列出/home文件下子目录详细情况

4.列出当前目录下的所有文件和详细信息,倒序排列

$ ls -lrt *

5.列出当前目录下所有档案及目录

$ ls -AF

6.计算当前目录下的文件数和目录数

$ ls -l * |grep "^-"|wc -l  //文件个数
$ ls -l * |grep "^d"|wc -l  //目录个数

7.列出当前目录下的所有文件包括隐藏文件的绝对路径。

$ find $PWD -maxdepth l | xargs ls -ld  //对目录不做递归
$ find $PWD | xargs ls -ld              //对目录递归

cd命令(切换当前目录至dirName)

1.进入系统根目录

$ cd /

2.使用cd命令进入当前用户主目录

$ cd

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

$ cd -

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

$ cd !$

pwd命令(查看当前目录的绝对路径)

1.默认命令

$ pwd

2.目录联接链接时,显示实际路径

$ pwd -p

mkdir(创建目录)

1.递归创建多个目录

$ mkdir -p test1/test11

2.创建权限为777的目录

$ mkdir -m 777 test

3.创建新目录并显示信息

$ mkdir -v test

rm(删除命令)

命令参数:

-f, –force 忽略不存在的文件,从不给出提示。
-i, –interactive 进行交互式删除
-r, -R, –recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, –verbose 详细显示进行的步骤
–help 显示此帮助信息并退出
–version 输出版本信息并退出

1.删除某个子目录及子目录中所有档案

$ rm -rf test

2.删除以 -f 开头的文件

$ rm -- -f

3.自定义回收站功能

$ myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
$ alias rm='myrm'

mv命令

命令参数:

-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

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

$ mv * ../

2.把当前目录下的子目录中的文件移动到另一个目录

$ mv test/*.txt test2

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

$ mv hello.txt -b helloworld.txt

cp命令

命令参数:

-a, –archive 等于-dR –preserve=all
–backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似–backup 但不接受参数
–copy-contents 在递归处理是复制特殊文件内容
-d 等于–no-dereference –preserve=links
-f, –force 如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)
-i, –interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, –link 链接文件而不复制
-L, –dereference 总是跟随符号链接
-n, –no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, –no-dereference 不跟随源文件中的符号链接
-p 等于–preserve=模式,所有权,时间戳
–preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等
-R, -r, –recursive 复制目录及目录内的所有项目

touch命令

命令参数:

-a 或–time=atime或–time=access或–time=use  只更改存取时间。
-c 或–no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。

1.更新两个文件的时间戳相同

$ touch -r test1.log test2.log

2.设定文件的时间戳

$ touch -t test.log

cat命令

cat主要有三大功能:

  • 一次显示整个文件:cat filename
  • 从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件
  • 将几个文件合并为一个文件:cat file1 file2 > file

命令参数:

-A, –show-all 等价于 -vET
-b, –number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, –show-ends 在每行结束处显示 $
-n, –number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, –squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, –show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, –show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

1.显示文件加上行号然后输出到另一个文件中

$ cat -n test.log test2.log

2.把log2015.log 和 log2016.log 的文件内容加上行号(空白不加),之后将内容附加到 log201609.log

$ cat -b log2015.log log2016.log log201609.log

3.把 log2015.log 的文件内容加上行号后输出到 log2016.log 这个文件中

$ cat -n log2015.log > log2016.log

4.使用 here doc 来生成文件

$ cat > log.txt <<EOF

nl命令

nl命令在Linux系统中用来计算文件中行号。nl可以将输出的文件内容自动的加上行号。其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。
命令参数:

-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。

命令功能:

nl 命令读取 File 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。 在输出中,nl 命令根据您在命令行中指定的标志来计算左边的行。 输入文本必须写在逻辑页中。每个逻辑页有头、主体和页脚节(可以有空节)。 除非使用 -p 标志,nl 命令在每个逻辑页开始的地方重新设置行号。 可以单独为头、主体和页脚节设置行计算标志(例如,头和页脚行可以被计算然而文本行不能)。

1.用nl列出文件中的内容

$ nl log.txt

2.列出文件中的内容,空本行也加上行号

$ nl -b a log.txt

3.行号前自动补0,统一输出格式

$ nl -b a -n rz log.txt       //默认显示六位数
$ nl -b a -n rz -w 3 log.txt  //指定输出格式为三位数显示

more命令

more命令功能类似cat,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

格式:

$ more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file...]

功能:
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是 more 可以按页来查看文件的内容,还支持直接跳转行等功能。

命令参数:

+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/string 在每个档案显示前搜寻该字串(string),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉

常用操作:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

实例:
1.从第几行开始显示文件内容

$ more +n filename    //n值自定义,可以是任意数字

2.从文件中查找第一次出现某个字符串的行,并从此处显示

$ more +/string filename   //如more +/hello hello.txt 从有hello的行开始显示

3.设置屏幕显示的行

$ more -n filename    //n值自定义,可以是任意整数

4.使用分页显示一个文件下的所有目录

$ ls -l | more -n     //使用管道分割设置每页显示行数

less命令

less 与 more 类似,less 在查看之前不会加载整个文件,可以随意浏览,more只能向前浏览。

命令参数:

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

head命令

1.显示文件的前几行

$ head -n num filename //如显示前10行,n就是10

2.显示除了最后n行之外的全部内容

$ head -n -num filename

3.显示文件前n个字节

$ head -c num filename  //如num=10,显示前10个字节

4.显示除最后n个字节以外的内容

$ head -c -num filename 

tail命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件。

命令参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, –quiet, –silent 从不输出给出文件名的首部
-s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

1.显示文件末尾内容

$ tail -n num filename

2.循环查看文件内容

$ tail -f filename

3.从第n行开始显示文件

$ tail -n +num filename

which命令

查看可执行文件的位置

命令参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p  与-n参数相同,但此处的包括了文件的路径。
-w  指定输出时栏位的宽度。
-V  显示版本信息

whereis命令

查看文件位置

命令参数:

-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。

你可能感兴趣的:(linux)