0%

Linux常用命令

Linux目录结构

Linux目录结构

Linux文件属性

Linux文件属性

  • 第0位确定文件类型
    • 当为[ d ]则是目录
    • 当为[ - ]则是文件;
    • 若是[ l ]则表示为链接文档(link file);
    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
  • 第1-3位确定属主(该文件的所有者,创建该文件的用户)拥有该文件的权限。
  • 第4-6位确定属组(所有者的同组用户,创建该文件的用户所在的用户组)拥有该文件的权限。
  • 第7-9位确定其他用户(与创建该文件的用户所处用户组不同的用户)拥有该文件的权限。
  • 其中,第1、4、7位表示读权限,如果用”r”字符表示,则有读权限,如果用”-“字符表示,则没有读权限;
  • 第2、5、8位表示写权限,如果用”w”字符表示,则有写权限,如果用”-“字符表示没有写权限;
  • 第3、6、9位表示可执行权限,如果用”x”字符表示,则有执行权限,如果用”-“字符表示,则没有执行权限。

Linux文件属主和属组

1
2
3
4
5
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql
……

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

Linux 文件基本属性

防火墙

  • CentOS7默认安装了firewalld防火墙
  • 利用防火墙,我们可以允许或限制数据的传输

管理防火墙

  • 查看,启动,关闭,重启防火墙

    1
    2
    3
    4
    5
    6
    7
    8
    # 查看
    firewall-cmd --state
    # 启动
    service firewall start
    # 关闭
    service firewall stop
    # 重启
    service firewall restart
  • 端口管理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 打开443/TCP端口
    firewall-cmd --add-port=443/tcp

    # 永久打开3690/TCP端口
    firewall-cmd --permanent --add-port=3690/tcp

    # 永久打开端口好像需要reload一下,临时打开好像不用,如果用了reload临时打开的端口就失效了
    # 其它服务也可能是这样的,这个没有测试
    firewall-cmd --reload

    # 查看防火墙,添加的端口也可以看到
    firewall-cmd --list-all

    # 查看所有打开的端口:
    firewall-cmd --list-ports

    # 阻止通过tcp访问443 删除端口
    firewall-cmd --remove-port=443/tcp

文档型

文件相关命令(touch,cat,echo,rm,vi,cd)

硬件型

磁盘/进程/服务/网络

功能型

压缩/解压,下载,远程

发行版本信息 lsb_release

显示发行版本信息

补充说明

LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。

  • -v 显示版本信息。
  • -i 显示发行版的id。
  • -d 显示该发行版的描述信息。
  • -r 显示当前系统是发行版的具体版本号。
  • -c 发行版代号。
  • -a 显示上面的所有信息。
  • -h 显示帮助信息。

显示系统信息 uname

Linux uname命令用于显示系统信息。

uname可显示电脑以及操作系统的相关信息。

语法

1
uname [-amnrsv][--help][--version]

参数说明

  • -a或–all  显示全部的信息。
  • -m或–machine  显示电脑类型。
  • -n或-nodename  显示在网络上的主机名称。
  • -r或–release  显示操作系统的发行编号。
  • -s或–sysname  显示操作系统名称。
  • -v  显示操作系统的版本。
  • –help  显示帮助。
  • –version  显示版本信息。

实例

显示系统信息

1
2
# uname -a
Linux snail-hnlinux 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux

显示计算机类型

1
2
# uname -m
i686

显示计算机名

1
2
# uname -n
snail-hnlinux

显示操作系统发行编号

1
2
# uname -r
2.6.32-21-generic

显示操作系统名称

1
2
# uname -s
Linux

显示系统时间

1
2
# uname -v
#32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2014

磁盘使用情况 df

Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。

语法

