Linux知识分享
Linux知识分享
操作系统
-
什么是操作系统?
操作系统(Operating System,简称OS)是管理计算机硬件资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。————摘自百度百科
-
操作系统有哪些?
目前使用比较多的有WINDOWS ,LINUX ,MAC ,UNIX。
-
各操作系统间的关系
不管是WINDOWS操作系统、LINUX系统还是苹果操作系统,甚至包括操作系统的鼻祖UNIX操作系统,最早都是用C语言编写的。
WINDOWS,LINUX,MAC的诞生都或多或少的借鉴了UNIX。
UNIX是一种
分时操作系统
。说明:分时操作系统使一台计算机可以同时为
多个用户
服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片。UNIX系统在结构上分为核心程序(kernel)和外围程序(shell)两部分。
核心部分承担系统内部的各个模块的功能,即处理机和进程管理、存储管理、设备管理和文件系统。
外围部分包括系统的用户界面、系统实用程序以及应用程序,用户通过外围程序使用计算机。
-
各操作系统优缺点:
操作系统 优点 缺点 Windows 啥都有,啥都会 经常出现你不想要的东西 Linux 你让它干嘛,它就能干嘛。 容易折腾坏 Mac 稳定,好看 得按它的规则来
Linux的诞生
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。
Linus Torvalds没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
Linux的logo是一只企鹅。
为什么选择企鹅,坊间流传一种说法:
企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,可国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。
Linux系统结构
Linux系统的结构可以概括为4个部分:内核、shell、文件系统和应用程序。
这个结构与UNIX基本上是一致的,所以UNIX和Linux之间可以说是父子关系。
内核
内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。Linux内核的模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等。
Shell
Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
文件系统
在Linux中一切皆文件。
Linux中的文件类型:
a) 普通文件(-)
js、class、html等这些文件类型都属于普通文件,Linux用户可以根据访问权限对普通文件进行查看、更改、删除。
b) 目录文件(d)
目录文件包含了各自目录下的文件名和指向这些文件的指针。
c) 符号链接文件(l)
类似于windows中的快捷方式,通常称为软连接。
d) 设备文件(b/c)
包括块设备文件(b)
和字符设备文件©
这些设备文件一般都在/dev/目录下。
e) 管道文件§
管道文件主要用户进程间的通讯。进程关闭管道文件也会关闭。
…
linux中的文件是没有拓展名的,一个文件能不能被执行与它是否可执行的属性有关。
上图中第一位为文件类型,“-”表示此文件为普通文件;
第一组"rwx"表示文件创建用户的权限,"r"表示有读权限,"w"表示有写权限,“x"表示有执行权限,那一项为”-"表示没有该权限;
第二组"rwx"表示文件创建用户所属组的权限;
第三组"rwx"表示其他用户的权限;
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发行版
以Linux内核为中心,再集成搭配各种各样的系统管理软件或应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版。
常见的Linux发行版有Debian、centos、Ubuntu、Fedora、deepin、manjaro、Linux mint等。
Debian
- 免费,最符合开源精神的发行版,默认不包含如何专有驱动
- 软件包通常选择稳定的版本而不是最新的
- 系统的开发维护由社区驱动
- apt包管理
- 图形化安装
Ubuntu
比较热门的Linux发行版。
- 安装简单
- unity3d图形界面
- 有些驱动支持较好,比如显卡驱动
- 社区活跃,遇到问题能够很快找到解决方案
- 版本更新快
- apt包管理
Ubuntu还有一些衍生版,主要是桌面环境不一样。
-
Ubuntu
基于Gnome
-
Kubuntu
基于KDE
-
Lubuntu
基于LXDE
-
Xubuntu
基于Xfce
Centos
是著名的RedHat Linux的社区版。
- 相当相当稳定
- 版本更新紧跟RedHat
- 适合最为服务器操作系统使用
- yum包管理
Fedora
经常和Ubuntu比较的发行版,与Ubuntu最大的不同就是包管理不一样
- yum包管理
- 新技术吸纳较快
- 提供多种桌面环境镜像,默认Gnome,可以轻松切换到KDE, XFce, MATE 以及 Cinnamon
- 版本更新快
- 图形化安装
Deepin
- 国产系统
- dpkg包管理
- UI好看
- 中文社区活跃
- 图形化安装
- 仓库中软件版本滞后
- 驱动支持不完善
- 官方文档不更新
Manjaro
基于 Arch Linux, 它是一个运行快速,容易使用,轻量级的发行版。
- pacman包管理
- 轻量级
- 滚动更新
- 软件生态差
Linux Mint
基于Ubuntu开发,易用且功能强大
- 默认使用Cinnamon桌面环境
- 与ubuntu相同特点
连接工具
- Putty
- 轻量
- 支持ppk,pub格式密码连接
- secureCRT
- 支持普通密码和pub格式密码,不支持pem密码连接
- 可实现文件本地与服务器界面式样的上传下载,双击即可使用
- xshell
- 个人版免费
- 支持pem、pub、ppk多种密钥格式
- 自定义配色
- 使用xftp进行文件传输
常用命令
命令格式:命令 -选项 参数 (选项和参数可以为空),如
1 |
|
操作文件及目录
命令 | -常用选项 | 参数 | 说明 |
---|---|---|---|
cat | -n 显示行号 | 文件路径 | 显示文本内容 |
mo= | -NUM 每次显示NUM行 +NUM 从第NUM行开始 +/String 查找字符串 | 文件路径 | 分页显示文件内容,空格向后翻,b向前 |
head | -n 显示行数 | 文件路径 | 查看文本开头部分指定行数 |
tail | -f 循环滚动读取文件动态显示在屏幕上 | 文件路径 | 查看文本结尾内容 |
wc | 文件路径 | 统计文本的行数、字数、字符数 | |
cd | 路径 | 进入路径 | |
mv | 源文件 目标文件 | 移动文件或将文件改名 | |
cp | 源文件 目标文件 | 复制文件或目录 | |
touch | 文件名 | 创建空文件 | |
mkdir | -p 递归创建 | 文件夹名 | 创建文件夹 |
rm | -rf 递归+强制删除 | 文件或目录路径 | 删除文件或目录 |
系统常用命令
命令 | -常用选项 | 示例 | 说明 |
---|---|---|---|
top | -p 指定监控某一进程 | top | 显示系统中各个进程的资源占用状况 |
ps | -ef 显示所有进程+全格式 | ps -ef | grep java | 查看进程 |
netstat | -p 显示进程id和进程名 | netstat -ap | grep ssh | 查看端口情况 |
kill | -9 强制终止 -15 终止 | kill -9 4563 | 杀死进程 |
*注:管道符“|”的作用:格式 命令A|命令B,将命令A的正确输出作为命令B的操作对象
压缩解压缩
命令 | -常用选项 | 示例 | 说明 |
---|---|---|---|
zip | [参数] [压缩后文件名] [要压缩的目录] -r 将目录压缩 | zip -r test.zip tmp/ | 压缩文件或目录 |
unzip | [参数] [待解压缩文件] -d 解压到的路径 | zip -d /opt test.zip | 解压缩文件 |
tar | -zcvf 压缩 -zxvf 解压 | tar -zcvf test.tar.gz tmp/ | 解压缩文件或目录 |
文件权限操作
命令 | 选项 | 示例 | 说明 |
---|---|---|---|
chmod | u表示所属用户,g表示所属组,o表示其他用户,a表示所有用户;+表示增加权限,-表示取消权限,=表示唯一设定权限;r表示可读,w表示可写,x表示可执行,也可以三位数表示 | chmod a+x test.sh | 设置文件或目录的权限 |
chown | -R 递归文件夹 | chown mysql mysql.ini | 改变文件或目录的用户或组 |
常用快捷键
快捷键 | 说明 |
---|---|
ctrl+c | 停止进程 |
ctrl+l | 清屏 |
ctrl+r | 搜索历史命令 |
ctrl+q | 退出 |
tab | 自动补全 |
vim编辑器
命令 | 说明 |
---|---|
i | 在光标前插入 |
I | 在光标当前行开始插入 |
a | 在光标后插入 |
A | 在光标当前行末尾插入 |
o | 在光标当前行的下一行插入新行 |
O | 在光标当前行的上一行插入新行 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
gg | 跳到行首 |
G | 跳到行末 |
:n | 跳到第n行 |
u | undo,取消上一步操作 |
ctrl+r | redo,取消到undo之前 |
x | 删除光标所在处字符 |
dd | 删除光标所在行 |
dG | 删除光标所在行到末尾行的所有内容 |
D | 删除光标到行尾的内容 |
shift+zz | 保存并退出,与:wq作用一样 |