1·Linux命令
用于实现某一类功能的指令或程序;命令的执行依赖于解释器程序shell,解释器程序默认路径:/bin/bash ,也就是内部命令的默认路径。
命令分类:内部命令(linux系统自带的shell解释器里面的命令)和外部命令(安装普通应用程序而带来的命令)
取别名:alias
用法:alias 别名 = ‘旧名’
如 aliasmyls = ‘ls –alh’
取消别名:unalias 别名 如:unaliasmyls
2·Linux命令的格式
命令字 [选项] [参数]
选项:用于调节命令的具体功能(选项的个数可以是多个,但是要用空格隔开;短格式选项用单个杠,长格式选项用双杠,如:-l -a -f --set --date --help;短格式一般合起来使用,如-alh;有的选项功能相同但是既有长格式又有短格式,可以混用)
参数:命令操作的对象,如文件、目录(路径)名、用户名等。(参数也可以是多个)
(跟dos命令格式里关于选项、参数的说法对调过来而已,dos里选项的意思等价于Linux里的参数)
3·命令行编辑的几个辅助操作
Tab键:自动补齐(重点)
反斜杠\:强制换行(重点)(用于一次输入的命令过长时,注意使用时与命令之间要有空格)
快捷键Ctrl+U:快速删除光标之前的所有字符
快捷键Ctrl+K:快速删除光标处到行尾的所有字符
快捷键Ctrl+L:清屏(等价于clear命令)
快捷键Ctrl+C:取消当前命令的编辑或执行(重点)
4·获得命令帮助:4种
① help 内部命令:查看bash内部命令的帮助信息,例子:help cd
② 命令名 --help(两个-):适用于大多数外部命令,例子:shutdown --help
③用man 命令
阅读手册页:翻行、翻页、退出阅读环境、查找内容。
例子:man shutdown(man中是全屏查找,可用方向键和翻页键Pageup、pagedown进行操作,(文末有出现冒号时)输入“/字符”,可以定位查询到包含该字符的文件位置,按键n和N可以定位切换要查找的是哪一个,按键“q”可以退出)
④ 用info 命令阅读信息页,例子:info help(快捷键:q 或者ctrl+c退出)。
(man和info都是在线查找,推荐使用man手册)
5·管道符:
① | 前面命令作用的结果作为后面命令的对象
② > 覆盖重定向
③ >> 追加重定向
④ < 读入重定向
6·相对路径:表示后面的路径都是位于当前工作目录下面,所以对于当前目录而言称为相对路径,使用时不需要接上根目录/ 点杠(./)表示当前目录
绝对路径:物理路径,都是以根目录/开头(推荐使用)
7·目录操作命令
pwd、cd、ls、dir、mkdir、du
① pwd查看当前工作目录(print working directory)
② cd切换工作目录(change directory)
一个点 . 表示当前目录
两个点 .. 表示上一级目录(父目录)
cd - 显示下一级目录并进入
cd .. 或者 cd ../ 切换到上一级目录
cd 切换到当前用户的宿主目录
cd # 切换到当前/root用户的宿主目录
cd ~ 切换到当前用户的宿主目录(如果当前的用户是root用户,就进入/root目录)
cd ~zhangsan 切换到用户zhangsan的宿主目录
cd -- 切换到当前用户的宿主目录
③ ls:(list)列表显示目录里面的内容(目录和文件)
(dir在Linux也可以使用,但没有像ls的颜色区分)
后面接的选项有:
–l(long)以长格式显示(权限、用户、用户组、大小、创建时间);【一般使用 ll,相当于 ls -l 】
-a(all)显示所有文件,包括隐藏文件;
-A跟-a类似,但不显示“.”、“..”隐藏目录;
-d显示目录本身的属性,而不显示目录中的内容。
-h(human)以更易读的字节单位(K、M、G等)显示信息,一般和l一起使用;缺省时大小单位实际为KB。
-s 表示文件占用的硬盘大小(不是文件实际大小,可能还包含隐藏文件)(summary)
-R以递归(Recursive)方式显示内容
-i(唉)表示显示索引节点号(可以理解为磁盘柱面号)(如果文件够大,会直接用M、G表示)
--color(两个--),在字符模式中以颜色区分出不同的
一般连用: -lhis
(--color=tty,表示使用终端预定义的颜色方案: 深蓝色表示目录,白色表示一般文件(如文本文件,配置文件,源码文件等),红色表示压缩文件或者包文件,绿色表示可执行文件,黄色表示设备文件,浅蓝色表示链接文件,红色闪烁表示链接文件有问题。可以用 dircolors –p 可以查看缺省的颜色设置。
lspci 查看主机中的PCI信息
lscpu 查看主机cup的信息
④ mkdir目录名1 目录名2 目录名3……:创建新的目录
(mkdir即make directory,在windows和linux中通用,但是md只能在windows中使用)
-p 如果需要创建的目录的上一级目录是不存在的,必须接上-p
如:mkdir –p /media/cdrom
⑤du:统计目录及文件的空间占用情况(estimate(估计) file space usage)
-a表示统计所有文件大小,包括所有文件(不接,表示只统计目录大小)
-h人性化方式显示
-s只统计参数所占用空间总的(summary)大小,不包含其子目录
8·通配符
星号(*) 替代0个或者多个字符;
问号(?) 替代一个字符
区别:1? 在windows中会显示:1 1.2
在linux中只会显示: 1.2
9·文件操作命令
touch、file、cp、rm、mv、查找、ln(一般而言,目录没有后缀名,而文件有后缀,如: .conf、 .exe)
① touch文件名1 文件名2 文件名3……:创建空文件(不限定文件类型)(如果目标文件存在,则更新目标文件的时间标记,从而就修改了其时间属性)
② file 文件名或路径:查看文件类型(识别不了文本文件)
③ cp [选项] 源文件或目录 目标文件或目录
复制文件或目录用绝对路径
-r或者-R 递归复制整个目录树,即复制目录(复制目录时必须要使用-r)
-p保持源文件的属性(权限、属主、时间标记)不变 (preserve)
-f强制覆盖目标同名文件或目录,即覆盖不进行提醒(force)
-i需要覆盖文件或目录时进行提醒(interactive,交互式)
例如1:cp -r /boot/grub/ /etc/httpd/conf/ ./mydir
将目录/boot/grub和/etc/httpd/conf复制到当前目录并命名为mydir(./表示当前路径,复制目录时目录名后面可以加/)
例如2:cp /etc/inittab /etc/inittab.bak
将/etc/inittab文件复制一份,仍然保存在/etc目录下,文件名添加.bak后缀。
需要注意的是使用cp -i时,要先去掉别名:unalias cp,不然-f参数不生效(即cp目录 –i不起作用)
④ rm 删除(remove)文件或目录(文本模式中的删除是不能恢复的,须格外小心,一般使用-rf)
-r递归删除整个目录树,删除目录必须使用-r
-f强行删除不提醒
-i删除进行提醒【默认会提醒,因为隐式别名的原因:alias rm=‘rm -i’】
⑤ mv 移动文件或目录(剪切或者重命名,用的最多的是重命名)
(dos中是move,是剪切或重命名)
用法:mv [选项] 源文件或目录目标文件或目录
(原路径与目标路径一样表示重命名,剪切后重命名)
⑥查找:4种
which 判断命令文件是否存在并定位到该路径(只能查找外部命令(cd是内部命令);找到第一个以后就不再继续查找,如要找出全部,接上 -a )
whereis 用于查找二进制文件、源码文件,定位可执行文件位置
(不可以找命令)
locate 查找命令,按数据库进行查找,速度较快(新建的命令查不到,因为还没有写进数据库)
find 查找所有的文件,由于是按照硬盘目录查找,所以查找速度较慢
用法:find 目录或路径选项条件
选项有:
-name按文件名查找;
如:find /etc –name ‘resol*.conf’ (在/etc目录中查找名字以resol开头以.conf结尾的文件)
–type按文件类型查找;后面接的参数有:f普通文件,d目录,b块设备文件,c字符设备文件。(块设备是指成块读取数据的设备,如硬盘、内存;字符设备是指单个字符读取数据的设备,如键盘、鼠标)
-user按所属主查找;
-group按所属组查找;
-size按文件大小查找;(+表示超过,-表示小于,直接接大小表示等于;大小单位:k小写(默认),单位还有M,G,c字节,w单词)
例如1:find /etc –name ‘resol*.conf’ -a –size +1048k (在/etc目录中查找名字以resol开头以.conf结尾,并且大小超过1048k的文件)
{注意逻辑符号:-a表示and,并且;-o表示or,或者}
{locate 相当于 find 路径 -name条件 }
例如2: find /boot -type d 查找/boot目录下的目录
例如3: find /var/log -user zhangsan
⑦ ln 创建链接文件
语法:ln [-s] 源文件或目录 目标文件或目录
ln–s符号链接,也称为软链接,相当于是创建快捷方式(源文件删除则软链接文件失效)
ln硬链接,相当于是复制(源文件删除不影响硬链接文件)
(无论软链接文件还是硬链接,不管以后修改的是链接文件还是源文件,修改之后其他的都会随着发生变化。目录不能进行硬链接。)
例如:ln -s /usr/sbin/system-config-netwok /sbin/mynetconfig
链接一定要使用绝对路径,浅蓝色表示有效链接文件,红色表示无效的链接文件
查询结果中,硬链接主要看文件个数(第二个字段)多于一个(一般为2;并且第一个字段首字母不是l,而是横杠-),软连接看文件类型和颜色(首字母为l)
10·文件内容操作命令
cat、more、less、head、tail、wc、grep
#行一般表示为注释信息
① cat:查看并链接(concatenate)文件内容,支持所有文件(命令、目录、文件等);
cat/ls 文件或路径 管道符| more
例如1:cat /etc/passwd | more (more是最早的一个选项只能enter键往下逐行翻看,具有单向性)
cat/ls 文件或路径 管道符| less
例如2: cat /etc/passwd | less (方向键的上下键可以调整)
cat -n 文件名 :给文件内容加行号。
② more/less 文件或路经 分页查看文件内容
(enter键向下逐行查看,b键向上翻屏,空格键向下翻屏,按q退出)
③head –n 文件名:n表示数字,意思是选取前面的n行;
(不加-n,表示默认10行)
④tail –n 文件名:意思是选取后面的n行;(不接数字默认n=10,,显示10行内容)
例子:ls –lh a.txt | head -5 表示显示文件a.txt的前五行内容
tail –f 文件名 截取文件后部分(默认10行,follow)
⑤ wc(word count)统计文件内容中的单词数量等信息
语法:wc [选项] 文件名
选项有:
–l 行数
-w 单词个数
-c/m 字节数
-l 最长行的长度
(不加选项默认统计:行数、单词数、总的字节数)
(换行符、空格也算一个字节,一个字母一个字节,一个符号也是一个字节)
例子1:wc –c a.txt
例子2:ls / | head -5 |wc –c
⑥ grep [选项] 查找条件目标文件
在文件中查找包含指定字符串的行,即文件内容检索过滤,可以类比windows中的findstr。
一般与cat命令加上管道符|一起使用,例如:cat a.txt | grep -v “^$” (找出 a.txt 文件中所有不是空行的内容)
-i:查找时忽略大小写(ignore case)
-v:反转查找(invert),输出与查找条件不符的行
查找条件的设置:要查找字符串中包含某内容,要用双引号括起来:
“^…..” 表示以…..开头,
“…$” 表示以…结尾,
“^$” 表示空行
“[…]” 包含有…范围以内字符的内容
“[^…]” 排除…范围以内的内容
“[x-z]” 表示查找包含小写字母的行
“[0-9]” 表示查找包含数字的行
“[…]*” 表示重复之前的内容,如9*表示连续出现9
“\<” 表示行首以特定的内容开始
“\>” 表示行尾以特定的内容结尾
例子:
grep –i “a” a.txt 找a.txt文件中带有字母a或A的所有行
grep “^f” a.txt 显示文件中以字母f开头的所有行,区分大小写
grep “a$” a.txt 显示文件中以字母a结尾的所有行,区分大小写
grep -v “^$” a.txt 显示文件中除了空行以外的所有,
grep “^name$” a.txt 显示a.txt中的有单独字符串name的行
grep “[0-9]” a.txt 显示文件中带有数字的所有行
grep –i “[a-z]” a.txt 显示文件中带有字母的行,不区分大小写
grep“^[0-9]*[0-9]$”a.txt 找到文件中纯数字的所有行
11·压缩与解压缩文件
归档:是指为文件或目录备份,建立归档文件。
打包:是指将一大堆文件或目录变成一个文件;
压缩:是指将一大堆文件通过一些压缩算法变成一个小文件。
(A)、 gzip与bzip2的压缩与解压缩
1.压缩:接上参数-9表示高压缩比例,一般来说,bzip2的压缩效率要高些
gzip 选项 文件名*.gz 目标文件路径:生成一个.gz结尾的压缩包
bzip2 选项 文件名*.bz2 目标文件路径:生成一个.bz2结尾的压缩包
2.解压缩:-d 或者 un
gzip -d 文件名.gz 或者 gunzip 文件名.gz:解压.gz结尾的文件名
bzip2 -d 文件名.bz2 或者 bunzip2 文件名.bz2:解压.bz2结尾的文件名
3.判断bzip2、gzip压缩命令用法:
可以压缩目录吗?不能
可以压缩.rar的吗?不行(需要下载第三方可以压缩.rar的工具)
可以一次压缩多个文件吗?可以
可以一次解压缩多个文件吗?可以
可以压缩在一个文件里吗?不行
只能在同一个文件夹(路径)进行压缩或解压缩?对
压缩和解压缩以后,原来文件存在吗? 不存在
(B)、 zip的压缩与解压缩:
zip 选项 文件名.zip 原文件名:制作zip格式的压缩包
unzip 选项 文件名.zip:zip包解压缩(不可以使用-d)
zip压缩与gzip、bzip2的相同点:都不能压缩目录,都不能压缩.rar格式的文件,都可以一次作用多个文件,都不可以压缩到同一个文件,都必须在当前路径下压缩,
zip压缩与gzip、bzip2的唯一区别是:gzip、bzip2压缩后只存在压缩或解压后的文件,不存在原文件;而zip压缩或解压后仍然存在原文件。
对同一个文件可以轮流用gzip、bzip2、zip进行压缩;如 文件*.gz.bz2.zip 就是经过多次不同压缩方式压缩后的文件,对其解压要由外及内一层一层解压。
(C)、 .tar:制作归档文件或释放已归档的文件。
跟zip压缩一样,在归档后会存在原文件和压缩文件。
tar对文件和目录都可以进行归档,而不进行压缩,但是在实际中,在归档的同时也会用-z调用gzip,-j调用bzip,来将包文件进行压缩。
A.制作归档及压缩(备份)文件:-c (create)
tar -zcvf 文件名.tar.gz 需要压缩的文件名
tar -jcvf 文件名.tar.bz2 需要压缩的文件名
.tar和.gz、.bz2的位置可以互换,
.tar.gz可简写为.tgz;.tar.bz2可简写为.tbz2
tar命令可以将多个文件压缩到一个tar包里
例如:tarjcvf myhome.tar.bz2 /home /etc/passwd /etc/shadow (将/home目录及/etc/passwd和/etc/shadow文件一起备份为myhome.tar.bz2包。)
B.解压并释放(恢复)压缩包文件:-x (explode)
tar -zxvf 归档及压缩文件名.tar.gz [-C 目标路径]
tar -jxvf 归档及压缩文件名.tar.bz2 [-C 目标路径]
例如: tar –jxvf /88/8.tar.bz2 –C /a
不接[-C 目标路径]表示当前路径解压
选项含义:
-v:以进度条的方式显示详细信息(verbose)
-f:表示使用归档文件的形式
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压
-t:列表查看包内的文件
12·vi文本编辑器
作用:创建或修改文本文件;维护Linux系统中的各种配置文件
vi:类Unix系统中默认的文本编辑器
vim:vi编辑器的增强版本,习惯上也称为vi(vim字体多颜色,vi是黑白)
单独vi命令可以查看vi版本信息,which vi或者which vim可以查看路径
vi 文件名 进入该文件的vi模式(若该文件不存在,则创建并进入新的空文件)
对系统以前的配置文件进行修改时最好对原始部分进行注释 (行首加符号 #)
vi界面中的三种模式:
进入vi编辑器时默认是命令模式,
有“—INSERT--”是输入模式,“--REPLACE--”是替换模式(需要多按一次insert键),
有“:”的是末行模式
(一)、命令模式中的按键操作
(A)、 命令模式中的光标移动
(B)、 命令模式中的复制、粘贴、删除。
d^ 表示删除当前光标到行首的所有字符;
d$ 表示删除当前光标到行尾的所有字符;
#dd (此处#表示行数数字) 表示删除从当前光标开始的#行字符。
#yy 表示复制从光标开始#行内容
(C)、命令模式中的撤销编辑及保存退出
u 撤销最近一次的操作,并恢复操作结果,可以多次操作来恢复在当前行的操作。
U 撤销对当前行的所有操作。
ZZ 是保存并退出vi编辑器
(D)、查找:
/ 关键字(从光标处向后查找)
? 关键字(从光标处向前查找)
N或者n 显示要找的内容
(二)、输入模式(快速进入输入模式a、i、o)
(三)、 末行模式
1>.保存退出操作:
vi d.txt 之后就保存( :wq),这样可以创建一个空白的文本文件 d.txt
:w /root/ newfile 将当前编辑的文件保存到指定路径 /root 为新的文件 newfile
2>.替换文件内容:sub(substitute)可以简写为s
:n,ms/old/new n和m表示行号,表示替换从n行到m行符合条件的每行第一个内容
:n,ms/old/new/g n和m表示行号,表示替换从n行到m行的符合条件的所有内容
S后面可以没有空格
:n,ms /old/new n和m表示行号,表示替换从n行到m行符合条件的每行第一个内容
:n,ms /old/new/g n和m表示行号,表示替换从n行到m行符合条件的所有内容
:% s /old/new/g 表示替换所有符合条件的内容
3>.其他输入:
:e 文件名 打开文件并编辑
:r 文件名 读入文件并复制到当前光标处
:set nu 显示行号
:set nonu 取消显示行号
:set nohls 取消高亮状态(vim模式才有效果)
13.比较两个文件的不同
diff 命令用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方,并在命令行中打印每一个行的改动。
diff [选项] [文件1或目录1] [文件2或目录2]
-c 显示全部内容,并标出不同之处。
-a或--text diff预设只会逐行比较文本文件。
-d或--minimal 使用不同的演算法,以较小的单位来做比较。
-i或--ignore-case 不检查大小写的不同。
-b或--ignore-space-change 不检查空格字符的不同。
-B或--ignore-blank-lines 不检查空白行。
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
-r或--recursive 比较子目录中的文件。
-q或--brief 仅显示有无差异,不显示详细的信息。
-v或--version 显示版本信息。
-w或--ignore-all-space 忽略全部的空格字符。
--help 显示帮助。