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也被停止了。 

posted @ 2020-10-07 23:11  阿江是个程序猿  阅读(271)  评论(0编辑  收藏  举报