Linux笔记
- Linux 命令使⽤: 为了将来⼯作中与服务器设备进⾏交互⽽准备的技能(远程连接/命令的使用
- 数据库的使⽤: MySQL(增加数据/修改数据/查询数据/删除数据) , 除了查询动作需要重点掌握以外, 其他操作了解即可
操作系统
说明: 所有硬件设备组装完成后的第⼀层软件, 能够使⽤户使⽤硬件设备的软件即为操作系统
远程连接
- finalshell工具
远程连接基本步骤
远程连接操作步骤
获取服务器 IP 地址
虚拟机系统中的桌⾯上⿏标右键打开终端
通过 ifconfig 命令获取 IP 地址信息
在本机上的命令⾏内使⽤ ping 命令⾏测试下连通性
远程连接⼯具设置步骤
如图新建 -> SSH 连接
- 如图设置连接信息
- 远程连接依赖的命令: SSH
- 可以直接使⽤ SSH 命令远程连接服务器的格式
Linux命令的基本组成
# 命令 [-选项] [参数]
增:1.mkdir 新建文件夹
2.touch 新建文件
删:rm [-i/-r/-f]
改:mv [-i/-r/-f]移动/重命名
查:1.pwd 查看当前目录路径
2.ls 查看当前目录下的文件/文件夹
[-i/-r/-f]
-i 交互式询问
-r 对文件夹起作用,遍历目标文件夹
-f 强制
ls命令 – 显示指定工作目录下的内容及属性信息
**语法格式: **ls [选项] [文件]
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
---|---|
-l | 使用长格式列出文件及目录信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
重定向-将查看内容导入文件
**语法格式: **ls > [文件]
追加重定向
**语法格式: **ls >> [文件]
cat命令 – 在终端设备上显示文件内容(打印)
语法格式:cat [参数] [文件]
常用参数:
-n | 显示行数(空行也编号) |
---|---|
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
|
| -T | 将TAB字符显示为 ^I符号 |
| -v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
| -e | 等价于”-vE”组合 |
| -t
| 等价于”-vT”组合 |
| -A | 等价于 -vET组合 |
| --help | 显示帮助信息 |
| --version | 显示版本信息 |
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
补充: cat 合并查看多个⽂件内容
less命令 – 分页显示工具
语法格式:less [参数] [文件]
**常用参数: **
-N | 显示每行的行号 |
---|
命令内部操作(快捷键):
- b 向后翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- Q 退出less 命令
more命令 – 显示文本文件内容
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。
语法格式:more [参数] [文件]
常用参数:
-NUM | 指定每屏显示的行数 |
---|---|
-l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
-f | 计算实际的行数,而非自动换行的行数 |
-p | 先清除屏幕再显示文本文件的剩余内容 |
-c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
-s | 多个空行压缩成一行显示 |
-u | 禁止下划线 |
+/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
+NUM | 从第 num 行开始显示 |
命令内部操作:
- Space键:显示文本的下一屏内容-空格
- Enter键:向下n行,需要定义,默认为1行
- 斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
- H键:显示帮助屏
- B键:显示上一屏内容
- Q键:退出more命令
- Ctrl+F、空格键:向下滚动一屏
- Ctrl+B:返回上一屏
- =: 输出当前的行号
- :f:输出文件名和当前的行号
- V:调用vi编辑器
- !:调用Shell,并执行命令
注意:想要以分屏样式查看大量文件信息,文件的内容至少应该超过当前终端的显示大小,否则用cat
grep命令 – 强大的文本搜索工具
作用:根据关键词,搜索文本文件内容
语法格式: grep [参数]
常用参数:
-i | 搜索时,忽略大小写 |
---|---|
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行,取反 |
管道
- linux允许将一个命令的输出做为另一个命令的输入(通过管道)
- 可以理解为现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“|”的左右分为塞东西(写),右端取东西(读)。
常用的管道命令:
- less:分屏显示内容
- grep:在命令执行结果的基础上查询指定文本
加入管道优化后:
clear
清屏
查看日志信息
注意:head和tail命令多用于查看日志文件内容时使用
说明:日志文件是一种负责记录系统或程序运行过程信息的文件
作用:测试人员可以通过查看日志文件信息,帮助判断bug出现的原因
head命令 – 显示文件开头内容
head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行。
语法格式:head [参数] [文件]
常用参数:
-n | 后面接数字,代表显示几行的意思 |
---|---|
-c | 指定显示头部内容的字符数 |
-v | 总是显示文件名的头信息 |
-q | 不显示文件名的头信息 |
参考实例
显示前5行文件内容:
tail命令 – 查看文件尾部内容
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
语法格式:tail [参数]
常用参数:
-n | 输出文件的尾部N(N位数字)行内容 |
---|
参考实例
显示后5行文件内容:
不用-n也可以
tail -f
-f, --follow[={name|descript}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。
参考实例
一直变化的文件总是显示后10行:
[root@linuxcool ~ ] tail -f 10 file
说明:只要文件的内容一直是一直写入的状态
使用tail -f 文件名,即可实现实时监控文件内容变化的操作
应用场景:动态查看日志内容
重启和关机
reboot命令 – 重新启动计算机
Linux reboot命令用于用来重新启动计算机,和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。
语法格式: reboot [参数]
常用参数:
-n | 在重开机前不做将记忆体资料写回硬盘的动作 帮助 |
---|---|
-w | 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里 |
-d | 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) |
-f | 强迫重开机,不呼叫 shutdown 这个指令 |
-i | 在重开机之前先把所有网络相关的装置先停止 |
参考实例
重新启动:
[root@linuxcool ~]# reboot
模拟重开机:
[root@linuxcool ~]# reboot -w
poweroff命令 – 关闭操作系统并切断电源
poweroff命令用来关闭计算机操作系统并且切断系统电源。如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。
语法格式:poweroff [参数]
常用参数:
-n | 关闭操作系统时不执行sync操作 |
---|---|
-w | 不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中 |
-d | 关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录 |
-f | 强制关闭操作系统 |
-i | 关闭操作系统之前关闭所有的网络接口 |
-h | 关闭操作系统之前将系统中所有的硬件设置为备用模式 |
参考实例:
关闭计算机操作系统并且切断系统电源:
[root@linuxcool ~]# poweroff
使用-h参数关闭操作系统之前将系统中所有的硬件设置为备用模式:
[root@linuxcool ~]# poweroff -h
进程
在任何操作系统中,运行软件程序时,都会有一个对应1的进程存在,如果结束掉进程,就可以实现关闭对应软件程序的操作,尤其是在(Linux)服务器中。
- 所谓进程,通俗来说就是当前正在运行的一个程序
| 序号 | 命令 | 作用 |
| --- | --- | --- |
| 1 | ps -aux | process status 查看当前系统中正在执行程序的详细状况 |
| 2 | kill [-9] 进程代号 | 终止指定代号的进程,-9表示强制终止 |
| 3 | top | 动态显示运行中的进程并且排序 |
ps命令 – 显示进程状态
ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
a | 显示现行终端机下的所有程序,包括其他用户的程序 |
---|---|
u | 显示进程的详细状况 |
x | 显示没有控制终端的进程 |
- 每一个进程拥有唯一的pid,可以根据pid杀死进程,如:kill 12478或 kill -9 12478(强制杀死)
注意:显示瞬间进程的状态,并不动态连续,如果想对进程运行时间监控,应用top命令。
上传⽂件到服务器
Linux 系统中结束或关闭程序的基本步骤
运⾏程序/获取进程ID/结束程序
运⾏程序
语法格式:./ [程序]
获取进程 ID
结束程序
命令⾏形式的任务管理器 (动态监测)
netstat 查询端⼝号信息/显示网络状态
netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
语法格式:netstat [参数]
常用参数:
-a | 显示所有连线中的Socket |
---|---|
-p | 显示正在使用Socket的程序识别码和程序名称 |
-u | 显示UDP传输协议的连线状况 |
-i |
| 显示网络界面信息表单 |
| -n | 直接使用IP地址,不通过域名服务器 |
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
1 | netstat | 用于显示网络状态 | |
2 | netstat -anptu | 查看所有进程和端口使用情况 | 一般用来查看端口被哪些程序使用,但是一般不单独使用命令 |
3 | netstat -anptu | grep mysql | 结合grep查找指定程序打开的端口 | 比如这里查找的就是mysql正在使用的端口号 |
参考实例
显示详细的网络状况:
[root@linuxcool ~]# netstat -a
- netstat命令用于显示各种网络相关信息
- 常用于查看软件打开的端口信息
注意:一般需要root权限,才能查看更详细的端口信息
使⽤普通⽤户查看不了 PID 和程序名称
直接使⽤命令 -> 查看系统内已开放的端⼝号
通过端⼝号获取对应程序及进程 ID
lsof命令 – 查看文件的进程信息
lsof命令用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
- 可以用于查询系统正在使用的端口详细信息
语法格式:lsof [参数] [文件]
常用参数:
-a | 列出打开文件存在的进程 |
---|---|
-c <进程名> | 列出指定进程所打开的文件 |
-g | 列出GID号进程详情 |
-d <文件号> | 列出占用该文件号的进程 |
+d <目录> | 列出目录下被打开的文件 |
+D <目录> | 递归列出目录下被打开的文件 |
-n <目录> | 列出使用NFS的文件 |
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
1 | lsof -i | 列出符合条件的进程 | 如果不给出条件,则默认显示所有进程打开的所有文件 |
2 | lsof -i:3306 | 列出使用端口3306的进程信息 | 这里是查看3306这个端口被哪个应用程序占用了 |
注意:Linux系统中安装程序时,会出现因为端口被占用而无法安装的情况,这个时候就需要我们用lsof -i命令查看安装软件要使用的端口是否被占用
通过端⼝号获取对应程序及进程 ID : 注意命令选项的语法要求!
查找
which命令 – 查找程序位置
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
运维人员在日常工作中经常使用which命令来检查某个系统命令是否存在,或者找出所执行命令所对应的具体位置。
注意:命令也是一个可执行程序
语法格式:which [参数] [文件]
常用参数:
-n | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 |
---|---|
-p | 与-n参数相同,但此处的<文件名长度>包括了文件的路径 |
-w | 指定输出时栏位的宽度 |
-V | 显示版本信息 |
参考实例
查找文件、显示命令路径:
[root@linuxcool ~]# which bash
/bin/bash
[root@linuxcool ~]# which adduser
/usr/sbin/adduser
find 命令 – 查找和搜索文件
find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。
find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
语法格式:find [参数] [路径] [查找和搜索范围]
常用参数:
-name | 按名称查找 |
---|---|
-size | 按大小查找 |
-user | 按属性查找 |
-type | 按类型查找 |
-iname | 忽略大小写 |
切换⽤户
su命令 – 切换用户
su命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序。
普通用户切换到root用户,可以使用su -- 或su root,但是必须输入root密码才能完成切换。root用户切换到普通用户,可以使用su username,不需要输入任何密码即可完成切换。
**语法格式: **su [选项] [用户名]
常用参数:
-c或--command | 执行完指定的指令后,即恢复原来的身份 |
---|---|
-f或--fast | 适用于csh与tsch,使shell不用去读取启动文件 |
-l或--login | 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量 |
-m,-p或--preserve-environment | 变更身份时,不要变更环境变量 |
-s或--shell | 指定要执行的shell |
--help | 显示帮助信息 |
--version | 显示版本信息 |
参考实例
who命令 – 打印当前登录用户/查看⽤户信息
who命令用来打印当前登录用户信息,包含了系统的启动时间 、 活动进程 、 使用者 ID、使用终端等信息,是系统管理员了解系统运行状态的常用命令。
who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”。
**语法格式: **who [参数] [选项]
常用参数:
-a | 打印全面信息 |
---|---|
-b | 打印系统最近启动时间 |
-d | 打印死掉的进程 |
-l | 打印系统登录进程 |
-H | 带有列标题打印用户名,登录终端和登录时间 |
-t | 打印系统上次锁定时间 |
-u | 打印已登录用户列表 |
参考实例
exit命令 – 退出shell/退出终端窗⼝
exit命令用来退出当前的shell或退出终端 ,并返回给定值。
执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。状态值参数多用于脚本中,在终端状态下,直接输入“exit” 退出终端 。
语法格式:exit [状态值]
常用参数:
0 | 执行成功 |
---|---|
1 | 执行失败 |
$? | 参照上一个状态值 |
参考实例
退出当前shell:
[root@linuxcool ~]# exit
注销
退出 ssh 登录:
[root@linuxcool ~]# exit logout Connection to 192.168.168.16 closed.
在脚本中,进入脚本所在目录,否则退出:
cd $(dirname $0) || exit 1
退出终端窗⼝
退出远程连接
退出⽤户
权限
Linux 文件基本属性
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
- chown (change owner) : 修改所属用户与组。
- chmod (change mode) : 修改用户的权限。
在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为 d 则是目录
- 当为 - 则是文件;
- 若是 l 则表示为链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
从左至右用 0-9 这些数字来表示。
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。
Linux文件属主和属组
[root@www /]# ls -l
total 64
drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql
……
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。
对于 root 用户来说,一般情况下,文件的权限对其不起作用。
chgrp:更改文件属组
语法:
chgrp [-R] 属组名文件名
参数选项
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
chmod 修改⽂件权限
更改文件属主,也可以同时更改文件属组
语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
实例:
进入 /root 目录(~)将install.log的拥有者改为bin这个账号(更改属主):
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
将install.log的拥有者与群组改回为root(更改属组):
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
chmod:更改文件9个属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r:4
- w:2
- x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,以及连同次目录下的所有文件都会变更
举例来说,如果要将 .bashrc 这个文件所有的权限都设定启用,那么命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。
符号类型改变文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:
- user:用户
- group:组
- others:其他
那么我们就可以使用 u, g, o 来代表三种身份的权限。
此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:
| chmod | u
g
o
a | +(加入)
-(除去)
=(设定) | r
w
x | 文件或目录 |
| --- | --- | --- | --- | --- |
如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
⽂件权限修改注意事项
链接⽂件
ln -s 链接⽂件(为文件创建链接)
注意: 需要使⽤ -s 创建软链接(类似 Windows 系统下的快捷⽅式)
ln命令是linux系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是hard link,又称为硬链接;另一种是symbolic link,又称为符号链接。
通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似windows一样的快捷方式。
符号链接 :
-
- 符号链接以路径的形式存在,类似于Windows操作系统中的快捷方式。
-
- 符号链接可以跨文件系统 ,硬链接不可以。
-
- 符号链接可以对一个不存在的文件名进行链接,硬链接不可以。
-
- 符号链接可以对目录进行链接,硬链接不可以。
硬链接:
- 1.硬链接以文件副本的形式存在,但不占用实际空间。
-
- 硬链接不允许给目录创建硬链接。
- 3.硬链接只有在同一个文件系统中才能创建。
**语法格式: **ln [参数] [源文件或目录] [目标文件或目录]
常用参数:
-b | 为每个已存在的目标文件创建备份文件 |
---|---|
-d | 此选项允许“root”用户建立目录的硬链接 |
-f | 强制创建链接,即使目标文件已经存在 |
-n |
| 把指向目录的符号链接视为一个普通文件 |
| -i | 交互模式,若目标文件已经存在,则提示用户确认进行覆盖 |
| -s | 对源文件建立符号链接,而非硬链接 |
| -v | 详细信息模式,输出指令的详细执行过程 |
扩展: 硬链接
压缩和解压
tar/gzip/zip/unzip
tar/gzip 打包压缩和解压解包
zip 压缩/unzip 解压
vi 命令⾏⽂本编辑器
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
基本操作流程
什么是 vim?
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
命令模式
输⼊模式
末⾏模式
yum 软件包管理⼯具(centos)
yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令(Ubuntu)
apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令执行需要超级管理员权限(root)。
apt 语法
apt [options][command][package...]
- options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package:安装的包名。
apt 常用命令
- 列出所有可更新的软件清单命令:sudo apt update
- 升级软件包:sudo apt upgrade列出可更新的软件包及版本信息:apt list --upgradeable升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
- 安装指定的软件命令:sudo apt install <package_name>安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
- 更新指定的软件命令:sudo apt update <package_name>
- 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
- 删除软件包命令:sudo apt remove <package_name>
- 清理不再使用的依赖和库文件: sudo apt autoremove
- 移除软件包及配置文件: sudo apt purge <package_name>
- 查找软件包命令: sudo apt search
- 列出所有已安装的包:apt list --installed
- 列出所有已安装的包的版本信息:apt list --all-versions