输入流:从键盘或文件中读取内容到内存中
输出流:从计算机内存中把数据写入到文件或显示到显示器
重定向:改变数据流和原来的默认走向
Linux中有三种流:标准输入流,标准输出流,标准错误输出流
输出重定向,通过重定向,可以把输入、输出的信息定向到其他地方,比如把要显示的信息输出到文件中
把输出重定向到文件中时,文件不存在则创建,文件存在时,> 则覆盖,>> 则追加
管道,它将前一个指令的正确输出信息,传递给下一个指令作为输入信息,对错误信息没有直接处理能力
Linux中链接文件有两种:软链接,硬链接
删除软、硬链接对源文件都没有影响;删除源文件,软链接失效,如果文件有多个硬链接则无影响
区别:
软链接,如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径
```shell ln -s 源文件 链接文件 ```
硬链接
ln 源文件 链接文件
在文件内部搜索;对文本文件进行模式查找,如果找到匹配模式,输出包含模式的所有行
grep [-options] 'keywords' 文件路径
选项 | 含义 |
---|---|
-v | 取反 |
-n | 显示行号 |
-i | 忽略大小写 |
grep 搜索关键字可以是正则表达式
参数 | 含义 |
---|---|
^str | 行首,以str开头的行 |
str$ | 行尾,以str结尾的行 |
在内存中搜索文件;通常用来在特定目录下搜索符合条件的文件
find 目录 -options 条件
选项 | 含义 |
---|---|
-name ' [字符列表]? / *.后缀 ' | [字符列表]:包含列表中任意一个字符,*:任意个任意字符,?:一个任意字符 |
-size +xK -size -yM | 查找大于xK且小于yM的文件 |
-perm xxx | 查找权限为xxx的文件或目录 |
归档:将一些文件放在一起变成一个包,便于保存和传输,图片和视频数据不同于文本,多个文件压缩时没有明显效果,因此只能归档进行保存
压缩:压缩也是一种打包,压缩的原理是将文件中相同的信息用一个字符代替,使文件体积变小,对文本和数据类文件有较明显的作用
归档管理,可以把一系列文件归档到一个大文件中,也可以把归档文件解开以恢复数据
# 归档 tar -c [-options] -f 归档文件名.tar 源文件1 源文件2... / 目录 # 解档 tar -x [-options] -f 解档文件名.tar -C 目标目录 # 归档+压缩 tar -z -c [-options] -f 文件名.tar.gz 源文件1 源文件2... / 目录 # 解档+解压 tar -z -x [-options] -f 文件名.tar.gz -C 目标目录
tar 命令 options 前可以使用 ' - ' ,也可以不使用
选项 | 含义 |
---|---|
-c | 创建归档文件 |
-x | 解开归档文件 |
-v | 显示归档、解档的过程 |
-f | 指定归档、解档文件名,f 后面一定是 .tar 文件,所以必须是最后一个options |
-C | 指定解档目录 |
-z | 压缩、解压 |
通过zip压缩文件的目标文件可以不指定扩展名,默认扩展名为zip
zip 压缩文件.zip 源文件
选型 | 含义 |
---|---|
-r | 压缩目录 |
-d | 解压到指定目录下 |
Linux中,每个文件都可以分别对拥有者、同组用户、其他用户设置权限
9个字母分为3组,每组代表一类用户的权限
u:拥有者权限,g:组权限,o:其他用户权限;a:所有用户权限,包括以上三者
r:可读,w:可写,x:可执行(文件:可以运行,目录:可以打开),-:没有权限
对于目录,没有 r 权限就不能通过 ls 查看,没有 w 权限就不能创建文件,没有 x 权限就不能通过 cd 进入
修改文件权限,可以用字母和数字两种方式实现
# 字母表示 chmod 用户+操作+权限 文件 # 数字表示 chomod 权限数字 文件
操作 | 含义 |
---|---|
+ | 增加 |
- | 撤销 |
= | 设置 |
权限 | 含义 |
---|---|
r | 可读取,权限数字:4 |
w | 可写入,权限数字:2 |
x | 可执行,权限数字:1 |
选项 | 含义 |
---|---|
-R | 递归修改目录下所有子目录和文件的权限 |
切换账号
临时提升权限
sudo 用来以其他身份执行命令,预设的身份为 root,在 /etc/sudoers 中设置了可执行 sudo 命令的用户。若未经授权的用户企图使用 sudo,则会发送警告邮件给管理员。用户使用 sudo 时需要先输入密码,之后有5分钟有效期,超时需重输
永久
```shell # 默认切换到 root 用户,需要输入当前用户的密码 sudo -s # 切换到指定用户,需要输入用户名对应的密码,高权限切换到低权限时不需要密码 su 用户名 ```
设置用户密码
管理员用户可以使用该命令为普通用户设置或修改密码,密码长度可以任意设定,不进行验证
用户可以直接使用命令来修改自己的密码,系统默认对密码长度等信息进行验证,不合法则提示修改失败
退出当前登录用户,如果是图形化界面则退出当前终端,如果是 ssh 远程登录则退出登录账户,如果是切换后的登陆用户则退出当前登录账户,回到上一用户
查看当前所有登陆系统的用户信息
选项 | 含义 |
---|---|
-q 或 --count | 只显示用户的账号和登陆用户的数量 |
-u 或 --heading | 显示列标题 |
重启
关机
参数 | 含义 |
---|---|
reboot | 重启操作系统 |
shutdown -r now | 重启操作系统,并通知用户 |
shutdown -h now | 立刻关机 |
shutdown -h H:M | 在今天的 H:M 关机 |
shutdown -h +M | M分钟后关机 |
-c | 取消关机 |
Linux中安装软件常见的三种方式:make install 、deb 包、apt-get
make install:源代码安装包
优点:软件根据实际机器硬件进行配置和编译,性能最好,最稳定
缺点:需要使用源代码编译、安装
dpkg安装deb包
优点:安装包直接运行安装
缺点:存在包依赖的问题,安装时需要手动下载很多安装包
apt-get
优点:最简单的安装方式,只需要安装指令,系统就可以自动下载并安装所有的包
缺点:必须要有软件源
软件源可以理解为提供下载软件的地方,比如IOS中的AppStore
清华大学开源软件镜像站:http://mirrors.tuna.tsinghua.edu.cn
1.备份 Ubuntu 默认的源地址
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
2.更新源服务器列表
sudo gedit /etc/apt/sources.list
3.更新源
sudo apt-get update
软件操作相关指令
# 安装包 sudo apt-get install package # 卸载包 sudo apt-get remove package # 搜索包 sudo apt-cache search package # 重新安装包 sudo apt-get install package --reinstall # 修复安装 sudo apt-get -f install # 更新已安装的包 sudo apt-get upgrade
远程登录
ssh(secure shell)由IETF的网络工作小组所制定,是建立在应用层和传输层基础上的安全协议,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,常用于远程登录以及用户之间拷贝资料
利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题,ssh 最初是 Unix 系统上的一个程序,后来扩展到其他操作平台,ssh 在正确使用时可以弥补网络中的漏洞,ssh 客户端适用于多种平台
使用 ssh 服务需要安装相应的服务器和客户端,如果A机器想被B机器远程控制,那么A机器需要安装 ssh 服务器,B机器需要安装 ssh 客户端
1.安装 ssh server
安装ssh服务器
sudo apt-get install openssh-server
远程登录
ssh 远程ssh服务器用户名@远程ssh服务器IP地址
2.使用 ssh 连接服务器
ssh 告知用户该主机不能识别,此时键入 ' yes ' ,ssh 就会将相关信息写入 ~/.ssh/know_hosts 中,再次访问就不会有这些信息
# 第一步,输入 ssh 用户名和IP地址 ssh user@xxx.xxx.xxx.xxx # 第二步,询问是否继续连接 Are you sure you want to continue connecting (yes/no)? # 第三步,输入用户密码 user@xxx.xxx.xxx.xxx password:
远程拷贝,上传、下载文件,使用该命令的前提是目标主机已经安装 ssh server
上传
scp 本地文件路径 服务器用户名@服务器IP地址:远程路径
下载
scp 服务器用户名@服务器IP地址:远程路径 本地路径
选项 | 含义 |
---|---|
-r | 操作目录 |