linux 命令集锦

Posted 刘文巾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 命令集锦相关的知识,希望对你有一定的参考价值。

1 linux系统目录结构

ls /

linux根目录树状结构

bin

linux经常使用的命令

boot

启动linux时使用的一些核心文件(包括一些连接文件&镜像文件)

dev

linux的外部设备

home

用户主目录

lib

库,系统中基本的动态链接共享库,作用类似于xindows中的dll。

几乎所有的应用程序都需要用到这些库

lost+found

一般情况下, 该目录为空,当系统非法关机后,里面就存放了一些文件

medialinux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

2 linux文件基本属性

使用ll 或者 ls-l命令,可以显示一个文件的属性&文件所属的用户&组

第一个字符表示文件的属性

d

目录

-

文件

l

连接文档

接下来的字符中,三个为一组,且均为rwx的参数组合(如果没有权限,那么出现-)从前到后分别是用户自己、用户所在的组,以及其他用户的权限

r

可读

w

可写

x

可执行

2.2 更改文件属性的命令

2.2.1 chgrp

更改文件属组 (change group

chgrp [-R] 属组名 文件名  (-R表示递归)

2.2.2 chown

更改文件属主,也可以同时更改文件属组(change owner)

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

2.2.3 chmod

更改文件的9个属性(change mode)

第一种方法:用数字进行设置 每三位一组,有这个权限就设置为1,没有这个人权限设置为0,三位三位的二进制转化成十进制的数


第二种方法:符号类型改变文件权限

chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限(用户本身可读可写可执行、同组用户可读可执行、其他用户可读)

chmod  a-x test1   // 修改 test1 权限 (所有的权限都除去可执行)

3 linux文件与目录管理

3.1 绝对路径与相对路径

  • 绝对路径:
    路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
  • 相对路径:
    路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。

3.2 处理目录的常用命令

3.2.1 ls

列出目录

3.2.1.1 -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

3.2.1.2 -d :仅列出目录本身,而不是列出目录内的文件数据(常用)

3.2.1.3 -l :长数据串列出,包含文件的属性与权限等等数据;(常用) 【加-h会更方便理解】

3.2.2 cd

切换目录

cd - 进入刚才的目录

3.2.3 pwd 

显示目前所在目录

3.2.4 mkdir

创建新目录

3.2.4.1 -m :配置文件的权限。直接配置,不需要考虑默认权限

3.2.4.2  -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

3.2.5 rmdir

删除空的目录

  • -p :连同上一级『空的』目录也一起删除

rmdir 仅能删除空的目录,我们可以使用 rm 命令来删除非空目录。

3.2.6 cp

复制

-r 递归

可以单独选定几个文件, cp 会默认最后一个选项是要复制去的文件夹. 比如下面把 file1copy 和 file2 复制去 folder1/

3.2.7 rm

移除文件 or 文件目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除

3.2.8 mv

移动文件 or 移动文件目录 or 文件重命名

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作

3.2.8 touch

新建文件

3.3 文件内容查看

3.3.1 cat

从第一行开始显示文件内容

3.3.1.1 -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

3.3.1.2 -b、-n :列出行号(区别是前者中间的空格不算行号里面,后者中间的空格也算行号)

3.3.1.3 -E :将结尾的断行字节 $ 显示出来;

3.3.1.4 -T :将 [tab] 按键以 ^I 显示出来;

3.3.1.5 -v :列出一些看不出来的特殊字符

3.3.2 tac

cat倒着写,所以也是倒着读

3.3.3 more

一页一页翻动

在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 空白键 (space):代表向下翻一页;
  • Enter         :代表向下翻『一行』;
  • /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f            :立刻显示出档名以及目前显示的行数;
  • q             :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线pipeline无用。

3.3.4 less

比more更强大的一页一页翻动

less运行时可以输入的命令有:

  • 空白键    :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup]  :向上翻动一页;
  • /字串     :向下搜寻『字串』的功能;
  • ?字串     :向上搜寻『字串』的功能;
  • n         :重复前一个搜寻 (与 / 或 ? 有关)
  • N         :反向的重复前一个搜寻 (与 / 或 ? 有关)
  • q         :离开 less 这个程序;

