五、 Linux基本指令
5.1 Linux指令概述
Linux指令:在Linux终端(命令行)中输入的内容称之为指令。
完整的Linux指令标准格式:#指令主体 【选项】【操作对象】 其中#表示身份识别符,选项可以多个,操作对象也可以是多个
例如:去买一瓶水和一包纸
其中”买东西“是指令的主体,买的水和纸是操作的对象,买的水和纸的品牌是操作的选项。
5.2 常用基础指令
5.2.1 ls指令
ls(list),语法:
-
#ls 含义:列出当前工作路径下的所有文件和文件夹的名称
-
#ls 路径 含义:列出指定路径下的所有文件和文件夹的名称
-
#ls -l 路径 选项含义:表示以详细列表形式进行展示
-
#ls -la 路径 选项含义:表示显示所有的文件/文件夹(包含隐藏文件/文件夹)
第一个字母d表示文档文件,-表示文件
5.2.2 pwd指令
#pwd(print working directory) 打印当前工作目录
5.2.3 cd指令
#cd(change directory,改变目录)用于切换当前的工作目录
语法:#cd 路径 切换工作目录到指定路径
例如:
-
切换到usr下的local路径,使用绝对路径:#cd /usr/local
-
再从目录local切换到home下,可以使用绝对路径和相对路径:
-
用相对路径,#cd ../../home/linux123
-
用绝对路径,#cd /home
-
5.2.4 mkdir指令
#mkdir(make directory,创建目录),语法:
-
#mkdir 路径(可以是文件夹名称,也可以是一个完整的路径)
-
#mkdir -p 路径 ---路径中有不存在的目录名的时候,自动创建该目录
-
#mkdir 路径1 路径2 路径3 ----表示一次性创建多个目录
5.2.5 touch指令
#touch 作用是创建文件
语法:#touch 文件路径 --路径可以是直接的文件名也可以是路径,支持多个路径
5.2.6 cp指令
#cp,copy复制,作用是复制文件到指定的位置,语法:
-
#cp 被复制的文件路径 文件要被复制到的路径 ----复制文件
-
#cp -r 被复制的文件夹路径 文件夹要被复制到的路径 ------复制文件夹,-r表示递归
5.2.7 mv指令
#mv,move移动,移动文件到新的位置,语法与#cp类似
5.2.8 rm指令
#rm,remove移除、删除,移除/删除文件。
语法:#rm 选项 需要删除的文件/文件夹路径
选项:-f表示强制(force),不会询问是否删除,强制删除文件;-r表示递归;路径中可以使用*作为通配符。
5.2.8 vim指令(centos7用的是yvi)
#vim,可以看作是一个文本编辑器,用来打开文件。
语法:
-
#vim 文件的路径 ---打开一个文件,也可以是不存在的文件。
-
退出打开的文件:在打开文件后,没有按下其他命令时,按下shift+英文冒号并输入q,按下回车即可。即:q+enter
5.2.9 输出重定向
将终端中显示的结果保存到文件中。
语法:
-
#正常的指令 > 文件的路径 ---表示覆盖输出,覆盖掉原文件内容
-
#正常的指令 > 文件的路径 ----表示追加输出,在原始文件末尾添加
-
注意,文件不存在时自动新建文件
-
例如 ls -la > test.txt --把当前路径下所有的文件名输出并保存到test.txt中
5.2.10 cat指令
用法1:查看文件,无法编辑。类似于vim但是无法编辑。
用法2:配合输出重定向合并文件, 语法:#cat 文件路径1 文件路径2 文件路径n > 合并后的文件路径
5.3 进阶指令
5.3.1 df指令
查看磁盘空间 -h 自动显示可读性高的形式展示大小
5.3.2 free指令
查看内存使用情况 -m 表示以mb为单位查看
其中真实可用内存为917mb。
Swap:用于临时内存,当系统真实内存不够用时可使用磁盘空间来充当内存。
5.3.3 head指令
查看一个文件前n行 如果n不指定,默认10行。
语法:#head -n 文件路径
5.3.4 tail指令
用法1:查看一个文件的末n行,如果n不指定,默认显示后10行。
语法:#tail -n 文件的路径 ------其中n为数字
用法2:查看一个文件的动态变化
语法:#tail -f 文件的路径 -----------变化的内容不能是用户手动添加的
5.3.5 less指令
查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键、上下方向键)查看更多
语法:#less 文件路径
5.3.6 wc指令
统计文件内容信息(行数、单词数、字节数)
语法:#wc -lwc 需要统计的文件路径 -l表示lines,行数;-w表示words,单词数(空格区分单词);-c表示bytes,字节数。
5.3.7 date指令
Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
时间方面:
-
% : 印出 %
-
%n : 下一行
-
%t : 跳格
-
%H : 小时(00..23)
-
%I : 小时(01..12)
-
%k : 小时(0..23)
-
%l : 小时(1..12)
-
%M : 分钟(00..59)
-
%p : 显示本地 AM 或 PM
-
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
-
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
-
%S : 秒(00..61)
-
%T : 直接显示时间 (24 小时制)
-
%X : 相当于 %H:%M:%S
-
%Z : 显示时区
日期方面:
-
%a : 星期几 (Sun..Sat)
-
%A : 星期几 (Sunday..Saturday)
-
%b : 月份 (Jan..Dec)
-
%B : 月份 (January..December)
-
%c : 直接显示日期与时间
-
%d : 日 (01..31)
-
%D : 直接显示日期 (mm/dd/yy)
-
%h : 同 %b
-
%j : 一年中的第几天 (001..366)
-
%m : 月份 (01..12)
-
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
-
%w : 一周中的第几天 (0..6)
-
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
-
%x : 直接显示日期 (mm/dd/yy)
-
%y : 年份的最后两位数字 (00.99)
-
%Y : 完整年份 (0000..9999)
语法:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
参数说明:
-
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
-
--help : 显示辅助讯息
-
-s datestr : 将系统时间设为 datestr 中所设定的时间
-
-u : 显示目前的格林威治时间
-
--version : 显示版本编号
5.3.8 cal指令
用来操作日历
语法:
-
#cal 输出当前月份日历
-
#cal -1 输出当前月份日历
-
#cal -3 输出上月+本月+下月的日历
-
#cal -y 年份 输出x年的日历 -s选项,从周日开始,-m选项,从周一开始。
5.3.9 clear/ctrl +L指令
清除终端中已经存在的命令和信息。
语法:clear 或者 ctrl+L
需要注意的是并不是真正清除,而是隐藏到了最上方。
5.3.10 管道
管道符:|
作用:一般用于过滤、特殊、扩展处理等
语法:不能单独使用们需要配合其他指令。
例:输出目录下文件夹名称包含的“p”的文件夹名称 如果是文件和文件夹则不带/
案例解析:'|'前面的命令有个输出结果,'|'后面的指令需要先输入,然后进行过滤,最后再输出。其中grep指令主要用于过滤。
通过上述解析可以得出:#cat 文件路径|less 等价于 #less 文件路径
问题:统计某个目录下的文件总个数?
答案:#ls /|wc -l 不包含子目录中的文件。
5.4 高级指令
5.4.1 id指令
Linux id命令用于显示用户的ID,以及所属群组的ID。
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。语法:
id [-gGnru][--help][--version][用户名称]
参数说明:
-
-g或--group 显示用户所属群组的ID。
-
-G或--groups 显示用户所属附加群组的ID。
-
-n或--name 显示用户,所属群组或附加群组的名称。
-
-r或--real 显示实际ID。
-
-u或--user 显示用户ID。
-
-help 显示帮助。
-
-version 显示版本信息。
5.4.2 whoami指令
Linux whoami命令用于显示自身用户名称。
显示自身的用户名称,本指令相当于执行"id -un"指令。语法:
whoami [--help][--version]
参数说明:
-
--help 在线帮助。
-
--version 显示版本信息。
5.4.3 ps指令
Linux ps命令用于显示当前进程 (process) 的状态。语法:
ps [options] [--help]
参数:
-
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-
-A 列出所有的进程
-
-e 列出所有的进程
-
-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:所执行的指令
5.4.4 top指令
Linux top命令用于实时显示 process 的动态。
使用权限:所有使用者。
语法
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 的结果输出到档案内
5.4.5 du指令
Linux du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。
语法
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
参数说明:
-
-a或-all 显示目录中个别文件的大小。
-
-b或-bytes 显示目录或文件大小时,以byte为单位。
-
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-
-D或--dereference-args 显示指定符号连接的源文件大小。
-
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-
-k或--kilobytes 以1024 bytes为单位。
-
-l或--count-links 重复计算硬件连接的文件。
-
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-
-m或--megabytes 以1MB为单位。
-
-s或--summarize 仅显示总计。
-
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
-
--exclude=<目录或文件> 略过指定的目录或文件。
-
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
-
--help 显示帮助。
-
--version 显示版本信息。
5.4.6 find指令
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法
find path -option [ -print ] [ -exec -ok command ] {} ;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天过读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天过修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 文件类型是 c 的文件。
-
d: 目录
-
c: 字型装置文件
-
b: 区块装置文件
-
p: 具名贮列
-
f: 一般文件
-
l: 符号连结
-
s: socket
-
-pid n : process id 是 n 的文件
-
你可以使用 ( ) 将运算式分隔,并使用下列运算。
-
exp1 -and exp2
-
! expr
-
-not expr
-
exp1 -or exp2
-
exp1, exp2
5.4.7 service指令
用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
centos7语法:#systemctl start 服务名
5.4.8 kill指令
Linux kill命令用于删除执行中的程序或工作。
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
语法
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
参数说明:
-
-l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
-
-s <信息名称或编号> 指定要送出的信息。
-
[程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
5.4.9 ifconfig指令
Linux ifconfig命令用于显示或设置网络设备。
ifconfig可设置网络设备的状态,或是显示目前的设置。
语法
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
参数说明:
-
add<地址> 设置网络设备IPv6的IP地址。
-
del<地址> 删除网络设备IPv6的IP地址。
-
down 关闭指定的网络设备。
-
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
-
io_addr<I/O地址> 设置网络设备的I/O地址。
-
irq<IRQ地址> 设置网络设备的IRQ。
-
media<网络媒介类型> 设置网络设备的媒介类型。
-
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
-
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
-
mtu<字节> 设置网络设备的MTU。
-
netmask<子网掩码> 设置网络设备的子网掩码。
-
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
-
up 启动指定的网络设备。
-
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-
-promisc 关闭或启动指定网络设备的promiscuous模式。
-
[IP地址] 指定网络设备的IP地址。
-
[网络设备] 指定网络设备的名称。