1
df [选项]... [FILE]...
  • 文件-a, –all 包含所有的具有 0 Blocks 的文件系统
  • 文件–block-size={SIZE} 使用 {SIZE} 大小的 Blocks
  • 文件-h, –human-readable 使用人类可读的格式(预设值是不加这个选项的…)
  • 文件-H, –si 很像 -h, 但是用 1000 为单位而不是用 1024
  • 文件-i, –inodes 列出 inode 资讯,不列出已使用 block
  • 文件-k, –kilobytes 就像是 –block-size=1024
  • 文件-l, –local 限制列出的文件结构
  • 文件-m, –megabytes 就像 –block-size=1048576
  • 文件–no-sync 取得资讯前不 sync (预设值)
  • 文件-P, –portability 使用 POSIX 输出格式
  • 文件–sync 在取得资讯前 sync
  • 文件-t, –type=TYPE 限制列出文件系统的 TYPE
  • 文件-T, –print-type 显示文件系统的形式
  • 文件-x, –exclude-type=TYPE 限制列出文件系统不要显示 TYPE
  • 文件-v (忽略)
  • 文件–help 显示这个帮手并且离开
  • 文件–version 输出版本资讯并且离开

实例

显示文件系统的磁盘使用情况统计:

1
2
3
4
5
6
7
# df 
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 29640780 4320704 23814388 16% /
udev 1536756 4 1536752 1% /dev
tmpfs 617620 888 616732 1% /run
none 5120 0 5120 0% /run/lock
none 1544044 156 1543888 1% /run/shm

第一列指定文件系统的名称,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。

使用列指定使用的内存的百分比,而最后一栏”安装在”指定的文件系统的挂载点。

df也可以显示磁盘使用的文件系统信息:

1
2
3
# df test 
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 29640780 4320600 23814492 16% /

用一个-i选项的df命令的输出显示inode信息而非块使用量。

1
2
3
4
5
6
7
df -i 
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda6 1884160 261964 1622196 14% /
udev 212748 560 212188 1% /dev
tmpfs 216392 477 215915 1% /run
none 216392 3 216389 1% /run/lock
none 216392 8 216384 1% /run/shm

显示所有的信息:

1
2
3
4
5
6
7
8
# df --total 
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 29640780 4320720 23814372 16% /
udev 1536756 4 1536752 1% /dev
tmpfs 617620 892 616728 1% /run
none 5120 0 5120 0% /run/lock
none 1544044 156 1543888 1% /run/shm
total 33344320 4321772 27516860 14%

我们看到输出的末尾,包含一个额外的行,显示总的每一列。

-h选项,通过它可以产生可读的格式df命令的输出:

1
2
3
4
5
6
7
# df -h 
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 29G 4.2G 23G 16% /
udev 1.5G 4.0K 1.5G 1% /dev
tmpfs 604M 892K 603M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.5G 156K 1.5G 1% /run/shm

我们可以看到输出显示的数字形式的’G’(千兆字节),”M”(兆字节)和”K”(千字节)。

这使输出容易阅读和理解,从而使显示可读的。请注意,第二列的名称也发生了变化,为了使显示可读的”大小”。

显示 process信息 top

Linux top命令用于实时显示 process 的动态。

使用权限:所有使用者。

语法

1
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

参数说明

  • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
  • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
  • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
  • s : 安全模式,将交谈式指令取消, 避免潜在的危机
  • i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
  • n : 更新的次数,完成后将会退出 top
  • b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

实例

显示进程信息

1
# top

显示完整命令

1
# top -c

以批处理模式显示程序信息

1
# top -b

以累积模式显示程序信息

1
# top -S

设置信息更新次数

1
2
3
top -n 2

//表示更新两次后终止更新显示

设置信息更新时间

1
2
3
# top -d 3

//表示更新周期为3秒

显示指定的进程信息

1
2
3
# top -p 139

//显示进程号为139的进程信息,CPU、内存占用率等

显示更新十次后退出

1
top -n 10

使用者将不能利用交谈式指令来对行程下命令

1
top -s

将更新显示二次的结果输入到名称为 top.log 的档案里

1
top -n 2 -b < top.log

切换工作目录 cd

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,”~” 也表示为 home 目录 的意思,”.” 则是表示目前所在的目录,”..” 则表示目前目录位置的上一层目录。

语法

1
cd [dirName]
  • dirName:要切换的目标目录。

实例

跳到 /usr/bin/ :

1
cd /usr/bin

