Linux学习

时间:2020-02-25 20:28:42   收藏:0   阅读:77

Linux教程

Linux的应用领域
Linux进阶之路
  1. linux环境下基本操作命令、文件操作命令、编辑工具使用、linux用户管理
  2. linux中各种配置
  3. linux下搭建开发环境
  4. shell脚本、对Linux服务器进行维护
  5. 进行安全设置、防止攻击,保障服务器正常运行,对系统调优
  6. 深入理解linux(对内核有研究),熟练掌握大型网站应用架构组成、熟悉各个环节的部署与维护

一、Linux入门

1.1 Linux介绍

  1. Linux是一款操作系统,免费,开源 ,安全,高效,稳定,处理高并发非常强悍

  2. Linux创始人 linus 林纳斯

  3. Linux吉祥物

    技术图片

  4. Linux发行版

    RedHat Ubuntu Suse opensuse

  5. 目前主要的操作系统

    windows android linux ios 车载系统

1.2 Linux与Unix的关系

贝尔实验室麻省理工学院,通用电气公司开发分时操作系统,后感觉太过庞大,故遗弃。

后来Ken tompson 肯?汤普森在此基础上,使用B语言开发了Unix系统

肯?汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发操作系统,就这样,UNIX 诞生了。

后期,使用c语言重写了Unix,在此基础上,IBM、Sun、hp等公司相继开发出属于自己的Unix系统,

它们开发出的Unix非常昂贵,并不开源,并且必须运行在配置很高的计算机上!

Richard Stallman认为在自由的时代,用户应该免费享有对软件源代码阅读、修改的权力。软件公司可以靠提供服务和训练获得盈利。故 Richard Stallman 提出了 GNU计划!

GNU计划

技术图片

Linux 内核最初是由李纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。

李纳斯?托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。

1.3 Linux与Windoes比较

比较 Window Linux
免费与收费 收费且贵 免费或很少费用
软件与支持 数量与质量的优势,大部分为收费软件,由微软提供支持和服务 开源自由软件,基本免费,没有资金支持,体现性较低,有全球的Linux开发者与自由软件社区提供支持
安全性 经常打补丁 比Windows略强
使用习惯 大多数依靠鼠标完成,纯图像界面,入门简单 图形界面+命令行,可以只使用键盘完成一切操作,入门较难,一旦入门,熟练后效率极高
可定制性 封闭 开源
应用场景 桌面操作系统 服务器

二、Linux的安装

2.1 VMware安装

2.2 Cenots安装

网络适配器

技术图片

虚拟机网络连接的三种形式说明

2.3 安装vmtools

目前自带,不用自己整

三、Linux的目录结构

Linux文件系统采用级层式的树状目录结构,在此结构的最上层是根目录"/",然后再此目录下再创建其他目录。

Linux世界里,一切皆是文件

技术图片

四、Linux远程登陆

一般情况,真实的Linux服务器,并不在本机上

远程登陆到Linux的工具:

上传下载工具:

需要Linux开启sshd服务22

Linux ip地址查询

ifconfig

远程登陆

技术图片

技术图片

远程上传下载

技术图片

技术图片

五、vi/vim编辑器

5.1 Vim 的三种模式

5.2 常用Vim 命令

删除一个字符              x
删除一行                 dd
删除换行                 J
撤销                    u
ctrl + R               取消撤销

复制                    y
....

技术图片

六、开机、重启、用户登陆与注销

6.1 关机,重启

shutdown -h now                 立即关机
shutdown -h 1                   一分钟后关机
shutdown -r now                 重启
halt                            关机
reboot                          重启
sync                            把内存的数据同步到磁盘

6.2 用户登陆和注销

logout                          注销用户

七、用户管理

7.1 用户家目录

/home目录下有各个创建的用户对应的家目录,当用户登陆时,会自动进入家目录

7.2 用户管理

useradd 用户名             添加用户

passwd 用户名              给用户指定密码

userdel 用户名             删除用户(保护家目录)

userdel -r 用户名          删除用户(删除用户主目录)

su - 用户名                切换用户名

exit                      返回原来用户

whoami                    查看当前用户

7.3 用户组管理

用户组:类似于角色,系统可以对有共性的多个用户进行统一的管理。

groundadd 组名                增加组

groupdel 组名                 删除组

useradd -g 用户组 用户名        增加用户时直接加上组

usermod -g 用户组 用户名        修改用户的组

7.4 用户和组的相关文件

八、实用指令

8.1 指定运行级别

系统的运行级别配置文件 /etc/inittab

  1. 关机
  2. 单用户(root用户密码忘记可以找回)
  3. 多用户(无网络服务)
  4. 多用户(有网络服务)
  5. 保留
  6. 图形界面
  7. 重启

8.2 切换到指定运行级别的指令

命令:init[012356]

8.3 帮助指令

百度更直接

8.4 文件目录类

8.5 时间日期类

8.6 搜索查找类

8.7 压缩和解压类

九、组管理和权限管理

9.1 Linux组基本介绍

在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有组、所在组、其他组的概念。

9.2 权限的基本介绍

ls -l 中显示内容如下

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9位说明

  1. 第0位确定文件类型(d目录,-普通文件,c字符设备,b块文件)

    -普通文件

    b块文件

  2. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限

    r:可读(文件)可读(目录)

    w:可写(文件)可修改(目录)

    x:可以被执行(文件)可以进入目录(目录)

  3. 第4-6位确定所属组(同用户组的)拥有该文件的权限

  4. 第7-9位确定其他用户拥有该文件的权限

