目录
Linux
Linux和windows一样都是操作系统,在Linux中一切皆文件,目录也是文件,所有设备也是文件。Linux是专门为专业的开发人员提供开发服务环境的平台,主要是对系统中的所有内容进行增删改查。现如今主要用的是centos和redhat,国内主要使用centos或以centos为内核二次开发而成的系统。
Linux优点:运行程序的速度快、兼容性强、系统安全性高且支持多用户模式、多任务模式,网络功能也很强大,最重要的就是开源。
shell脚本
shell脚本主要作用就是把用户输入的指令转换成二进制,传递给内核执行,内核执行完成之后,再通过shell翻译成人类能够看懂的语言,通俗讲就是翻译。
shell命令
内部命令 | 外部命令 |
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件| |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行,如/bin,/usr/bin,/usr/local/bin等 |
内部命令:shell的一部分,在系统开启时,就被shell加载到了内存当中。内部命令运行时,直接从内存调用,速度快(都是一些简单的系统命令,不复杂,功能也不强大)
外部命令:不在shell当中,也不随着系统的开启加载到系统的内存当中。外部命令都是实用功能非常强大的命令,比较复杂,程序量也很大,所有只在执行时由shell控制。
命令行格式
命令行格式为 命令字 选项 参数
命令字:你想对系统发出什么样的操作指令,如ls、pwd,touch等
选项:对系统做的操作指令进行精确的指示,在选项前面会有- (绝大多数,少数也有--),如-a、-h等。
参数:操作对象,文件名、用户名之类的。
一、基础命令
1.1帮助命令 help
格式:命令 --help
显示shell内部命令的帮助信息,显示内容简洁
1.2手册man
格式:man [命令]
显示操作系统的手册页,提供了对系统命令、函数、库等等的详细说明
使用“up”、“down”(ENTER)方向键滚动一行文本
使用Page Up和Page Down(空格)键翻页
按Q或q键退出阅读环境
按“/”键查找内容,n键向下查找,N键向上查找
1.3中断命令
ctrl+c 强制中断程序,直接杀死程序
ctrl+z 任务中断,程序为挂起状态,任务还没有结束。
1.4编辑Linux命令行的辅助操作
Tab键:自动补齐
反斜杠\”:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
Ctrl+ a组合键:切换到行首
Ctrl+e组合键:切换到行尾
二、文件与目录操作命令
2.1切换目录 cd
绝对路径:以/为开头,所有向下的路径,绝对路径根目录下,都要是已存在的目录,只能切换目录,不能对文件操作。
相对路径:没有/的就是相对路径
cd / 切换到根目录
cd ~ 切换到当前登录用户的家目录
cd .. 切换到上层目录
cd - 切换到上一次的目录
pwd 展示当前目录地址(系统路径)
2.2查看目录下文件 ls
ls 简略的查看当前目录下所有内容
ls -a 展示当前目录下所有文件包括隐藏文件
ls -R 以递归的方式展示目录与子目录
ls -h 人性化显示
ls -i 显示文件和目录的inode号
ls -t 以时间排序
ls -r 以时间倒序排列
ls -l 长格式展示 (可简写为ll)
2.3查看文件
2.3.1cat
直接显示出整个文件内容
常用选项
cat-n 对所有输出的行数编号
cat-b对空行不编号
cat-s 多个空格编为一号
特点
1.全量查看
2.只能看不能修改
3.大文件使用cat查看,速度会比较慢
2.3.2more
全屏方式分页显示文件内容,回车键翻到下一行,空格翻到下一页,不能往回翻,q可以退出,翻到最后一页自动退出。
2.3.3less
与more命令相比扩展功能更多,可以检索。pgup向上翻页,pgdn向下翻页,/检索内容
2.3.4head
从头开始看,默认看十行。
head-n 指定行数
2.3.5tail
从尾往上看,默认看十行
tail-f 动态查看
tail -数字f 查看指定行数
2.4cp与mv
2.4.1复制 cp
cp-f:覆盖目标同名文件或目录时不进行提醒,而直接强制复制。
cp-i:覆盖目标同名文件或目录时提醒用户确认。
cp-p:复制时保持源文件的权限、属主及时间标记等属性不变。
cp-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
cp-a:完整保留所有的信息包括连接文件,可以直接复制目录
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
2.4.2改名和移动 mv
改名:mv 前名 后名
移动:mv 目录或文件 目的目录
mv -p 拷贝的功能
mv -f 如果有相同的文件或目录,直接覆盖
2.5删除 rm
rm -rf 递归强制删除目录/文件
要慎用
2.6创建新目录 mkdir
mkdir 创建新目录
mkdir -p 递归创建新目录
2.7创建新文件 touch
touch 文件名 创建新文件
2.8创建连接 ln
硬连接 ln
只能是文件不能是目录,硬连接两个文件内容、大小、inode号一致的文件,除了文件名不一样。删除其中一个,对另一个没有任何影响。
软连接 ln -s
可以是目录,软连接可以看成是快捷方式,删除源文件就失效了。
2.9find 文件查询
基础格式
find 路径 查找条件 表达式/ 处理动作(路径用绝对,不打时,默认当前)
特点
1.实时查找
2.精确查找
3.全量遍历
(速度慢一点,支持多种查找条件)
常用选项
-name 根据目标文件名查找
-size 分局目标文件的大小进行查找 +超过 -少于
-user 根据目标文件的所有者
-type 根据目标文件的文件类型
-perm 根据目标文件的权限查找
注:type可以是以下形式:
f:普通文件
d:目录文件符号
l:链接文件
s:套接字文件
b :块设备文件
c :字符设备文件
p:管道文件
常用动作
-print 默认动作
-ls 查找到的文件详细的展示
-delete 删除查找到的文件 (慎用)
-fls file(文件名)以详细的格式保存到一个指定的文件中
-ok 命令 {}\; 对匹配的文件执行命令,有提示
-exec 命令 {}\; 对匹配的文件执行命令 无提示 注:{}与\之间有空,可以加命令的目的目录
通配符
用来匹配文件名或者目录名,不能匹配文件内容
?:匹配单个字符
*:匹配所有字符,不管有多长,但不能匹配以 ”.“为开头的文件
用通配符时要用“”引起,防止出现歧义
范围匹配
[a-z]:匹配所有小写字母
[A-Z]:匹配所有大写字母
[0-9]:0-9数字
2.10 命令位置查询
2.10.1where
不能搜索普通文件,只能查系统命令
格式:whereis
2.10.2which
which:搜索系统命令的命令。
和whereis命令的区别在于,whereis命令可以在查找到二进制命令的同时,查找到帮助文档的位置;而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。
2.11查看文件大小du
主要用于磁盘空间不足时,查看有没有可删掉的文件或是否有异常文件
du 查看当前目录下文件或目录大小,以分列的方式展示
du -s只统计总大小
du -d最大显示到第几层
一般使用du -sh *
2.12查看所有的磁盘空间 df
df-h 人性化展示
df-i 显示inode号
2.13wc 统计单词数量等信息
-l 统计行数
-w 统计单词数量
-c 统计字节数
2.14grep
按照指定的条件过滤 ,查找文件当中内容,输出行,过滤条件用最好“”,以免歧义
-i 查找时不区分大小写
-v 取反 反向查询,反向匹配
-n 显示匹配行以及匹配行的行号
-e 可以实现多个匹配条件查找,是逻辑或关系
-E 使用扩展正则表达式
2.15| 管道符
把管道符前面的结果,作为管道敷后面命令的参数,也就是操作对象
find 出来执行操作必须用-exec
2.16tar
作用
归档 打包 压缩 解包 解压缩
常用项目
-c 创建.tar格式的包文件
-x 解开.tar格式的包文件
-C 解压时指定释放的目的文件夹
-f 使用归档文件
-v 显示详细内容
-j 用bzip2 进行压缩和解压
-z 用gzip进行压缩和解压
注最简写 -cf -xf
bz2与gz区别
bz2压缩率高 但速度慢
gz压缩速度快 压缩率较低
其他
unzip 解压.zip
unrar 解压.rar
rz 从主机下载文件
sz 从虚拟机上传文件
三、vim
在命令模式输入i进入编辑模式
在命令模式输入shift :进入底行模式
3.1底行模式
q 不保存退出
q! 强制不保存退出
w保存
wq保存退出
wq!强制保存退出
set nu 显示行号
esc 返回命令模式
w 新文件名 另存为其他文件
e 文件名 打开新的文件进行编辑
r 读取其他文件内容到当前文件中
s /a/b 行第一个 (a为原字符,b为替换的字符)
s /a/b/g 整行替换
1,10 s/a/b/g 行号范围内替换
% s/a/b/g 全文替换
1,5 m 10 1-5行剪切到第10行下
1,5 co 10 1-5行复制到第10行下
3.2命令模式
o在当前行下一行插入
O在当前行上一行插入
a在当前光标后插入
i在当前光标前插入
A在行尾插入
I在行首插入
M跳转到当前页页中
H当前页的首行
L当前页的尾行
x、delete删除单个字符
dd删除整行
数字dd 删除指定范围的行
yy复制一行
数字yy 复制多行
p当前行下一行粘贴
P当前行上一行粘贴
R修改字符
U撤销所有编辑
u撤销
/从当前光标位置向后查找
?从当前光标位置向前查找
?/都是遍历全文(操作:n向下匹配,N向上匹配)
四、其他操作命令
4.1查看硬件、环境、内存大小
4.1.1 查看CPU
lscpu
或者cat /proc/cpuinfo
4.1.2查看内存大小
free
-m 简数字化
-h人性化
或者cat /proc/meminfo
4.1.3查看磁盘的分区情况与大小
lsblk
或者cat /proc/partitions
4.1.4查看机器架构
arch
4.1.5查看内核版本
uname -r
4.1.6系统时间
查看系统时间 date
临时修改时间 date -s
-d 查看你选定的时间
-T 24小时的格式
-F 完整日期格式
4.2别名alias
查看所有别名 alias
创建别名 alias 别名=“命令”
删除别名 unalias
主要用于常用的长命令(临时修改,重启会复原)