一、Linux简述
1、概述
- Linux是目前应用最广泛的服务器操作系统;
- 基于Unix,开源免费;
- 由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境;
- linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。
2、目录结构

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)用于存放运行时需要改变数据的文件
二、常用指令
命令格式:命令 - 选项 参数【命令和参数可以为空】
1、操作文件及目录
指令 | 参数 | 示例 | 描述 |
---|
cat | | cat 1.txt | 显示文本文件内容 | more | | more 1.txt | 分页显示文本文件内容,可以前后翻页,空格向后,b向前 | less | | less 1.txt | 分页显示文本文件内容,可以前后翻页,空格向后,b向前,支持底行模式 | head | | head 1.txt | 查看文本开头部分;默认十行 | head | -[num] | head -20 1.txt | 查看文本开头部分指定行数 | tall | | tall 1.txt | 查看文本结尾部分;默认十行 | tall | -f | tall -f 1.txt | 循环滚动读取文件并动态显示在屏幕上;根据文件属性追踪 | tall | -F | tall -F 1.txt | 循环滚动读取文件并动态显示在屏幕上;文件文件名追踪 | wc | | wc 1.txt | 统计文本的行数、字数、字符数 | wc | -m | wc -m 1.txt | 字符数 | wc | -w | wc -w 1.txt | 文本字数 | wc | -l | wc -l 1.txt | 文本行数 |
2、系统常用指令
指令 | 参数 | 示例 | 描述 |
---|
top | | top | 显示当前系统中耗费资源最多的进程 | data | | data | 显示系统当前时间 | ps | -e/-A | ps -e | 显示所有进程;环境变量 | ps | -f | ps -ef | 全格式显示 | ps | -a | ps -a | 显示所有用户的所有进程(包括其他用户) | ps | -u | ps -au | 按用户名和启动时间顺序显示进程 | ps | -x | ps -aux | 显示无控制终端的进程 | kill | -9 | kill -9 pid | 强制杀死一个进程 |
3、压缩解压缩
指令 | 参数 | 示例 | 描述 |
---|
gzip | | gzip 1.txt | 压缩后面的文件或者文件夹 | gzip | -d | gzip -d 1.txt gz | 解压后面的压缩文件 | tar | -c | tar -cvf 1.tar 1.txt | 建立一个压缩文件的参数指令;例如将1.txt压缩为1.tar,也可指定多个文件或者文件夹 | tar | -x | tar -cvf 1.tar 1.txt | 解开一个压缩文件的参数指令 | tar | -z | tar -zcvf[zxvf] 1.tar 1.txt | 是否需要用gzip,使用gzip压缩或者解压 | tar | -v | | 压缩的过程中显示文件 | tar | -f | | 使用档名,在f之后要立即接档名 |
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 | 修改文件或目录的权限;u表示当前用户;g表示同组用户;o表示其他用户;a表示所有用户;r表示可读;w表示可写;x表示可执行 | chmod | -R | chmod -R u+r dir1 | 修改指定目录及其子目录的所有文件的权限 | chmod | 三位数字 | chmod 746 1.sh | 直接指定文件的权限。7:表示可读可写可执行,4+2+1;6:表示可读可写,4+2;… |
5、常用快捷键及符号命令
指令 | 参数 | 示例 | 描述 |
---|
Ctrl+C | | | 停止进程 | Ctrl+L | | | 清屏 | Ctrl+r | | | 搜索历史命令 | Ctrl+q | | | 退出 | tap | | | 自动补全 | > | | echo “haha” >> 1.txt | 将前一条命令的输出,写入到后面的文本中;将文本清空,然后写入 | >> | | echo “haha” >> 1.txt | 将前一条命令的输出,写入到后面的文本中;不清空文本,追加到文本最后 | * | | | 速配符,指所有 |
6、系统信息
指令 | 描述 |
---|
arch | 显示机器的处理器架构 | uname -m | 显示机器的处理器架构 | uname -r | 显示正在使用的内核版本 | dmidecode -q | 显示硬件系统部件 - (SMBIOS / DMI) | cat /proc/cpuinfo | 显示CPU info的信息 | cat /proc/interrupts | 显示中断 | cat /proc/meminfo | 校验内存使用 | cat /proc/swaps | 显示哪些swap被使用 | cat /proc/version | 显示内核的版本 | cat /proc/net/dev | 显示网络适配器及统计 | cat /proc/mounts | 显示已加载的文件系统 | lspci -tv | 罗列 PCI 设备 | lsusb -tv | 显示 USB 设备 | date | 显示系统日期 | cal 2007 | 显示2007年的日历表 | clock -w | 将时间修改保存到 BIOS |
7、关机、重启、登出
指令 | 描述 |
---|
shutdown -h now | 关闭系统 | init 0 | 关闭系统 | telinit 0 | 关闭系统 | shutdown -h hours:minutes & | 按预定时间关闭系统 | shutdown -c | 取消按预定时间关闭系统 | shutdown -r now | 重启 | reboot | 重启 | logout | 注销 |
8、文件和目录
指令 | 描述 |
---|
cd /home | 进入 ‘/ home’ 目录’ | cd … | 返回上一级目录 | cd …/… | 返回上两级目录 | cd | 进入个人的主目录 | cd ~user1 | 进入个人的主目录 | cd - | 返回上次所在的目录 | pwd | 显示工作路径 | ls | 查看目录中的文件 | ls -F | 查看目录中的文件 | ls -l | 显示文件和目录的详细资料 | ls -a | 显示隐藏文件 | ls [0-9] | 显示包含数字的文件名和目录名 | tree | 显示文件和目录由根目录开始的树形结构 | lstree | 显示文件和目录由根目录开始的树形结构 | mkdir dir1 | 创建一个叫做 ‘dir1’ 的目录’ | mkdir dir1 dir2 | 同时创建两个目录 | mkdir -p /tmp/dir1/dir2 | 创建一个目录树 | rm -f file1 | 删除一个叫做 ‘file1’ 的文件’ | rmdir dir1 | 删除一个叫做 ‘dir1’ 的目录’ | rm -rf dir1 | 删除一个叫做 ‘dir1’ 的目录并同时删除其内容 | rm -rf dir1 dir2 | 同时删除两个目录及它们的内容 | mv dir1 new_dir | 重命名/移动 一个目录 | cp file1 file2 | 复制一个文件 | cp dir/* | 复制一个目录下的所有文件到当前工作目录 | cp -a /tmp/dir1 . | 复制一个目录到当前工作目录 | cp -a dir1 dir2 | 复制一个目录 | cp -r dir1 dir2 | 复制一个目录及子目录 | ln -s file1 lnk1 | 创建一个指向文件或目录的软链接 | ln file1 lnk1 | 创建一个指向文件或目录的物理链接 | find / -name file1 | 从 ‘/’ 开始进入根文件系统搜索文件和目录 | find / -user user1 | 搜索属于用户 ‘user1’ 的文件和目录 | find /home/user1 -name *.bin | 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件 | find /usr/bin -type f -atime +100 | 搜索在过去100天内未被使用过的执行文件 | find /usr/bin -type f -mtime -10 | 搜索在10天内被创建或者修改过的文件 | find / -name *.rpm -exec chmod 755 ‘{}’ | 搜索以 ‘.rpm’ 结尾的文件并定义其权限 | | find / -xdev -name *.rpm | 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备 | locate *.ps | 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令 | whereis halt | 显示一个二进制文件、源码或man的位置 | which halt | 显示一个二进制文件或可执行文件的完整路径 |
三、vim编译器
vi / vim是Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单,下图表示vi命令的各种模式的切换图 
1、修改文本
指令 | 描述 |
---|
i | 在光标前插入 | l | 在光标当前行开始插入 | a | 在光标后插入 | A | 在光标当前行末尾插入 | o | 在光标当前行的下一行插入新行 | O | 在光标当前行的上一行插入新行 | :wq | 保存并退出 |
2、定位命令
指令 | 描述 |
---|
:set nu | 显示行号 | :set nonu | 取消行号 | gg | 调到首行 | G | 跳到末行 | :n | 跳到第n行 |
3、替换和取消命令
指令 | 描述 |
---|
u | undo;取消上一步操作 | Ctrl+r | redo,返回到undo之前 | r | 替换光标所在处的字符 | R | 从光标所在处开始替换,按Esc键结束 |
4、删除命令
指令 | 描述 |
---|
x | 删除光标所在处字符 | nx | 删除光标所在处后的n个字符 | dd | 删除光标所在行,ndd删除n行 | dG | 删除光标所在行到末尾行的所有内容 | D | 删除光标所在处到行末尾的内容 | 5.7d | 删除指定范围的行 |
5、常用快捷键
指令 | 描述 |
---|
shift+zz | 保存退出 | v | 进入字符可视模式 | V | 进入行可视模式 | Ctrl+v | 进入块可视模式 |
四、参考资料
1、命令枚举
ls命令:
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
cp命令:
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
操作命令:
Enter 向下 n 行,需要定义。默认为 1 行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
less命令:
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
-x <数字> 将“tab”键显示为规定的数字空格
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
which命令:
which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。
whereis命令:
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
locate命令:
-l num(要显示的行数)
-f 将特定的档案系统排除在外,如将proc排除在外
-r 使用正则运算式做为寻找条件
chmod命令:
常用参数:
-c 当发生改变时,报告处理信息
-R 处理指定目录以及其子目录下所有文件
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组
权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限
df命令:
-a 全部文件系统列表
-h 以方便阅读的方式显示信息
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地磁盘
-T 列出文件系统类型
du命令:
-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
ps命令:
-A 显示所有进程
a 显示所有进程
-a 显示同一终端下所有进程
c 显示进程真实名称
e 显示环境变量
f 显示进程间的关系
r 显示当前终端运行的进程
-aux 显示所有包含其它使用的进程
kill命令:
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
free命令:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s<间隔秒数> 持续显示内存
-t 显示内存使用总合
2、参考资料
Linux 最常用命令 Linux常用命令大全
|