跳到自己的 home 目录 :

1
cd ~

跳到目前目录的上上两层 :

1
cd ../..

创建新目录 mkdir

Linux mkdir命令用于建立名称为 dirName 之子目录。

语法

1
mkdir [-p] dirName

参数说明

  • -p 确保目录名称存在,不存在的就建一个。

实例

在工作目录下,建立一个名为 AAA 的子目录 :

1
mkdir AAA

在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

1
mkdir -p BBB/Test

创建文件 touch

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

ls -l 可以显示档案的时间记录。

语法

1
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
  • 参数说明
  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 –no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 –file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • –no-create 不会建立新档案。
  • –help 列出指令格式。
  • –version 列出版本讯息。

实例

使用指令”touch”修改文件”testfile”的时间属性为当前系统时间,输入如下命令:

1
$ touch testfile                #修改文件的时间属性

首先,使用ls命令查看testfile文件的属性,如下所示:

1
2
3
$ ls -l testfile                #查看文件的时间属性  
#原来文件的修改时间为16:09
-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile

执行指令”touch”修改文件属性以后,并再次查看该文件的时间属性,如下所示:

1
2
3
4
$ touch testfile                #修改文件时间属性为当前系统时间  
$ ls -l testfile #查看文件的时间属性
#修改后文件的时间属性为当前系统时间
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile

使用指令”touch”时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件”file”,输入如下命令:

1
$ touch file            #创建一个名为“file”的新的空白文件

复制文件或目录 cp

Linux cp命令主要用于复制文件或目录。

语法

1
cp [options] source dest

1
cp [options] source... directory

参数说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

实例

使用指令”cp”将当前目录”test/”下的所有文件复制到新目录”newtest”下,输入如下命令:

1
$ cp –r test/ newtest

注意:用户使用该指令复制目录时,必须使用参数”-r”或者”-R”。

移动目录或文件夹 mv

Linux mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法

1
2
mv [options] source dest
mv [options] source... directory

参数说明

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

mv参数设置与运行结果

命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名
mv 目录名 文件名 出错

实例

将文件 aaa 更名为 bbb :

1
mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

1
mv info/ logs

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