技术图片

十、定时任务调度

十一、Linux磁盘分区、挂载

11.1 分区基础知识

分区的方式
Linux分区
  1. Linux无论有多少分区,只有一个根目录
  2. Linux采用“载入”处理。它的整个文件系统中包含了一整套的文件和目录

Linux磁盘分为IDE硬盘和SCSI硬盘,目前基本是SCSI硬盘

11.2 磁盘情况查询

语法:

df -h /目录 (查询指定目录的磁盘占用情况,默认为当前目录)

-s 指定目录占用大小汇总

-a 含文件

-max-depth=1 子目录深度

-c 列出明细的同时,增加汇总量

11.3 工作实用指令

  1. 统计/home 文件夹下文件的个数

    ls -l /home | grep "^-" | wc -l
  2. 统计/home 文件夹下目录的个数

    ls -l /home | grep "^d" | wc -l
  3. 统计/home 文件夹下文件的个数,包括子文件夹里的

    ls -lR /home | grep "^-" | wc -l
  4. 统计文件夹下文件的个数,包括子文件夹里的

    ls -lR /home | grep "^d" | wc -l
  5. 以树状显示目录结构

    yum install tree
    tree

十二、网络配置

12.1 Linux网络配置原理图(含虚拟机)

目前我们的网络配置采用的是NAT

技术图片

12.2 查看网络IP和网关

12.3 Ping的使用

12.3 Linux网络环境配置

重启网络服务

service network restart

十三、进程管理

13.1 基本介绍

  1. Linux中,每个执行的程序(代码)都称之为一个进程。每个进程都分配一个id号
  2. 每一个进程,都会对应一个父进程,父进程可以复制多个子进程
  3. 每个进程都可能以两种方式存在。前台与后台。
  4. 一般系统的服务都是以后台进程的方式存在,而且会常驻在系统中。知道关机

13.2 显示系统执行的进程

ps命令

-a :显示当前终端所有进程信息

-u :以用户的格式显示进程信息

-x :显示后台进程运行的参数

字段 说明
PID 进程识别号
TTY 终端机号
TIME 此进程所消CPU时间
CMD 正在执行的命令或进程名
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

13.3 终止进程Kill和Killall

Kill [选项] 进程号 :杀死进程

killall 进程名称 :支持通配符

13.4 查看进程树

pstree [选项]

-p :显示PID

-u :显示所属用户

13.5 服务管理

服务本质就是进程,但是是运行在后台的,通常都会监听某个接口,等待其他程序的请求,因此我们称之为守护进程

service管理指令

service 服务名 start | stop | restart | reload | status

chkconfig指令

给每个服务的各个运行级别设置自启动/关闭

查看服务 chkconfig -list|grep xxx

chkconfig 服务名 --list

chkconfig -level 5 服务名 on/off

13.6 动态监控进程

top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,处于top在执行一段时间可以更新正在运行的进程

top[选项]

-d 秒数 :top命令 每隔几秒更新

-i :使top不显示任何闲置或者僵死进程

-p :通过指定监控进程ID来仅仅监控某个进程的状态

交互操作说明

p :以cpu使用率排序,默认就是此项

m :以内存的使用率排序

n :以pid排序

q :退出top

十四、RPM 与 YUM

14.1 rpm包的管理

一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。他生成具有.RPM扩展名的文件。RPM是RedHat Package Manager 的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

rpm -qa :查询所安装的所有rpm软件包

rpm -q 软件包名 :查询软件包是否安装

rpm -qi 软件包名 :查询软件包信息

rpm -e 包名称 :卸载RPM软件包

rpm -e --nodeps 包名称 :强制卸载(不建议使用)

14.2 Yum包的管理

Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

yum list|grep xx软件列表 :查询yum服务器是否有需要安装的软件

yum install xxx :下载安装

十五、APT与SSH

15.1 APT

apt是Advanced packaging Tool 的简称,是一款安装包管理工具。在Ubuntu下,我们可以使用apt命令安装软件包、删除软件包、清理软件包等。类似于windows的软件管理工具。

1.搜索软件
sudo  apt-cache  search  package_name
其中还可以使用正则表达式 sudo apt-cache search sof* 这样就可以搜索到源上面所有以sof开头的软件包。

2.查看软件包信息
sudo apt-cache show package_name

3.查看软件包依赖关系
sudo apt-cache show depends package_name

4.查看每个软件包的简要信息
sudo apt-cache dump

5.安装软件
sudo apt-get install  package_name

6.更新已安装的软件包
sudo apt-get  upgrade

7.更新软件包列表
sudo apt-get update

8.卸载一个软件包但是保留相关的配置文件
sudo apt-get remove package_name

9.卸载一个软件包同时删除配置文件
apt-get -purge remove package_name

10.删除软件包的备份
apt-get clean

15.2 SSH

SSH为Secure Shell 的缩写,由IETE的网络工作小组所制定;SSH为建立在应用层和传输层基础上的安全协议。

SSH是目前较可靠,转为远程登陆会话和其他网络服务提供安全性的协议。常用于远程登陆,以及用户之间进行资料拷贝。

使用SSH服务需要安装相应的服务端和客户端,Ubuntu和Centos不同的是,没有默认安装SSHD服务!

sudo apt-get install openssh-server
Linux安装SSH服务端和客户端

service sshd restart
启动sshd服务。会监听端口22

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!