3.3.5 head

显示文件前面几行

默认的情况中,显示前面 10 行

head [-n number] 文件

3.3.6 tail

显示文件后面几行

默认的情况中,显示最后面 10 行

tail [-n number] 文件

3.3.7 nl

 显示行号

选项与参数:

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;

  • -n rn :行号在自己栏位的最右方显示,且不加 0 ;

  • -n rz :行号在自己栏位的最右方显示,且加 0 ;

3.4  内容重定向

3.5 查看磁盘空间

3.5.1  df

df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

Filesystem:文件系统

Size: 分区大小

Used: 已使用容量

Avail: 还可以使用的容量

Use%: 已用百分比

Mounted on: 挂载点 

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

  • -k :以 KBytes 的容量显示各文件系统;

  • -m :以 MBytes 的容量显示各文件系统;

  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

  • -H :以 M=1000K 取代 M=1024K 的进位方式;

  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

  • -i :不用硬盘容量,而以 inode 的数量来显示(这里因为是windows系统,所以没有显示)

3.5.2 du

du 的英文原义为 disk usage,含义为显示磁盘空间的使用情况,用于查看当前目录的总大小。

如果是文件夹的话,会先列出文件夹第一层目录下每个文件的大小,然后是这个文件夹的总大小(如果要是文件夹的所有信息的话 du -a

-h:以K,M,G为单位,提高信息的可读性。

-s:列出总量而已,而不列出每个各别的目录占用容量;

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

4 vim

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

4.1 vim的模式

vim一共三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)。 

4.1.1 命令模式 command mode

       用户刚刚启动vim的时候,进入的命令模式

       此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

       命令模式常用命令

i

切换到输入模式,以输入字符

x

删除当前光标所在处的字符

切换到底线命令模式

数字+上/下/左/右

上下左右移动数字格

ctrl+d

屏幕向下移动半页

ctrl+u

屏幕向上移动半页

数字+空格

向后面移动数字个空格的字符距离

数字+enter

向下移动n行

移动到这一行的最前面

$

移动到这一行的最后面

H(大写)

移动到这个屏幕最上方一行的第一个字符

M(大写)

移动到这个屏幕中央的一行的第一个字符

L(大写)

移动到这个屏幕最下方一行的第一个字符

G(大写)

移动到这个文档的最后一行

数字+G

移动到这个文档的第数字行

gg

移动到这个文档的第一行

/word

向光标之下寻找一个名称为“word”的字符串

?word

向光标之上寻找一个名称为“word”的字符串

n

这个 n 是英文按键。代表重复前一个搜寻的动作。

 

举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!

N

这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。

4.1.2  输入模式 insert mode

          输入模式常用命令

字符

输入字符

enter

换行

退格键

删除前一个字符

del

删除后一个字符

方向键

上下左右

home/end

移动光标到行首/行尾

page up/page down

上下翻页

insert

切换为输入/替换模式

以上的这些和一般的word是一样的

esc

退出输入模式,切换为命令模式

4.1.3 底线命令模式 last line mode

          底线命令模式常用命令

:q

退出程序

:w

保存文件

:wq

储存后离开

:w [filename]

将编辑的数据存储为另一个档案

: n1,n2 w[filename]

将n1~n2行的内容存储为filename

esc

退出底线命令模式,进入命令模式

:q!

强制离开,不存储档案

4.2 vim 三种模式的切换(总结)

4.3 一般模式(命令模式)可用的光标移动、复制粘贴、搜索替换

4.3.1 移动光标