1
$ mv /usr/student/*  .

vi/vim 的使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)插入模式(Insert mode)底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

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

以下是常用的几个命令:

  • i 切换到插入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件

按ESC键可随时退出底线命令模式。

Linux vi/vim

cat

命令:cat

cat 命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

1
cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

-n 或 –number:由 1 开始对所有输出的行数编号。

-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 –show-ends : 在每行结束处显示 $。

-T 或 –show-tabs: 将 TAB 字符显示为 ^I。

-e : 等价于 -vE。

-A, –show-all:等价于 -vET。

-e:等价于”-vE”选项;

-t:等价于”-vT”选项;

实例:

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

1
cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

1
cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

1
cat /dev/null > /etc/test.txt

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

1
cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

1
cat IMG_FILE > /dev/fd0

  • \1. OUTFILE 指输出的镜像文件名。
  • \2. IMG_FILE 指镜像文件。
  • \3. 若从镜像文件写回 device 时,device 容量需与相当。
  • \4. 通常用制作开机磁片。

Shell echo命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

1
echo string

您可以使用echo实现更复杂的输出格式控制。

1.显示普通字符串:

1
echo "It is a test"

这里的双引号完全可以省略,以下命令与上面实例效果一致:

1
echo It is a test

2.显示转义字符

1
echo "\"It is a test\""

结果将是:

1
"It is a test"

同样,双引号也可以省略

3.显示变量

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

1
2
3
#!/bin/sh
read name
echo "$name It is a test"

以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:

1
2
3
[root@www ~]# sh test.sh
OK #标准输入
OK It is a test #输出

4.显示换行

1
2
echo -e "OK! \n" # -e 开启转义
echo "It it a test"

输出结果:

1
2
3
OK!

It it a test

5.显示不换行

1
2
3
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"

输出结果:

1
OK! It is a test

6.显示结果定向至文件

1
echo "It is a test" > myfile

7.原样输出字符串,不进行转义或取变量(用单引号)

1
echo '$name\"'

输出结果:

1
$name\"

8.显示命令执行结果

1
echo `date`

结果将显示当前日期

1
Thu Jul 24 10:08:46 CST 2014

删除文件或者目录 rm

Linux rm命令用于删除一个文件或者目录。

语法

1
rm [options] name...

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

实例

删除文件可以直接使用rm命令,若删除目录则必须配合选项”-r”,例如:

1
2
3
4
5
6
# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y

删除当前目录下的所有文件及目录,命令行为:

1
rm  -r  *

文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

下载文件 wget

Linux系统下载文件工具

wget

语法

1
wget [参数] [URL地址]

备份,解压,压缩文件 tar

Linux tar命令用于备份文件。

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

语法

1
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]

参数

  • -A或–catenate 新增文件到已存在的备份文件。
  • -b<区块数目>或–blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
  • -B或–read-full-records 读取数据时重设区块大小。
  • -c或–create 建立新的备份文件。
  • -C<目的目录>或–directory=<目的目录> 切换到指定的目录。
  • -d或–diff或–compare 对比备份文件内和文件系统上的文件的差异。
  • -f<备份文件>或–file=<备份文件> 指定备份文件。
  • -F<Script文件>或–info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
  • -g或–listed-incremental 处理GNU格式的大量备份。
  • -G或–incremental 处理旧的GNU格式的大量备份。
  • -h或–dereference 不建立符号连接,直接复制该连接所指向的原始文件。
  • -i或–ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
  • -k或–keep-old-files 解开备份文件时,不覆盖已有的文件。
  • -K<文件>或–starting-file=<文件> 从指定的文件开始还原。
  • -l或–one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
  • -L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
  • -m或–modification-time 还原文件时,不变更文件的更改时间。
  • -M或–multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
  • -N<日期格式>或–newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
  • -o或–old-archive或–portability 将资料写入备份文件时使用V7格式。
  • -O或–stdout 把从备份文件里还原的文件输出到标准输出设备。
  • -p或–same-permissions 用原来的文件权限还原文件。
  • -P或–absolute-names 文件名使用绝对名称,不移除文件名称前的”/”号。
  • -r或–append 新增文件到已存在的备份文件的结尾部分。
  • -R或–block-number 列出每个信息在备份文件中的区块编号。
  • -s或–same-order 还原文件的顺序和备份文件内的存放顺序相同。
  • -S或–sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
  • -t或–list 列出备份文件的内容。
  • -T<范本文件>或–files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
  • -u或–update 仅置换较备份文件内的文件更新的文件。
  • -U或–unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
  • -v或–verbose 显示指令执行过程。
  • -V<卷册名称>或–label=<卷册名称> 建立使用指定的卷册名称的备份文件。
  • -w或–interactive 遭遇问题时先询问用户。
  • -W或–verify 写入备份文件后,确认文件正确无误。
  • -x或–extract或–get 从备份文件中还原文件。
  • -X<范本文件>或–exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
  • -z或–gzip或–ungzip 通过gzip指令处理备份文件。
  • -Z或–compress或–uncompress 通过compress指令处理备份文件。
  • -<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。
  • –after-date=<日期时间> 此参数的效果和指定”-N”参数相同。
  • –atime-preserve 不变更文件的存取时间。
  • –backup=<备份方式>或–backup 移除文件前先进行备份。
  • –checkpoint 读取备份文件时列出目录名称。
  • –concatenate 此参数的效果和指定”-A”参数相同。
  • –confirmation 此参数的效果和指定”-w”参数相同。
  • –delete 从备份文件中删除指定的文件。
  • –exclude=<范本样式> 排除符合范本样式的问家。
  • –group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。
  • –help 在线帮助。
  • –ignore-failed-read 忽略数据读取错误,不中断程序的执行。
  • –new-volume-script=<Script文件> 此参数的效果和指定”-F”参数相同。
  • –newer-mtime 只保存更改过的文件。
  • –no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。
  • –null 从null设备读取文件名称。
  • –numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。
  • –owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。
  • –posix 将数据写入备份文件时使用POSIX格式。
  • –preserve 此参数的效果和指定”-ps”参数相同。
  • –preserve-order 此参数的效果和指定”-A”参数相同。
  • –preserve-permissions 此参数的效果和指定”-p”参数相同。
  • –record-size=<区块数目> 此参数的效果和指定”-b”参数相同。
  • –recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。
  • –remove-files 文件加入备份文件后,就将其删除。
  • –rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。
  • –same-owner 尝试以相同的文件拥有者还原问家你。
  • –suffix=<备份字尾字符串> 移除文件前先行备份。
  • –totals 备份文件建立后,列出文件大小。
  • –use-compress-program=<执行指令> 通过指定的指令处理备份文件。
  • –version 显示版本信息。
  • –volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。

实例

压缩文件 非打包

1
2
3
# touch a.c       
# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
a.c

列出压缩文件内容

1
2
# tar -tzvf test.tar.gz 
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c

解压文件

1
# tar -xzvf test.tar.gz a.c

显示当前进程 状态 ps

Linux ps命令用于显示当前进程 (process) 的状态。

Linux ps

语法

1
ps [options] [--help]

参数

  • ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
  • -A 列出所有的行程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的行程
  • au(x) 输出格式 :
  • USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:
  • D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
  • R: 正在执行中
  • S: 静止状态
  • T: 暂停执行
  • Z: 不存在但暂时无法消除
  • W: 没有足够的记忆体分页可分配
  • <: 高优先序的行程
  • N: 低优先序的行程
  • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

终止进程 kill

Linux kill命令用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

语法

1
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数说明

  • -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

实例

杀死进程

1
# kill 12345

强制杀死进程

1
# kill -KILL 123456

发送SIGHUP信号,可以使用一下信号

1
# kill -HUP pid

彻底杀死进程

1
# kill -9 123456

显示信号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
2) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
3) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
4) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
5) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
6) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
7) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
8) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
9) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
10) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
11) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
12) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
13) SIGRTMAX-1 64) SIGRTMAX

杀死指定用户所有进程

1
2
#kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 
#kill -u hnlinux //方法二

控制系统服务 service

控制系统服务的实用工具

补充说明

service命令 是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

语法

1
service(选项)(参数)

选项

1
2
-h:显示帮助信息;
--status-all:显示所服务的状态。

参数

  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
  • 控制命令:系统服务脚本支持的控制命令。

实例

当修改了主机名、ip地址等信息时,经常需要把网络重启使之生效。

1
2
3
4
5
6
7
8
9
10
11
12
service network status
配置设备:
lo eth0
当前的活跃设备:
lo eth0

service network restart
正在关闭接口 eth0: [ 确定 ]
关闭环回接口: [ 确定 ]
设置网络参数: [ 确定 ]
弹出环回接口: [ 确定 ]
弹出界面 eth0: [ 确定 ]

重启mysql

1
2
3
4
5
6
service mysqld status
mysqld (pid 1638) 正在运行...

service mysqld restart
停止 MySQL: [ 确定 ]
启动 MySQL: [ 确定 ]

系统服务管理器指令 systemctl

系统服务管理器指令

补充说明

systemctl命令 是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

任务 旧指令 新指令
使某服务自动启动 chkconfig –level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig –level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig –list systemctl list-units –type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

实例

1.启动nfs服务

1
systemctl start nfs-server.service

2.设置开机自启动

1
systemctl enable nfs-server.service

3.停止开机自启动

1
systemctl disable nfs-server.service

4.查看服务当前状态

1
systemctl status nfs-server.service

5.重新启动某服务

1
systemctl restart nfs-server.service

6.查看所有已启动的服务

1
systemctl list -units --type=service

开启防火墙22端口

1
iptables -I INPUT -p tcp --dport 22 -j accept

如果仍然有问题,就可能是SELinux导致的

关闭SElinux:

修改/etc/selinux/config文件中的SELINUX=””为disabled,然后重启。

彻底关闭防火墙:

1
2
3
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

参考

-------------本文结束感谢您的阅读-------------