Linux基础知命令详解
Shell
是linux系统中运行的一种特殊程序。
在用户和内核之间充当翻译官。
用户登录linux系统时,自动加载一个shell程序。
Bash是linux系统中默认使用的shell程序。位于/bin/bash
作用:接受用户输入的命令------解释命令------传递给系统内核执行
Linux命令的分类
Linux系统将存放外部命令,程序的目录默认添加到“搜索路径”中当使用位于这些目录中的外部命令时,用户不需要指定具体的位置。
Linux命令行格式
通用的命令行使用格式:命令字 [选项] [参数]
命令字:是整条命令中最关键的一部风,唯一确定一条命令。
选项:
1. 调节命令的具体功能,决定这条命令如何执行。
2. 不通的命令字使用的选项会不同。
3. 多个选项之间使用空格分隔。
4. 若不使用选项,执行命令字的默认功能。
短格式选项:一般在选项钱前使用“-”符号引导,多个单字符选项可以组合在一起使用。
长格式选项:一般在选项前使用“- -”符号引导 。
注意:一些linux命令字对于同一个功能会同时提供长,短两种格式的选项,两种格式可以混用。(如图上所示)
参数:
1. 是命令字的处理对象。
2. 通常情况下,可以是文件名,目录名或用户名等内容。
3. 个数可以是零到多个。
按enter键表示命令输入结束并提交给系统执行。
没有按enther键前,可编辑命令行中的字符内容。
在实际使用linux命令的过程中,“选项”和“参数”的称谓经常混淆,甚至前后顺序也允许颠倒,但一般不会影响到命令的执行效果。
编辑linux命令行的辅助操作:
Tab键:补全命令
反斜杠:‘\’
Ctrl+U快捷键:删除光标之前所有命令
Ctrl+K快捷键:删除光标之后所有命令
Ctrl+C快捷键:取消当前编辑
Ctrl+E快捷键:回到行尾
Ctrl+A快捷键:回到行首
Ctrl+L快捷键:清屏
获取命令帮助方法
问题:
Linux系统的命令数量繁多,具体选项也各不相同,格式也有细微差别,如何能快速,正确使用命令完成操作。
方法:
使用help命令:查看各shell内部的帮助信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190904200506732.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhcHRpYW5H,size_16,color_FFFFFF,t_70)
使用“–help”选项:显示对应的外部命令格式及选项等帮助信息
使用man手册业:最常用的一种在线帮助形式man file
以全屏的文本方式显示帮助信息,并提供交互式的操作环境
可使用的快捷键
↑键,↓键
Page
UP键和page Down键
Q键或q键
‘/’键
N键或N键
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019090420060319.png)
目录和文件基本操作
Pwd查看当前工作目录
Cd切换目录
将用户的工作目录更改到其他位置
Ls列表显示目录文件
Ls列表显示目录文件
只显示当前目录的详细属性,而不显示目录下的内容
ls -ld
查看两个文件的信息
ls /etc /var
显示所有以conf结尾的文件
ls *.conf *代表所有
显示所有krb5.后有四个字符的文件
ls krb5.??? ?代表一个
alias命令
1. 通过别名机制简化用的,比较长的命令
2. 格式:alisa命令别名=命令
“cp”等同于执行“cp -i”
Cp复制命令
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或--link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
rm删除命令
-f,--force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-r, -R,--recursive 递归删除目录及其内容
-v,--verbose 详细显示进行的步骤
mv移动及重命名命令
-i:交互式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统会询问是否覆盖,用户输入‘y进行覆盖,输入'n'则不覆盖,这样可以避免误覆盖文件。
-f:禁止交互式操作。在mv操作要覆盖某已有的目标文件或目录时不给任何指示,默认覆盖。
如果所给目标文件(不是目录)已存在,此时该文件的内容将后备新文件覆盖,为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。
-b:覆盖文件前先对其进行备份
Which查找命令
Find查找文件
- 使用当前目录中的名称查找文件
在当前工作目录中查找名称为test.c的所有文件
2.在主目录下查找文件
查找/ home目录下的所有文件,名称为test
3.查找名为test.txt的所有txt文件
4.查找目录中的所有txt文件
5.按照文件大小查找
查找所有大于1024k的文件
6.按照文件大小和文件名查找
查找所有大于1024k文件名为vmlinuz的文件
more查看文件命令
以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h。
more -s testfile 逐页显示 testfile之档案内容,如有连续两行以上空白行则以一行空白行显示。
more +20 testfile 从第 20 行开始显示 testfile之档案内容。
Less查看文件命令
作用与 more 十分相似,都可以用来浏览文字档案的内容。不同的是 less 允许使用者往回卷动。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190904204439623.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhcHRpYW5H,size_16,color_FFFFFF,t_70)
Tial显示文件结尾20行
tial -20 test.txt
显示test文件的后20行
Head显示文件开头20行
head +20 test.txt
cat查看文件命令
cat从头开始显示文件,tac从尾部显示文件。
显示或把多个文本文件连接起来。cat是concatenate的简写。
cat [选项] [文件]...
选项 -A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行完毕处显现 $
-n, --number 对输出的一切行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳 字符显现为 ^I
-u (被疏忽)
-v, --show-nonprinting 运用 ^ 和 M- 引证,除了 LFD 和 TAB 之外
wc文件内容统计命令
- 要显示一个文件的行数、字数和字节数统计:wc testfile
-c 统计字节数,除非指定 -k 标志。如果指定 -k 标志,wc 命令统计字符数。
-k 统计字符数。指定 -k 标志等同于指定 -klwc 标志。如果把 -k 标志同其它标志一起使用,那么必须包含-c 标志。否则,将会忽略-k 标志。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
gzip文件压缩命令
语法:gzip [选项] 压缩(解压缩)的文件名
该命令的各选项含义如下:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l
对每个压缩文件,显示下列字段:
压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t
测试,检查压缩文件是否完整。
-v
对每一个压缩和解压的文件,显示文件名和压缩比。
-num
用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比),
-9
或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。
示例:
压缩test.txt文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190904204815472.png)
解压test.txt文件
Bzip2 文件压缩命令
-c或--stdout 将压缩与 解压缩的结果送到标准输出。
-d或--decompress执行解压缩。
-f或--forcebzip2在压缩或 解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
-h或--help 显示帮助。
-k或--keepbzip2在压缩或 解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
-s或--small 降低程序执行时内存的使用量。
-t或--test 测试.bz2 压缩文件的完整性。
-v或--verbose压缩或解压缩文件时,显示详细的信息。
-z或--compress强制执行压缩。
Tar归档命令
制作归档文件,释放归档文件
-c创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r把要存档的文件追加到档案文件的末尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t列出档案文件的内容,查看已经备份了哪些文件。
-u更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-b该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512bytes)。
-f使用档案文件或设备,这个选项通常是必选的。
-k保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
-m在还原文件时,把所有文件的修改时间设定为。
-M创建多卷的档案文件,以便在几个磁盘中存放。
-v详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w每一步都要求确认。
-j代表使用‘bzip2’程序进行文件的压缩
-J代表调用“xz”程序进行文件的压缩(但在RHEL5的1.53上面无法使用,在RHEL6的2.23上面可以使用)
-z用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩
文本编辑器vi命令
文本编辑器的作用:
1. 创建或修改文本文件
2. 维护linux系统中的各种配置文件
Linux中最常用的文本编辑器
1. vi:类unix系统中默认的文本编辑器
2. vim:vi编辑器的增强版本,习惯上也称为vi
三种工作模式:命令行模式,输入模式,末行模式。
vi进入插入模式的方法:
i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
vi快捷键:
↓↑← →:上下左右
Heom键或^,数字0跳转至行首
End键或$键跳转至行尾
1G或gg跳转到文件的行首
G跳转到文件末尾
#G跳转到文件中的第几行
:set nu在编辑器中显示行号
:set none取消编辑器中的行号
<Ctrl-f> 或page down:向下移动一屏。
<Ctrl-d>:向下移动半屏。
<Ctrl-b>或page up:向上移动一屏。
<Ctrl-u>:向上移动半屏。
dd:剪切当前行。
yy:拷贝当前行。
cc:剪切当前行并且进入插入模式。
D:剪切从光标位置到行尾到剪贴板。
Y:拷贝当前行。
C:和 D 类似,最后进入插入模式。
x:剪切当前字符到剪贴板。
s:和x类似,不过最后进入插入模式。
P:粘贴到光标之后。
p:粘贴到光标之前
vi文件内容查找:
/word从上而下在文中查找字符串“word”
?word从下而上在文中查找字符串“word”
n;定位下一个匹配的被查找字符
N:定位上一个匹配的被查找的字符串
u:撤销
U:取消对当前行所做的所有编辑
zz :保存当前文件内容并退出
保存文件及退出vi编辑器
:w保存修改的内容
:w /root/newfile另存为其他文件退出vi
:q 未修改退出
:q!放弃对文件内容的修改,并推出vi
:wq保存修改内容并退出
**du命令用来查看目录或文件所占用磁盘空间的大小**
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
–apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
mkdir创建文件夹命令
-m 为目录指定访问权限,与chmod命令类似
-p 创建父目录及当前目录,常用于创建联级目录
-v 为每个目录显示提示信息
文件创建的几种方法
1.可以使用cat创建一个新的文件
命令:cat>>filename
使用cat创建文件时,以系统默认的文件属性作为新文件的属性,并接受键盘输入作为文件的内容。输入结束时按Ctrl+d退出并保存文件。
cat file1 file2>> file3 命令也可将多个文件合并到一个新的文件当中。首先创建一个newfile1并输入内容然后合并。
2.使用vi创建文件
3.使用touch命令更新或创建文件,当文件不存在时,则创建一个新的文件。touch只能创建空文件。
4.echo:通过一个参数显示文本的某行。
5.printf:用于显示在终端给定的文本。
创建连接文件
参数 :
-b或者 --backup=[Control] :对已经存在的目标连接文件进行备份。
-S<备份文件名结尾>或
--suffix=<备份文件名结尾>:备份文件会以该字符串结尾。
-f或者--force :创建连接时,先将与目标连接文件同一目录下的同名文件删除,不管该文件为何种类型。
-i:覆盖既有文件之前先询问
-s或者--symbolic:对源文件创建软连接。
-n:将连接到目录的软连接做为普通文件。
-T:将连接文件看做普通文件。
-v:显示指令执行过程。
-t或者 --target-directory=DIRECTORY :制定连接文件创建的目录。默认在用户当前所在的目录
Linux系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。
硬链接存在以下几点特性:
1.文件有相同的 inode 及 data block
2.只能对已存在的文件进行创建;
3.不能交叉文件系统进行硬链接的创建;
4.不能对目录进行创建,只可对文件创建;
5.删除一个硬链接文件并不影响其他有相同 inode 号的文件
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
绝对路径和相对路劲
绝对路径:
1. 以根目录‘/’作为起点
2. 准确表示一个目录(或文件)所在位置
3. 表示linux中目录结构相对稳定的目录(或文件)位置
4. 较繁琐
相对路径:
1. 当前工作目录作为起点
2. 目录的起始字符不使用‘/’符号
3. 表示当前目录‘附近’的目录(文件)位置
4. 简单,便捷