Linux 是目前应用最广泛的服务器操作系统,基于 Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux 不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android 程序最底层就是运行在 linux 系统上的。
一、linux 的目录结构
- bin (binaries) 存放二进制可执行文件
- sbin (super user binaries) 存放二进制可执行文件,只有 root 才能访问
- etc (etcetera) 存放系统配置文件
- usr (unix shared resources) 用于存放共享的系统资源
- home 存放用户文件的根目录
- root 超级用户目录
- dev (devices) 用于存放设备文件
- lib (library) 存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt (mount) 系统管理员安装临时文件系统的安装点
- boot 存放用于系统引导时使用的各种文件
- tmp (temporary) 用于存放各种临时文件
- var (variable) 用于存放运行时需要改变数据的文件
二、linux 常用命令
- 命令格式:命令 - 选项 参数 (选项和参数可以为空)
- 如:ls -la /usr
以下仅展示常用命令
2.1 操作文件及目录
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| cd | cd /home | 切换目录 | |
| pwd | pwd | 显示当前工资目录路径 | |
| touch | touch 1.txt | 创建空文件 | |
| mkdir | mkdir testdir | 创建一个新目录 | |
| -p | mkdir -p /usr/dir/test | 创建多级目录, 父目录不存在时先生存父目录 | |
| cp | cp /temp/1.txt /usr/ | 复制文件或目录 | |
| -r | cp -r dir1/ | 递归处理, 将制定目录下的文件与子目录一并拷贝 | |
| mv | mv dir1 dir2 | 移动/重命名文件或目录 | |
| rm | rm 1.txt | 删除文件 | |
| -r -f |
rm -rf dir | r: 同事删除该目录下的所有文件 f: 强制删除文件或目录 |
|
| rmdir | rmdir dir | 删除空目录 |
2.2 系统常用命令
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| top | top | 显示当前系统中耗资源最多的进程 | |
| date | date | 显示系统当前时间 | |
| ps | 较少单独使用, 配参数根据需求. ps -ef / ps -aux | ||
| -e / -A | ps -e | 显示所有进程 / 环境变量 | |
| -f | ps -ef | 全格式显示 | |
| -a | ps -a | 显示所有用户的所有进程(包括其他用户) | |
| -u | ps -au | 按用户名和启动时间的顺序来显示进程 | |
| -x | ps -aux | 显示无控制终端的进程 | |
| kill | -9 | kill -9 [pid] | 强制杀死一个进程 |
| df | df | 显示文件系统磁盘空间的使用情况 | |
| -h | df -h | 以kb/Mb/Gb的方式显示文件系统磁盘空间的使用情况 | |
| du | 显示指定的目录及子目录已使用的磁盘空间的总和 | ||
| -s | du -s * | 显示指定目录的总和, *当前目录下便是所有 | |
| -h | du -sh * | 以kb/Mb/Gb的方式显示 | |
| free | 显示当前内存和交换空间的使用情况 | ||
| ifconfig | ifconfig | 网卡网络配置, 常用于查看当前 IP 地址 | |
| ifconfig eth0 192.168.1.22 | 临时修改系统 IP (重启后失效) | ||
| ping | ping baidu.com | 测试网络的连通性 | |
| hostname | hostname | 查看主机名 | |
| shutdown | -r | shutdown -r | 先关机, 再重启 |
| -h | shutdown -h | 关机后不重启 | |
| halt | halt | 关机后关闭电源, 相当于 shutdown -h | |
| reboot | reboot | 重新启动, 相当于 shutdown -r |
2.3 压缩解压缩
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| gzip | gzip 1.txt | 压缩后面的文件或文件夹 | |
| -d | gzip -d 1.txt.gz | 解压后面的压缩文件 | |
| -[num] | gzip -9 1.txt | 用指定的数字调整压缩速度, num 越大速度越慢,压缩比越高, 缺省值为 6 | |
| tar | -C | tar -cvf 1.tar 1.txt | 压缩文件, 将1.txt 压缩为 1.tar. 也可指定多个文件/文件夹 |
| -x | tar -xvf 1.tar 1.txt | 解压1.tar | |
| -z | tar -zcvf 1.tar.gz 1.txt tar -zxvf 1.tar.gz 1.txt |
是否需要用gzip, 使用gzip压缩/解压 | |
| -v | 压缩的过程中显示文件 | ||
| -f | 使用档名, 在 f 之后要立即接档名 |
2.4 文件权限操作
-
linux 文件权限的描述格式解读
文件权限
- r 可读权限,w 可写权限,x 可执行权限(也可以用二进制表示 111 110 100 --> 764)
- 第 1 位:文件类型(d 目录,- 普通文件,l 链接文件)
- 第 2-4 位:所属用户权限,用 u(user)表示
- 第 5-7 位:所属组权限,用 g(group)表示
- 第 8-10 位:其他用户权限,用 o(other)表示
- 第 2-10 位:表示所有的权限,用 a(all)表示
| 命令 | 参数 | 示例 | 说明 |
|---|---|---|---|
| chmod | chmod u+r 1.txt | 修改文件或目录的权限(例: 修改1.txt 文件给当前用户添加可读权限) u 表示当前用户 g 表示同组用户 o 表示其他用户 r 表示可读 w 表示可写 x 表示可执行 |
|
| -R | chmod -R u+r dir1 | 修改指定目录及其子目录的所有文件的权限 | |
| [num] | chmod 764 1.sh | num 为三位数 7: 可读可写执行, 4+2+1 6: 可读可写, 4+2 |
|
| chown | chown user1 group1 1.txt | 修改文件的所属用户和组 | |
| -R | chown -R user1 group1 1.txt | 修改目录下所有文件及子目录的所属用户和组 用数字表示权限(r=4, w=2,x=,-=0) |
三、linux 系统常用快捷键及符号命令
| 命令 | 示例 | 说明 |
|---|---|---|
| ctrl + c | 停止进程 | |
| ctrl + i | 清屏 | |
| ctrl + r | 搜索历史命令 | |
| ctrl + q | 退出 | |
| tab | 自动补全 | |
| > | echo "haha" > 1.txt | 将前一条命令的输出,下入到后面的文件中 将文件清空然后写入 |
| >> | echo "haha" >> 1.txt | 将前一条命令的输出,下入到后面的文件中 不清空文本, 追加内容 |
| | | cat 1.txt | grep 'hello' | 管道命令, 以前一个命令的输出作为输入, 然后进行运算 例: 打印1.txt 中带有 hello字符串的行 |
| * | 通配符, 指所有 |
四、vim 编辑器
vi / vim 是 Linux 上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单,下图表示 vi 命令的各种模式的切换图。
vim编辑器模式
4.1 修改文本
| 命令 | 说明 |
|---|---|
| i | 在光标 <u>前</u> 插入 |
| I | 在光标当前行 <u>开始</u> 插入 |
| a | 在光标 <u>后</u> 插入 |
| A | 在光标当前行 <u>末尾</u> 插入 |
| o | 在光标当前行的 <u>下一行</u> 插入新行 |
| O | 在光标当前行的 <u>上一行</u> 插入新行 |
| :wq | 保存并退出 |
| :!q | 强制退出 |
4.2 定位命令
| 命令 | 说明 |
|---|---|
| :set nu | 显示行号 |
| I | 在光标当前行 <u>开始</u> 插入 |
| :set nonu | 取消行号 |
| gg | 跳到首行 |
| G | 跳到末行 |
| :n | 跳到第 n 行 |
4.3 替换和取消命令
| 命令 | 说明 |
|---|---|
| u | undo, 取消上一步操作 |
| ctrl + r | redo, 返回到 undo 之前 |
| r | 替换光标所在处的字母 |
| R | 从光标所在处开始替换, 按 ESC 键结束 |
4.4 删除命令
| 命令 | 说明 |
|---|---|
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后的 n 个字符 |
| dd | 删除光标所在行. ndd 删除 n 行 |
| dG | 删除光标所在行到末尾行的所有内容 |
| D | 删除光标所在处到行尾的内容 |
| :5,7d | 删除指定范围的行 |
常用快捷键
| 命令 | 说明 |
|---|---|
| shift + zz | 保存退出, 与 ":wq" 相同 |
| v | 进入字符可视模式 |
| V | 进入行可视模式 |
| ctrl + v | 进入块可视模式 |