Linux笔记01—linux基础入门
什么是操作系统
操作系统(Operating System)是应用程序运行的基础支撑环境;
操作系统的作用是管理和控制计算机系统的硬件与软件资源;
Intel x86架构上常见的操作系统有:windows、Linux、unix等。
有种特殊的Linux支持ARM架构,称为ARM Linux,与标准Linux并不兼容,以下内容以intel X86架构下的linux为例。
Linux操作系统
Linux是开源的基于Intel x86架构的类unix多用户操作系统;
Linux是目前最主要的服务器端操作系统;
互联网大厂都在使用Linux作为服务器主要操作系统。
Linux系统之父:
Linux读音:
标准读音、本人读音(芬兰口音)
欧美读音
中国读音(受到unix读音影响)
Linux为什么受欢迎?
免费使用,自由传播;支持多任务、多用户、多CPU;高效而灵活;
兼容任意 x86架构计算机;强大易用的系统命令;完整的应用软件生态。
Linux发行版本:
Linux系统内核(kernel)提供了Linux 操作系统的核心功能;
不同开发商在内核基础上扩展封装,形成了不同发行版本;
常见的发行版本:Red Hat Linux(红帽收费)、centos(红帽免费开源)、Ubuntu(桌面系统)、SUSE等
Linux发行版选择建议:
桌面系统➡️Ubuntu
服务器操作系统➡️Centos、Red Hat Linux
特定需求➡️Debian(音:滴遍)稳定性、Fedora(音:翡刀rua)新特性、麒麟Linux(国产,用于政府机关,银行等)
Centos - 社区企业操作系统:
基于Red Hat Enterprice Linux 的开源企业级Linux发行版本;
各版本centos都会获得十年的支持,与RHEL保持同步更新;
centos采用社区支持,同时修正了RHFL许多bug。(因为开源,全世界的Linux工程师都在找centos的bug,centos也会越来越完善)
centos版本选择:
centos 5/6 :历史版本已经淘汰
centos7 : 主流版本,稳定成熟,大多数服务器的首选版本
centos8 : 全新版本,基于最新内核,不排除存在漏洞隐患
centos 7 运行要求:
CPU: 1核,建议2核以上
内存:1G ,建议2G以上
硬盘:预留20G可用空间
Linux目录结构
linux区分绝对路径与相对路径。
不同目录下的数据可分布在不同磁盘,所有目录按规则组织与命名。
蓝色是常用目录:
绝对路径 |
用途 | 备注 |
/ | 根目录 | 所有目录的顶点 |
/bin | 常用的二进制命令所在目录 | 如ls、cp、mkdir... |
/boot | linux内核与系统引导程序目录 | 不要随意操作 |
/dev | 设备文件的目录,比如声卡、磁盘、光驱 | 包含相关设备的操作入口,不是存储驱动程序的目录 |
/etc | yum、rpm方式安装的应用程序默认存储配置文件的路径 | |
/home | 用于存放用户的数据 | 用户私人数据,类似windows中我的文档 |
/var | 系统与软件服务运行日志目录 | |
/lib | 启动系统与运行命令所需的共享库文件与内核模块目录 | 类似maven库存放依赖和jar包 |
/proc | 系统运行时,进程信息与内核信息存放在此目录 | |
/root | linux超级用户目录 | 类似windows的administrator |
/sbin | 系统管理命令存放目录,是超级用户root可执行命令的存放地 | |
/usr | 存放用户应用程序的目录,包含两个重要子目录 | |
/usr/local | 编译方式安装程序的默认目录 | |
/usr/src |
程序源码目录 |
远程管理Linux
可以提供良好的设备环境和海量带宽。
通过SSH客户端可以实现。
SSH客户端
什么是SSH: 专为远程登录和其他网络服务提供的安全性协议。
版本:分为两个不兼容版本1.x和2.x,默认通过SSH2.x连接。
工具:基于SSH远程连接工具有很多,最常见的是Xshell和SecureCRT。
Xshell与Xftp
Xshell是著名的Linux客户端,常用于在windows下远程访问;
Xshell同时还支持Telent、Rlogin、Serial等其他连接方式;
Xftp是Xshell配套组件,用于向服务器上传/下载文件。
查看linux系统ip,用于远程连接
左上角应用程序➡️系统工具➡️终端,输入命令:ifconfig
xshell配置:
Linux操作命令
Linux命令格式
命令 [参数选项] [文件或路径]
核心命令:
clear 清屏
cd .. 回到上一级目录
ls 只有目录
ll 目录的详细列表
mkdir 默认只会在已有目录下创建目录(绝对/相对都可)
mkdir -p 目录 可以创建多级目录
mkdir -p -v 目录 可以看到创建的执行过程
mkdir --help 可以看到这个命令能使用的参数
多参数直接用空格分隔或拼在一起(如:-p -v 或 -pv 都是可以的)
cp 文件 目录 将文件复制到对应目录下(绝对/相对路径皆可)
cp -r 目录1 目录2 将目录1及其中全部内容复制到目录2中
mv 文件 新名字 文件重命名
mv 文件 路径 移动文件到指定目录(剪切)
mv 目录1 目录2 将目录1及其中全部内容移动到目录2中
rm 文件 删除某文件(每次都会询问是否确认删除)
rm -f 文件 强制删除某文件(不会再次询问)
rm -rf 目录 强制迭代删除(多级)目录,但轻易不要使用!!比如在目录的第一个/后不小心多了个空格,就会把根目录下所有内容删除。
find 目录 -name *.exe 在目录下按名称查找扩展名为exe的文件
tips:输入部分,按table键可以自动补全剩下的。
vim文本编辑器:
1)啥是vim
vi是Linux重要的系统自带文字编辑工具(类似windows中没有界面的记事本),vim是它的增强版。
vim用于在远程环境下用命令形式对文本进行在线编辑。
2)格式: vim [选项] [文件]
3)vim三种模式
普通模式:默认模式,文本只读,不可编辑。
编辑模式:编辑文本模式,普通模式下按ℹ️键进入,esc键推出。
命令模式:执行保存、搜索、退出等操作。
4)vim常用命令
vim 文件名 查看文件
按home 跳转到行首
按end 跳转到行为
按ℹ️进入编辑模式后,
按backspace可以从右向左删,按delete从左向右删
使用鼠标右键可以进行内容到复制/粘贴
按esc回到普通模式,
输入/[内容] 查找内容,按n定位到下一处,按Shift+n定位到上一处
按u撤回上一步操作
:% s/旧字符串/新字符串/g 全局替换 (要注意影响范围)
:wq 保存并退出
:wq! 强制保存并退出(用于文件本身只读的情况)
:q 退出(文件没有任何修改)
:q! 放弃保存,强制退出(文件有修改)
按dd 删除整行
Linux常用文本工具:
echo “字符(串)” 回车后会打印出引号内字符串
echo “字符(串)” > 文件.扩展名 将引号内字符串输出到文件中
>的含义:将左侧命令所产生的结果重写至右侧对应的文件
>>的含义:将左侧命令所产生的结果追加至右侧对应的文件,多次运行多次追加
cat 文件.扩展名 查看文件内容
cat -n 文件.扩展名 查看文件内容,并在前面显示序号
cat -nE 文件.扩展名 查看文件内容,并在前面显示序号,结尾显示$表示该行结束,某行只有一个$表示该行是一个空白行
cat 文件1 文件2... >> 文件3 将多个文件的内容合并并输出到文件3中
cat > 文件 << 文件结束标识(常用EOF) 开启输入流,将输入内容重写入文件中,输入结束符退出
tail 文件 查看文件最后几行
tail -n 2 文件 查看文件倒数两行
tail -f 文件 动态查看文件倒数几行,当文件内容增加,会自动打印出尾部新追加的内容
grep 要查找的文本 文件 显示出文件中包含要查找文本的行
grep 要查找的文本 文件1 > 文件2 将文件1中包含要查找文本的行输出到文件2
grep -v 要查找的文本 文件 显示出文件中不包含要查找文本的行
tips:要查找的文本可以是正则表达式
通道:|左边的结果送入到右侧进行加工处理
ll | grep 文件 会把当前目录下符合文件名的目录打印出来
ll | grep -E “正则表达式” 会把当前目录下符合扩展正则表达式的目录打印出来
文件打包(tar)与压缩(gzip):
1)Linux压缩程序-gzip
gzip是Linux系统的文件压缩程序;
gzip压缩包文件扩展名.gz;
大流量的网站(如微博)默认都在使用gzip进行数据压缩传输,节省带宽。
2)tar打包与压缩
tar是Linux系统将多个文件打包和压缩的工具;
tar本质是打包软件,扩展名.tar;
tar课结合gzip或其他压缩工具实现打包压缩,扩展名.tar.gz。
压缩命令:
tar zcvf tomcat.tar.gz /usr/local/tomcat
解压命令:
tar zxvf tmomcat.tar.gz -C /usr/local/tomcat
如果不加-C和目录 表示解压到当前目录
tar常用可选项:
tips:输入命令后,连按两下table键,会把当前目录下所有内容及目录列出
安装与卸载应用程序
1)为centos安装第三方应用程序的两种方式:
rpm命令:red hat公司提供的软件包管理器,适用于红帽linux企业版和centos,相当于应用程序安装文件的执行者。简单但不适用所有平台。
编译安装:用户自己从网站下载程序源码进行编译安装。兼容性高,安装过程需要更多命令。
2)yum与rpm
rpm安装过程中,需要用户自己解决依赖问题;
yum通过引入软件仓库,联网下载rpm包及依赖,并依次自动安装(类似maven);
yum是rpm但前端程序,目的就是简化rpm的安装过程。
3)yum常用命令
yum search 应用名 在仓库中查询是否存在指定应用
yum install -y 应用名 全自动下载安装应用及其依赖(-y的意思是遇到所有的询问,默认都用y来回答)
yum info 应用名 查看软件详细信息,包括发行商、大小等
yum list installed 应用名 查看已安装的应用程序
rpm -ql 应用名 查看安装后输出的文件清单
yum remove -y 应用名 全自动卸载指定应用(-y的意思是遇到所有的询问,默认都用y来回答)
4)利用yum 安装tree
tree可以一次性获取某个目录下的所有文件以及该目录下的子文件夹。
执行search命令后,会依次访问以下三个仓库
base 基础库 访问速度最快
extras 扩展仓库
updates 更新仓库 用于存放升级包
在搜索结果中找到应用名称。
安装:
安装好后就可以使用tree命令查看目录了
tree --help可以查看tree的其他命令
安装成功后tree这个命令安装到哪了呢?
which 命令名称 可查看可执行文件的位置
安装tree都安装了哪些文件呢?
rpm -ql 应用名 可以查看都安装了哪些文件
yum list installed 查看当前系统已经安装的命令
yum list installed *tree* 查看当前系统已经安装的包含tree的命令
卸载应用程序:
yum remove 应用名字
5)编译方式安装应用程序
如果yum仓库为提供rpm,往往需要采用编译安装方式;
编译安装是从应用官网下载源码后,对源码进行编译后使用;
编译命令:
make 使用对应编译器对源码编译生成可执行文件。
6)yum与编译安装比较
7)编译安装Redis
1⃣️解压源码压缩包
tar zxvf 文件名
2⃣️进入redis安装目录/src目录,可以看到许多.c、.h文件,这些都是用c语言编写的源码
3⃣️编译源代码
make
第一次执行这个命令的时候会报错,找不到cc命令等
因为make本身没有编译功能,make是通过调用第三方编译工具来完成对源码的编译
因此,在使用make之前,要先安装gcc
gcc是c语言源代码的编译工具包
yum install -y gcc
再次执行make
又会产生其他错误
因为第一次执行make失败会产生一些垃圾文件或其他文件残留,再次运行时就可能会报错
这时,只要回到上一级目录,将redis安装目录删除,重新解压
rm -rf 目录名
tar zxvf 文件名
再进入解压好的redis目录,执行make,就ok了
看到以上提示表示编译安装成功。
yum安装会在usr/bin目录下自动生成可执行命令,但编译安装不会,只能在当前编译的目录中生成应用程序。
在redis目录下的src目录中可以看到redis-server命令
在redis目录中可以看到redis.conf文件,这是redis核心配置文件,在启动redis-server时需要先加载这个文件
执行上述命令即可执行redis,但这样启动后就不能使用其他linux命令了,按ctrl + c 会退回到命令状态,但redis也被停止了。