h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] + [u]屏幕『向上』移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n<space>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个文档的最后一行(常用)
nGn 为数字。移动到这个文档的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个档案的第一行,相当于 1G  (常用)
n<Enter>n 为数字。光标向下移动 n 行(常用)

4.3.2 搜索替换

/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/g

n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2

举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
『:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/g 

或 :%s/word1/word2/g

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用)

:1,$s/word1/word2/gc 

或 :%s/word1/word2/gc

从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 。且在取代前显示提示字符给用户确认 (confirm) 是否需要取代(常用)

4.3.3 删除

x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 那么命令就为『10x』。
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除下面的 20 行 (常用)
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符

4.3.4 复制粘贴

yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G复制游标所在行到第一行的所有数据
yG复制游标所在行到最后一行的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, P

p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行。

举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。

但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)

J将光标所在行与下一行的数据结合成同一行

4.3.5 复原和撤销

u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令。一个是复原,另一个则是重做一次~ 
.

这就是小数点。

意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

4.4 一般模式(命令模式)切换到编辑模式(输入模式)的可用的按钮说明

i, I

进入输入模式(Insert mode):
i 为『从目前光标所在处输入』,

I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)

a, A

进入输入模式(Insert mode):
a 为『从目前光标所在的下一个字符处开始输入』,

A 为『从光标所在行的最后一个字符处开始输入』。(常用)

o, O

进入输入模式(Insert mode):
这是英文字母 o 的大小写。

o 为在目前光标所在的下一行处输入新的一行;

O 为在目前光标所在的上一行处输入新的一。!(常用)

r, R

进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次;

R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)

上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 
[Esc]退出编辑模式,回到一般模式中(常用)

4.5 一般模式(命令模式)切换到指令行模式(底线命令模式)的可用的按钮说明

w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是取决于对该档案的权限
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ大写的 Z 。如果修改过,保存当前文件,然后退出!效果等同于wq(保存并退出)
ZQ不保存,强制退出。效果等同于 :q!。
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 行的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

4.5.1  vim 环境的变更

:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号

5  进程类

5.1 查看程序xxx是否在执行

ps -ef|grep xxx

5.2 终止进程

kill -9 PID

-9表示强迫进程立即停止

5.2.1 批量终止进程

我现在运行了一堆 cmaes_p_delta,用’ps -ef|grep cmaes_p_delta',命令行上显示如下(其实不止。。。我失误了建了四百多个,电脑直接要崩了233):

 

ps -efww|grep cmaes_p_delta|cut -c 9-15|xargs kill -9

用上面这一行可以去除所有cmaes_p_delta产生的进程

—>“ps -efww”是查看所有进程的命令。这时检索出的进程将作为下一条命令“grep“的输入。

—>“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

—>“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。

—> “kill -9”会强行杀掉指定进程,这样就成功清除了同名进程。

6 后台运行

& 放在命令后面表示设置此进程为后台进程。

默认情况下,进程是前台进程,这时此进程(命令执行相当于本质是开启一个进程)就把Shell给占据了,我们无法进行其他操作。

对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。

7 压缩解压缩文档

7.1 压缩成tar.gz形式

tar -zcvf a.tar.gz b
#将文件b压缩成a.tar.gz的形式

7.2 解压缩tar.gz

tar zxvf a.tar.gz

7.3  压缩成tar.bz2格式的压缩包

tar -jcvf a.tar.bz2 b
#把b打包成a.tar.bz2的格式

7.4 解压tar.bz2格式

tar jxvf a.tar.bz2

7.5 压缩成zip格式

zip -q -r a.zip b

7.6 解压zip格式

unzip a.zip

 

以上是关于linux 命令集锦的主要内容,如果未能解决你的问题,请参考以下文章

常用 linux 命令集锦

Linux命令集锦:ansible命令

linux 命令集锦

必看,Linux系统及资源命令集锦!

Linux常用命令集锦

Linux命令集锦:tmux命令