文章目录
1. 操作系统(Operation System, OS)
操作系统作为接口的示意图:
没有安装操作系统的计算机,通常被称为裸机
- 如果想在裸机上运行自己所编写的程序,就必须用及其语言书写程序
- 如果计算机上安装了操作系统,就可以在操作系统上安装支持高级语言环境,用高级语言开发程序
不同应用领域的主流操作系统
- 桌面操作系统
- Windows系统
- macOS
- Linux
- 服务器操作系统
- Linux:安全、稳定、免费,占有率高。
- Windows Server:付费、占有率低。
- 嵌入式操作系统
- Linux
- 移动设备操作系统
- IOS
- Android(基于Linux)
虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
- 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作完全一样的功能
- 进入虚拟系统后,所有操作都是在这个新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
- 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统
2. Linux内核版本及发行版本
Linux内核版本
- 内核(Kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个裸机设备与应用程序间的抽象层
- Linux内核版本又分为稳定版和开发版,两种版本是相互联系,相互循环
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对与旧的只是修正一些bug或加入一些新的驱动程序
- 开发版:由于要试验各种解决方案,所以变化很快
- 内核源码网址:http://www.kernel.org
所有来自全世界的对Linux源码和修改最终都汇总到这个网站,由Linux领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中
Linux发行版本
- Linux发行版本(也被叫做GNU/Linux发行版)包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
- 常见的发行版本如下:
- Ubantu
- Redhat
- Fefora
- openSUSE
- Linux Mint
- Debian
- Manjaro
- Mageia
- CentOS
- Arch
3. Linux文件和目录结构
单用户操作系统和多用户操作系统
- 单用户操作系统:指一台计算机在同一时间,只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源
- Windows XP之前的版本都是单用户操作系统
- 多用户操作系统:指一台计算机在用一时间可以由多个用户使用,多个用户共享操作系统的全部硬件和软件资源
Windows和Linux文件系统区别
Windows下的文件系统
- 在Windows下,打开“计算机”,我们看到的是一个个驱动器盘符:
- 每个驱动器都有自己的根目录,这样就形成多个数目录结构:
Linux下的文件系统
- 在Linux下,我们看不到这些驱动器盘符,我们看到的是文件夹(目录):
- Ubantu没有这个概念,只有一个根目录,所有文件都在它下面
Linux主要目录速查表
-
/:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
-
/bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
-
/boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
-
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt
-
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
- /etc/inittab
- /etc/fstab
- /etc/init.d
- /etc/X11
- /etc/sysconfig
- /etc/xinetd.d
-
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
- ~ 表示当前用户的家目录
- ~edu 表示用户 edu 的家目录
-
/lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
-
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
-
/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
-
/opt:给主机额外安装软件所摆放的目录
-
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
-
/root:系统管理员root的家目录
-
/sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能”查看”而不能设置和使用
-
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
-
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
-
/usr:应用程序存放目录
- /usr/bin:存放应用程序
- /usr/share:存放共享数据
- /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
- /usr/local:存放软件升级包
- /usr/share/doc:系统说明文件存放目录
- /usr/share/man:程序说明文件存放目录
-
/var:放置系统执行过程中经常变化的文件
- /var/log:随时更改的日志文件
- /var/spool/mail:邮件存放的目录
- /var/run:程序或服务启动后,其 PID 存放在该目录下
Linux图形界面
Ubantu任务栏
窗口操作
菜单条
4. 常用Linux命令的基本使用
- 理解学习Linux终端命令的原因
- 常用Linux命令体验
学习Linux终端命令的原因
-
Linux刚面世时并没有图形界面面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等
-
在职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有维护工作都需要通过命令来完成
-
在职场中,作为后端程序员,必须要或多或少掌握一些Linux常用命令
-
Linux发行版本命令大概有200多个,但是常用命令只有10多个而已
学习终端命令的技巧:
- 不需要死记硬背,对于常用的命令,用的多了,自然就记住了
- 不要尝试一次学会所有的命令,有些命令非常不常用,临时遇到,临时百度就可以
常用Linux命令的基本使用
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看当前文件夹下的内容 |
02 | pwd | print wrok directory | 查看当前所在文件夹 |
03 | cd [目录名] | change directory | 切换文件夹 |
04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir [目录名] | make directory | 创建目录 |
06 | rm [文件名] | remove | 删除指定的文件名 |
07 | clear | clear | 清屏 |
08 | cp -rp [原文件或目录] [目标目录] | copy | 复制文件或目录 |
09 | mv [原文件或目录] [目标目录] | move | 剪切文件或目录 |
小技巧
ctrl + shift + =
放大终端窗口的字体显示ctrl + -
缩小终端窗口的字体显示
- 以
.
开头的为隐藏文件,需要ls -a才能显示 - . 代表当前目录
- … 代表上一级目录
自动补全
- 在敲出
文件
/目录
/命令
的前几个字母之后,按下 tab 键- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他
文件
/目录
/命令
,再按一下tab
键,系统会提示可能存在的命令
小技巧
- 按
上
/下
光标键可以在曾经使用过的命令之间来回切换- 如果想要退出选择,并且不想执行当前选中的命令,可以按
ctrl + c
5. Linux终端命令格式
- 了解终端命令格式
- 知道如何查阅终端命令帮助信息
终端命令格式
command [-options] [parameter]
说明:
command
:命令名,相应功能的英文单词或单词的缩写[-options]
:选项,可用来对命令进行控制,也可以省略parameter
:传给命令的参数,可以是 零个、一个 或者 多个
[]
代表可选
查阅命令帮助信息
提示
- 现阶段只需要 知道 通过以下两种方式可以查询命令的帮助信息
- 先学习常用命令及常用选项的使用即可,工作中如果遇到问题可以借助 网络搜索
–help
command --help
说明:
- 显示
command
命令的帮助信息
man
man command
说明:
- 查阅
command
命令的使用手册
man
是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用说明
使用 man
时的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter 键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
6. 远程管理常用命令
关机/重启
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | shotdown 选项 时间 | shutdown | 关机/重新启动 |
shotdown
- shotdown命令可以安全关闭或重新启动系统
选项 | 含义 |
---|---|
-r | 重新启动 |
提示:
- 不指定选项和参数,就默认表示1分钟之后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
- 常用命令示例:
shutdown -r
showdown -c
showdown -r now
showdown -r 10 //十分钟
查看或配置网卡信息
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ifconfig | configure a network interface | 查看/配置计算机当前的网卡配置信息 |
02 | ping ip地址 | ping | 检测到目标ip地址的连接是否正常 |
网卡和IP地址
- 网卡
- 网卡是一个专门负责网络通讯的硬件设备
- IP地址是设置在网卡上的地址信息
我们把电脑比作电话,网卡相当于SIM卡,IP地址相当于电话号码
- IP地址
- 每台互联网上的电脑都有IP地址,是保证电脑之间正常通讯的重要设置
注意:每台电脑的IP地址不能相同,否则会出现IP地址冲突,并且没有办法正常通讯
ifconfig
- ifconfig可以查看/配置计算机当前的网卡配置信息
$ ifconfig
$ ifconfig | grep inet
提示:
一台计算机中有可能有一个物理网卡和多个虚拟网卡,在Linux物理网卡的名字通常以ensXX表示
- 127.0.0.1被称为本地回环/环回地址,一般用来测试本机网卡是否正常
ping
# 检测到目标主机是否连接正常
$ ping IP地址
# 检测到本地网卡工作正常
$ ping 127.0.0.1
- ping一般用于检测当前计算机到目标计算机之间的网络是否通畅、数值越大,速度越慢
ping 的工作原理与潜水艇的声呐相似,ping这个命令就是取自声呐的声音
网络管理员之间也常将ping用作动词——ping一下计算机X,看他是否开着
- 原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在
提示:在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用CTRL + C
如果目标地址不能正常连接:
远程登录和复制文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh 用户名@ip | secure shell | 关机/重新启动 |
02 | scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
ssh基础(重点)
在Linux中SSH是非常重要的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程计算机上
- SSH客户端是一种使用Secure Shell (SSH)协议连接到远程计算机的软件程序
- SSH是目前比较可靠,专为远程登录会话和其他网络服务提供安全性的协议
- 利用SSH协议可以有效防止远程管理过程中的信息泄露
- 通过SSH协议可以对所有传输的数据进行加密,可能够防止DNS欺骗和IP欺骗
- SSH的另一个优点是传输的数据可以经过压缩的,所以可以加快传输的速度
域名 和 端口号
域名:
- 由一串用点分离的名字组成,例如:www.baidu.com
- 是IP地址的别名,方便用户记忆
端口号:
- IP地址:通过IP地址找到网络上的计算机
- 端口号:通过端口号可以找到计算机上运行的应用程序
- SSH服务器的默认端口号是22,如果是默认端口号,在连接的时候可以省略
- 常见服务端端口号列表:
序号 | 服务 | 端口号 |
---|---|---|
01 | SSH服务器 | 22 |
02 | Web服务器 | 80 |
03 | HTTPS | 443 |
04 | FTP服务器 | 21 |
SSH客户端的简单使用
ssh [-p port] user@remote
user
是在远程机器上的用户名,如果不指定的话就默认为当前用户remote
是远程机器的地址,可以是IP/域名,或者是别名port
是SSH Server监听的端口,如果不指定,就默认为22
提示:
- 使用
exit
退出当前用户的登录注意:
ssh
这个终端命令执行在Linux或者Unix系统下使用- 如果在Windows系统中,可以安装puTTY或者XShell客户端软件即可
scp(远程拷贝)
- scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
- 它的地址格式与ssh基本相同,需要注意的是,在指定端口时,是大写的
-P
而不是小写的
# 把本地当前目录下的01.py文件 复制到 远程桌面上01.py
# 注意:“:”后面的路径如果不是绝对路径则以用户的/home目录作为参考路径
$ scp -P port 01.py user@remete:Desktop/01.py
# 把远程目录下的Desktop/01.py文件 复制到 当前目录下的01.py
$ scp -P port user@remete:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 /home 目录下的Desktop
$ scp -r demo user@remote:Desktop
# 把远程 /home 目录下的 Desktop 复制到当前目录 demo2 文件夹
$ scp -r user@remote:Desktop demo2
选项 | 含义 |
---|---|
-r | 若给出源文件时目录文件,则scp将递归赋值该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程SSH服务器端口不是22,需要使用的写字母-P选项指定端口 |
注意:
scp
这个终端命令只能在Linux或者Unix系统下使用- 如果在windows系统中,可以安装PuTTY,使用
pscp
命令行工具或者安装FileZilla使用FTP进行文件传输
SSH高级
- 免密码登录
- 配置别名
提示:有关SSH配置信息都保存在用户的/home目录下的
.ssh
目录下的
- 免密码登录:
步骤:
- 配置公钥
- 执行
ssh-keygen
即生成SSH钥匙,一路回车即可
- 执行
- 上传公钥到服务器
- 执行
ssh-copy-id -p -port user@remote
,可以让远程服务器记住我们的公钥
- 执行
此时连接就不需要密码了
- 示意图:
非对称加密算法
- 使用公钥加密的数据,需要使用私钥解密
- 使用私钥加密的数据,需要使用公钥解密
- 配置别名:
每次都输入ssh -p port user@remote
,时间久了会觉得很麻烦,特别是当user,remote和port都得输入,而且还不好记忆
而配置别名可以让我们进一步偷懒,譬如:ssh mac
来代替上面这么一长串,那么就在~/.ssh/config里面追加以下内容:
Host mac
HostName ip地址
User username
Port 22
保存之后,即可ssh mac
实现远程登录了,scp同样可以使用
7. 用户权限相关命令
- 用户和权限的基本概念
- 用户管理终端命令
- 组管理终端命令
- 修改权限终端命令
用户 和 权限 的基本概念
- 用户是Linux系统中重要的一环,用户管理包括用户与组管理
- 在Linux系统中,不论是由本级或是远程登录系统,每个系统都必须有一个账号,并且对于不同的系统资源拥有不同的使用权限
- 对于文件/目录的权限包括
序号 | 权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
04 | 无权限 | - | 0 |
- 组
为了方便用户管理,提出了组的概念
- 在实际应用中,可以预先对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限
ls -l扩展:
ls -l
可以查看文件夹下文件的详细信息,从左到右依次是:- 权限,第一个字符如果是d表示目录
- 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件(子目录越多硬链接数越大)
- 拥有者,/home目录下文件/目录的拥有者通常都是当前用户
- 组,在Linux中,很多时候,会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
chmod简单使用(重要)
chmod
可以修改用户/组对文件/目录的权限- 命令格式如下:
chmod +/-rwx 文件名|目录名
提示:以上方式会一次性修改拥有者/组权限
超级用户
- Linux系统中的
root
账号通常用于系统的维护和管理,对于操作系统的所有资源具有所有访问权限 - 在大多数版本的Linux中,都不推荐直接使用root账号登录系统
- 在Linux安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为标准用户
sudo
su
是substitute user的缩写,表示使用另一个用户的身份sudo
命令用来以其他身份来执行命令,预设的身份为root- 用户使用
sudo
时,必须先输入密码,之后有5分钟的有效期限,超过期限必须重新输入密码
若未经授权的用户企图使用sudo,则会发出警告邮件给管理员
组管理终端命令
提示:创建组/删除组的终端命令都需要通过sudo执行
序号 | 命令 | 作用 |
---|---|---|
01 | groupadd 组名 | 添加组 |
02 | groupdel 组名 | 删除组 |
03 | cat/etc/group | 确认组信息 |
04 | chgrp 组名 文件/目录名 | 修改文件/目录的所属组 |
- 组信息保存在
/etc/group
文件中 /etc
目录是专门用来保存系统配置信息的目录
用户管理终端命令
提示:创建用户/删除用户/修改其他用户密码 的终端命令都需要通过
sudo
执行
创建用户/设置密码/删除用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | useradd -m -g 组 新建用户名 | 添加新用户 | -m自动建立用户家目录,-g指定用户所在的组,否则会建立一个和用户名同名的组 |
02 | passwd 用户名 | 设置用户密码 | 如果是普通用户,直接使用passwd可以修改自己的账户密码 |
03 | userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
04 | cat/etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd文件中 |
- 创建用户时,如果忘记添加
-m
选项指定新用户家目录——最贱的方法就是删除用户,重新创建 - 创建用户时,默认会创建一个和用户名同名的组名
- 用户信息保存在
/etc/passwd
文件中
查看用户信息
序号 | 命令 | 作用 |
---|---|---|
01 | id[用户名] | 查看用户UID和GID信息 |
02 | who | 查看当前所有登录的用户列表 |
03 | whoami | 查看当前登录用户的账户名 |
passwd文件
/etc/passwd
文件存放的是用户的信息,由6个分号组成的7个信息分别是
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号
- 家目录
- 登录使用的Shell,就是登陆之后,使用的终端命令,ubantu默认的是dash
usermod
usermod
可以用来设置用户的主组/附加组和登录Shell,命令格式如下- 主组:通常在新建用户时指定,在
/etc/passwd
的第4列GID对应的组 - 附加组:在
/etc/group
中最后一列表示改组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组之后,需要重新登录才能生效!
# 修改用户的主组(passwd中的GID)
$ usermod -g 组 用户名
# 修改用户的附加组
$ usermod -G 组 用户名
# 修改用户登录 Shell
$ usermod -s /bin/bash
注意:
默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用以下代码
$ usermod -G sudo 用户名
which(重要)
提示:
/etc/passwd
是用于保存用户信息的文件/usr/bin/passwd
是用于修改用户密码的程序
- which命令可以查看执行命令所在位置,例如:
$ which ls
# 输出
# /usr/bin/ls
$ which useradd
# 输出
# /usr/sbin/useradd
bin和sbin
- 在Linux中,绝大多数文件都是保存在
/bin
、/sbin
、/usr/bin
、/usr/sbin
/bin
(binary)是二进制执行文件目录,主要用于具体应用/sbin
(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理/usr/bin
(user commands for applications)后期安装的一些软件/usr/sbin
(super user commands from applications)超级用户的一些管理程序
提示:
- cd是Linux内核中的命令,没有独立文件,因此用which无法找到cd命令的位置
切换用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | su -用户名 | 切换用户,并且切换目录 | - 可以切换到用户家目录,否则保持位置不变 |
02 | exit | 退出当前用户 |
su
不接用户名,可以切换到root,但是不推荐使用,因为不安全exit
示意图:
修改文件权限
序号 | 命令 | 作用 |
---|---|---|
01 | chown | 修改拥有者 |
02 | chgrp | 修改组 |
03 | chmod | 修改权限 |
# 修改文件|目录的拥有者
$ chown 用户名 文件名|目录名
# 递归修改文件|目录的组
$ chgrp -R 组名 文件名|目录名
# 递归修改文件权限
$ chmod -R 755 文件名|目录名
chmod
在设置权限时,可以简单滴使用三个数字分表表示对应的拥有者/组和其他用户的权限
# 直接修改文件|目录的 读|写|执行 权限,但是不能精确到拥有者|组|其他
$ chmod +/-rws 文件名|目录名
- 常见数字组合有(u表示是用户/g表示组/o表示其他):
- 777 ==> u=rwx, g=rwx, o=rwx
- 755 ==> u=rwx, g=rx, o=rx
- 644 ==> u=rw, g=r, o=r
8. 系统信息相关命令
-
方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间/占用情况/程序执行情况
-
这里的命令基本都是查询命令,通过这些命令对系统资源的使用情况有个了解
-
日期和时间
date
cal
-
磁盘和目录空间
df
du
-
进程信息
ps
top
kill
时间和日期
序号 | 命令 | 作用 |
---|---|---|
01 | cal | 查看日历,-y 选项可以查看一年的日历 |
02 | date | 查看系统时间 |
磁盘信息
序号 | 命令 | 作用 |
---|---|---|
01 | df -h | disk free 显示磁盘剩余空间 |
02 | du -h[目录名] | disk usage 显示目录下的文件大小 |
- 选项说明
参数 | 含义 |
---|---|
-h | 以人性化的方式显示文件大小 |
进程信息
- 所谓进程,通俗地讲就是当前正在执行的一个程序
序号 | 命令 | 作用 |
---|---|---|
01 | ps aux | process status查看进程的详细情况 |
02 | top | 动态显示运行中的进程并且排序,输入q退出 |
03 | kull [-9] 进程代号 | 终止指定代号的进程,-9 表示强制终止 |
ps默认只会显示当前用户通过终端启动的应用程序
ps
选项功能说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状况 |
x | 显示没有控制终端的进程 |
提示:
使用kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致系统崩溃
9. 其他命令
- 查找文件
find
- 软连接
ln
- 打包和压缩
tar
- 软件安装
apt-get
查找文件
- find命令功能非常强大,通常用来在指定目录下搜索符合条件的文件
序号 | 命令 | 作用 |
---|---|---|
01 | find [路径] -name “*.py” | 查找指定路径下扩展名是.py的文件,包括子目录 |
- 如果省略路径,表示在当前文件夹下查找
- 之前学习的通配符,在使用find命令时同时可用
软连接
序号 | 命令 | 作用 |
---|---|---|
01 | ln -s 被链接的源文件 链接文件 | 建立文件的软连接,用通俗的方式讲类似于Windows下的快捷方式 |
-
注意:
- 没有
-s
选项建立的是一个硬链接文件,两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接 - 源文件要使用绝对路径,不能使用相对路径,这样方便移动链接文件后,仍然能够正常使用
- 没有
-
文件软硬链接示意图:
在Linux中,文件名 和 文件数据是分开存储的
- 提示:
- 在Linux中,只有文件的硬链接数===0才会被删除
- 使用
ls -l
可以查看一个文件的硬链接数 - 在日常工作中,几乎不会建立硬链接
打包压缩
- 打包压缩是日常工作中备份文件的一种方式
- 在不同操作系统中,常用的打包压缩方式是不同的
- Windows常用rar
- Mac常用zip
- Linux常用tar.gz
打包/解包
tar
是Linux中最常用的备份工具,以命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件tar
命令格式:
# 打包文件
$ tar -cvf 打包文件.tar 被打包文件/路径...
# 解包文件
$ tar -xvf 打包文件.tar
tar选项说明:
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
注意:f选项必须放在最后,其他选项顺序可以随意
压缩/解压缩
gzip
tar
与gzip
命令结合可以实现文件打包和压缩tar
只负责打包,但不压缩gizp
压缩tar打包后的文件,其扩展名一般用xxx.tar.gz
在Linux中,最常见的压缩文件格式就是xxx.tar.gz
- 在
tar
命令中有一个选项 -z 可以调用gzip
,从而方便的实现压缩和解压缩的功能:
# 压缩文件
$ tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
$ tar -zxvf 打包文件.tar.gz
# 解压缩到指定文件
$ tar -zxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-C | 压缩到指定目录,注意:要解压缩的目录必须存在 |
bzip2
tar
与bzip2
命令结合可以实现文件打包和压缩(用法和gzip
一样)tar
只负责打包文件,但不压缩bzip2
压缩tar
打包后的文件,其扩展名一般用xxx.tar.bz2
- 在
tar
命令中有一个选项-j
可以调用bzip2
从而可以方便的实现压缩和解压缩的功能
# 压缩文件
$ tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
# 解压缩文件
$ tar -jxvf 打包文件.tar.bz2
# 解压缩到指定文件
$ tar -zxvf 打包文件.tar.bz -C 目标路径
软件安装
通过apt安装/卸载软件
- apt是
Advanced Packagin Tool
,是Linux下的一款安装包管理工具 - 可以在终端中方便的安装/卸载/更新软件包
# 1.安装软件
$ sudo apt install 软件包
# 2.写在软件
$ sudo apt remove 软件包
# 3.更新已安装的包
$ sudo apt upgrade
配置软件源
- 如果希望在
ubantu
中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务 - 提示:更新服务器后,需要一个相对比较长的更新过程,需要耐心等待,更新完成后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在位置不同,国内服务器服务器速度会更快一些