目录
一、Linux基础知识
1、Linux命令头解释
[root@localhost ~]#
root:代表当前用户的用户名;
localhost:代表当前主机的主机名;
~:代表当前所在目录;
#:表示权限,
#表示超级管理员,
$ 表示用户。
2、文件具体信息含义
查看目录具体信息
①d ②r-xr-xr-x. ③5 ④root ⑤root ⑥4096 ⑦11月 13 12:25 ⑧boot
①第1段表示文件类型,文件类型共分7种
- :代表该文件为普通文件
d :表示为文件夹
l :链接文件,相当于windows的快捷方式
p :管道文件,单向进程交互
s :套接字,双向进程交互
b :块设备,表示硬件储存设备,按块读取
c :表示字符文件,一个字节一个字节的读取
②第2段表示文件的权限(目前只要了解r为可读、w可写、x可执行即可,后面会详细讲解)
③第3段表示硬链接数
④第4段表示所属用户
⑤第5段表示所属组
⑥第6段表示文件大小
⑦第7段表示文件最近一次修改时间
⑧第8段表示文件名称
3、键盘辅助快捷键
①ctrl +c:停止命令 ②ctrl+u:从光标处清空至行首
③ctrl +l:清空屏幕 ④ctrl+k:从光标处清空到行尾
⑤ctrl+a:光标跳至行首 ⑤ctrl+e:光标跳至行尾
⑥ctrl+s:锁屏,可以输入命令但是不显示 ⑥ctrl+q:解除锁屏
⑦Tab键:如果命令唯一则直接补全,如果命令不唯一则补全所有可能命令。
二、Linux基础命令
1、命令分类
内部命令:集成在系统shell中,安装系统后即存在,读取快。
外部命令:需要安装,在系统中有个单独对应的系统文件,读取慢于内存命令。
Hash:缓存,外部命令最近输入过一次后会存在Hash缓存中,读取快于外部命令,慢于内部命令。
2、命令格式
命令字 [选项] [参数]
命令字:表示想用什么命令要做什么。
选项:补充命令,使命令更完美或更具体。
参数:代表要对什么进行操作,例如文件、文件夹、用户等。
3、查询命令帮助
type +命令可以查询是内部命令还是外部命令
内部命令:help +命令
外部命令:命令+ --help选项
man书:man 第一章节主要为命令解释,man 第五章节为文件格式。
4、基础知识命令读取顺序
①首先判断命令是否为别名alias,如果是则直接执行
②若不是别名则判断是否为内部命令,若是则直接执行
③若不是内部命令则判断是否在hash表中有,若有则且源文件存在则直接执行
④若hash表中没有或源文件不存在,则寻找是否有外部命令文件,有则直接执行
⑤若都没有则报错
三、基础命令详解
1、pwd:
用于查看当前所在路径
2、cd:
用于切换目录
cd -表示回到上一次访问的目录,只能记录上一次的,例如从A目录到B目录在B目录中输入cd -则会返回A目录,此时再输入cd -则表示上一次目录是B目录。
cd ~ 表示回到当前用户的家目录。
3、ls:
用于显示文件内容
-a 显示所有文件包括隐藏文件,包括 . 和 .. (.表示当前文件,..表示上级文件)
-l 显示长格式文件,8段全部显示出来,权限、最后修改时间、文件大小文件名等
-A 显示所有文件包括隐藏文件,但是不包括 . 和 ..(.表示当前文件,..表示上级文件)
-t 按时间顺序显示内容,默认按最近时间在上顺序显示
-r 倒叙显示,例如与-t配合使用可以按文件最远时间到最近时间排序
-S 按文 件大小排序,默认从大到小排序
-R 递归显示,例如ls -R / 则显示根目录下所有文件夹内的所有内容
-i 显示inode 就是每个文件的身份证号一样,在系统中唯一
4、关机命令:
halt:立即关机
shutdown -h n :立即关机
shutdow -h 10s :10s后关机
shutdown :1分钟后关机
5、重启命令:
reboot、init 6
6、通配符
* :代表任意字符,例如ls *.txt则表示显示所有以.txt结尾的文件。
?:代表任意一个字符,例如ls ?.txt则表示显示一个任意字符的.txt文件。
{a..z}:代表a b c d ..x y z,
[a-z]:代表取括号里任意一个字符,有则取没有也无所谓不会报错。
^:取反
7、du命令
du:查看磁盘使用量
[选项] -a 把所有文件包括隐藏文件的大小单独列出来查看
-s 只显示占用磁盘总量
-h 人性化显示占用单位
-d +数字 显示相对此目录的此层级磁盘占用量
注意:①-a 和-s不能同时使用。
②ll与du显示的单位不一样,du查看的是磁盘占用量大于0小区4k按4k算,ll显示的是文件真实大小。
③面试常问题目,磁盘满了删除了一个大文件但是磁盘空间没有释放,原因是此文件还在被使用。解决方法,删除前执行echo " 1" >文件名,重定向一个字符或空字符到大文件中。若已经执行过删除操作可以lsof寻找此服务的进程号然后kill杀死此进程,空间就释放完毕了。
8、cp命令
cp:拷贝文件或文件夹 格式:cp [选项] 源文件或文件夹 目标文件或文件夹
[选项] -f 表示强制复制不询问
-r 递归复制,复制文件夹时必须使用
-a 复制文件所有权限
-v 显示复制过程
-i 有同名文件提示覆盖,系统默认cp是别名,表示cp -i
注意:拷贝多个文件时,目标必须为文件夹。
9、mkdir命令
mkdir:创建文件夹 格式:mkdir [选项] 文件夹名(可以是多个用空格隔开)
[选项] -p 递归创建文件夹 例如创建 aa/bb/cc
10、touch命令
touch:没有则创建这个文件,有则刷新最后一次修改时间。
格式:touch 文件名(可以是多个用空格隔开)
四、软连接与硬链接
1、软连接
软连接:与windows系统中的快捷方式相似。
创建命令:ln -s 源文件或文件夹 目标文件或文件夹
2、硬链接
硬链接:与源文件相同,都指向磁盘的数据块。
创建命令:ln 源文件 目标文件(不能跨分区创建)
3、软连接与硬链接区别
对比项 | 硬链接 | 软连接 |
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不通 |
连接数 | 创建增加,删除减少 | 删除增加都不变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 无影响,链接数减1 | 无法访问源文件 |
文件类型 | 相同 | 链接文件与源文件无关 |
文件大小 | 与源文件相同 | 源文件路径长度 |
注意:删除软链接时一定不要在软链接文件名后加/,不加/代表删除软连接,加/则会把源文件内容也删除
五、Linux文件命令
1、mv命令
①mv命令在不改变文件路径时是为改名。
②mv命令在改变文件路径的情况下是剪切或移动。
2、rename命令
mv命令在更改文件名称时只能更改单个文件,rename则可以更改多个文件,但是条件是需要更改的文件名称和更改后的文件名称必须相同。
3、file命令
file命令加文件名称可以查看文件属于什么类型。
3、which命令
which命令用来查找外部命令的对应文件路径,都在$PATH变量中。
4、locate命令
查找文件速度快,但是依赖系统中的库,缺点是该库不会实时更新。使用格式:locate +需要寻找的文件名称
5、find命令
用来查找文件名,不能查找文件具体内容。优点实时刷新,缺点查找相对于locate慢一点,因为是全部磁盘找一遍
使用格式:find [查找范围] [查找条件表达式] [处理动作] 可配合通配符使用
查找范围:只能加目录,默认是当前目录
查找条件表达式:
and用-a表示:是且的意思模式是and
or用-o表示:是或的意思
[选项] -name 按文件名查找
-iname 按名称查找不区分大小写全部显示
-size 按文件大小查找,除k之外其他单位都是大写,例如+1M表示大于1M,-1M表示小于1M,直接写1M表示1M左右
-user 按所属用户名查找文件
-type 按文件所属类型查找文件,普通文件为 f 其他6大类不变
-inum 按inode号查找文件(ls -i显示inode号)
-maxdepth 搜索深度,最大搜索到距当前目录的第几层
-mindepth 搜索深度,最小搜索到距当前目录的第几层
-links 按硬链接数查找
-uid 根据uid查找 (id命令用于查看uid=多少)
-nouser 查找无主文件,即用户已经删除但是有属于他的文件存在
-empty 查找空文件(常用)
-mtime 按时间查找,例如 -mtime +7表示最佳修改时间大于7天的,-7表示小于7天的,7表示7天左右的
处理动作:
-print:打印到屏幕,默认动作
-delete:删除找到的文件
找到data目录下的1.bak文件并删除
-ls:长格式显示,显示文件8段,类型、最近修改时间等
找出data目录下2.bak并长格式显示
-ok:连接符固定使用格式 -ok {}代表find找到的所有文件 \;结束符号。缺点是每个文件都会询问是否更,需要输入y或者n
-exec:连接符固定使用格式 -exec {}代表find找到的所有文件 \;结束符号,不需要每个文件都询问,直接做动作,例如 -exec mv {} /etc \; 表示将find找到的文件全部移动到/etc目录下
6、cat命令
默认是顺序查看,可同时查看多个文件,按查询顺序显示。
使用格式: cat [选项] 文件名
[选项] : -A 显示隐藏字符,包括回车,tab等。
-n 显示行号
-b 显示行号不给空号编号
-s 把连续的空行压缩
7、tac命令
用于文件倒叙查看,如下图
8、rev命令
用于文件中每行的反向显示
9、more、less命令
用于在虚拟机中查看一页放不下的文件内容,less命令可以使用上下键滚动查看文件内容,more命令不可以向上查看只能向下查看。
10、head命令
用于查看文件内容,默认为查看前10行内容
[选项]: -n 后面加数字可以自定义查看文件的前多少行。
-c 后面加数字可以自定义查看文件的前多少个字符。
11、wc命令
默认显示文件内容顺序为,文件行数、文件单词数、文件字符数(包括回车等) 文件名
[选项]: -l 统计文件的行数。
-w 统计文件的单词数。
-c 统计文件的字符数。
12、tail命令
用于从文件最后查看内容,默认查看文件最后10行
使用格式:tail [选项] 文件名
[选项]: -f 实时跟踪显示文件最后内容,随着文件内容的更新会进行滚动
-n 加数字表示查看最后多少行,+5表示从第五行开始往后,-5表示最后5行,默认是最后10行。
13、grep命令
(1)正则表达式
正则表达式用于过滤文件中的字符串,与通配符的区别是通配符用于匹配文件名。
标准输出:命令执行结果正确后反馈的结果
标准输入:输入进系统的命令
错误输出:命令执行结果错误后反馈的结果
常用: ^ :表示以...开头 ^n以n开头
$ :表示以...结尾 n$ 以n结尾
^$ :表示过滤空行,以什么开头和结尾中间什么都没有
管道符 |:只支持有标准输出的命令
重定向 >:改变标准输出的方向,输出到文件中,输出到其他的远程连接
(2)grep命令
过滤想要的文件内容或文件名
使用格式:①过滤想要的文件内容,cat [选项] 文件名 | grep [选项] "想要的内容"
②过滤想要的文件名称,ls [选项] 文件名 | grep [选项] "想要的文件名" grep[选项]:
-v 反选
-o 只显示匹配字符
-i 忽略大小写
-r 递归,快速过滤但是不过滤软连接内容
-R 递归,快速过滤包括软连接源文件内容
-n 显示过滤内容在第几行
-w 把字符串看成单词,除了单词都不要,稍微精确一点