1.简介

Why Linux?
作为服务器:免费、稳定、性能好
版本
服务器用redhat,桌面用ubuntu;centos是redhat的商业版本
基本思想
一切都是文件:命令、设备、进程...
选择虚拟机
VMware Workstation Player

2.选择虚拟机网络模式

桥接
将虚拟机作为局域网的一个成员
NAT
主机作为路由器,虚拟一个局域网来包含所有虚拟机
Host-Only
不提供地址转换的虚拟局域网(不能与外部通信)

3.How to learn?

搭建环境
vmware安装linux
内容
使用字符界面(图形界面在工作中用不上)
掌握命令(用户接口)
了解“在什么情况下,使用哪方面的命令”;不要“死记硬背”,使用帮助系统

1.分区

swap
虚拟内存(与物理内存相当)
/boot
引导(100M足够)
/home
用户数据文件(独立于系统存在,不受重装系统的影响)
/
root目录

2.系统启动过程

内核引导
运行init
系统初始化
建立终端(6个)
用户登录

3.登录过程

输出“最近一次的登录信息”:何时登录了哪个终端
执行 /etc/profile
执行用户主目录下的 .bash_profile (可能调用其它配置文件)
配置文件设定好各种【环境变量】

4.常用快捷键

Ctrl+C
终止当前命令
Ctrl+D
退出终端 (exit)
Ctrl+Z
暂停进程(可使用fg恢复)
Ctrl+L
清屏
Tab
自动补全

5.目录结构介绍

/bin
常用命令
/boot
启动时的核心文件
/dev
外部设备(与文件的访问方式相同)
/etc
系统管理所需要的配置文件
/home
用户的文件
/lib
系统管理所需要的配置文件
/lost+found
非法关机后存储的文件
/media
挂载设备
/mnt
临时挂载别的文件目录
/opt
应用软件的安装目录
/proc
映射系统内存
/root
系统管理员
/sbin
系统管理员用的命令
/selinux
安全机制(类似windows防火墙)
/srv
存放服务启动后需要提取的数据
/sys
(linux2.6内核新出现的)文件系统sysfs
/tmp
临时文件
/usr
用户的应用程序和文件(类似windows的program files)
/var
经常变化的文件(比如:日志文件)

6.正确关机流程

sync
将内存信息写入硬盘
shutdown
安全关机

7.忘记root密码,怎么破?

重启
3秒内按下回车,输入e
在第2行输入 _single,回车
输入 b,进入单用户模式
输入 passwd,修改密码

8.远程登录

理论基础
远程登录通过ssh服务(默认端口:22)来提供
下载终端登录软件
Putty, SSH Secure Shell, Xshell 等
启动ssh服务
service sshd start

1.路径

绝对路径
'/'开头
相对路径
非 ...
输入命令
找到“$PATH/命令”这个文件,并运行
环境变量
就是操作系统中的“静态变量”(系统环境变量/用户环境变量 的作用域不同)

2.管理“目录文件”

创建目录
mkdir -p
删除目录
rm -rf
当前目录
pwd
查看目录
ls
创建文件
touch
写入文件
echo '文本'' > [文件名]
追加到文件
echo '文本'' >> [文件名]
查看文件
cat / less / more / tail -f (动态增加的文件:如日志)
拷贝
cp -d
移动
mv
重命名
mv
搜索命令
which (只能在$PATH目录下寻找命令文件)
搜索文件
find [路径] [参数]
建立硬连接
ln [来源文件] [目的文件]
建立软连接
ln -s [来源文件] [目的文件]

3.管理“目录文件”的属性

查看属性
ll
更改user
chown -r [用户名] [文件名]
更改group
chgrp [组名] [文件名]
更改权限
chmod [权限] [文件名]

4.属性含义

文件类型
1
user权限
2,3,4 [r:4 w:2 x:1](二进制范围: 0-7)
group权限
5,6,7 [r:4 w:2 x:1]
other权限
8,9,10 [r:4 w:2 x:1]

5.文件类型

-
普通文件
d
目录
l
链接文件 (硬连接:指向block 软连接:指向inode)
b
备份文件
c
字符设备
s
socket
备注
在linux文件系统中,block存储内容,inode是指向block的指针

1.存储用户的文件: /etc/passwd

用户名
1
密码
2 用x代替
用户Id
3
组Id
4
注释
5
家目录
6 登录后进入的目录
shell
7 登录后启动的UI (分2类:图形界面如windows / 命令行界面如bash)

2.存储密码的文件: /etc/shadow

用户名
1
密码
2
更改日期
3 何时修改了密码
修改间隔
4 过了这个间隔,才能修改密码
到期日期
5 过期不更改密码,不允许登录
警告间隔
6 提前几天,提醒用户修改密码
失效间隔
7 过期几天后,账号锁定
失效日期
8 这一天后,账号锁定

3.sudo的配置文件: /etc/sudoers

sudo是否安装
rpm -q sudo
编辑sudo
visudo

4.管理 user 和 group

新增用户组
groupadd
删除用户组
groupdel
新增用户
useradd
删除用户
userdel
修改密码
passwd [用户名]
切换用户
su - [用户名]

1.常用命令

文件系统大小
df -h
目录大小
du -s [目录名]
磁盘分区
fdisk
挂载设备
mount [设备] [目录名]
卸载设备
umount [设备]
挂载光驱
mount /dev/cdrom /mnt
卸载光驱
umount /dev/cdrom /mnt

1.三种模式

一般模式
移动光标、粘贴、复制、删除
编辑模式
修改字符
命令模式
保存、退出、搜索

2.模式切换

默认
打开文件 -> 一般模式
i
一般模式 -> 编辑模式
ESC
编辑模式 -> 一般模式
:
一般模式 -> 命令模式

3.一般模式下的命令

查找
/字符
删除整行
dd
复制整行
yy
粘贴整行
p
撤销
u

4.命令模式下的命令

保存
w
退出
q
不保存退出
q!
保存退出
wq
显示行号
set nu
取消行号
set nonu

1.普通压缩

压缩
zip -r [xx.zip] [目录1] [目录2]
解压
unzip [xx.zip] -d [解压目录]

2.程序打包源码

目录合并成一个文件
tar -cvf [xx.tar] [目录]
文件解压到当前目录
tar -xvf [xx.tar]
打包同时用gzip压缩
tar -zcvf [xx.tar.gz] [目录]
拆包同时用gzip解压
tar -zxvf [xx.tar.gz]

1.软件安装包的类型

可执行程序
软件名-版本-平台.rpm
源代码包
xx.压缩格式

2.使用rpm管理软件

安装rpm软件
rpm -ivh 软件名-版本-平台.rpm
升级rpm软件
rpm -uvh 软件名-版本-平台.rpm
卸载rpm软件
rpm -e 软件名
检查是否安装
rpm -q 软件名
查看软件信息
rpm -qi 软件名
列出包含的文件
rpm -ql 软件名
文件属于哪个包
rpm -qf [文件绝对路径]

3.使用yum管理软件,自动下载相关依赖(增强的rpm,相当于Nuget, Gulp, Maven)

安装源所在目录
/etc/yum.repos.d/
安装软件
yum install 软件名
升级软件
yum update 软件名
卸载软件
yum remove 软件名
可更新的软件
yum list update
可安装的软件
yum list |grep [软件名]

4.只下载不安装

先安装支持插件
yum install yum-utils.noarch
下载到默认目录
yum install unzip.x86_64 --downloadonly
下载到指定目录
yum install unzip.x86_64 --downloadonly --downloaddir=[路径]

5.安装时保存下载文件

修改 /etc/yum.conf 文件
keepcache=1
默认文件目录
cachedir

6.使用源代码安装

准备好编译下载工具
yum install gcc wget
进入源码目录
cd /usr/local/src/
下载
wget http://apache.fayea.com//httpd/httpd-2.4.18.tar.gz
解压
tar -zxvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
进入程序目录
cd httpd-2.4.18
配置
./configure --prefix=/usr/local/apache2
检查安装结果
echo $? (0操作成功)
编译
make
安装
make install

1.打开网络

进入网络目录
cd /etc/sysconfig/network-scripts/
找到 ifcfg-*
修改 ONBOOT=yes
重启
生效

2.ip

查看ip
ip route show 或 ifconfig
设置ip
sudo ip addr add 192.168.x.x/24 dev wlan0
删除ip
sudo ip addr del 192.168.x.x/24 dev wlan0

3.防火墙

防火墙状态
service iptables status
关闭防火墙
service iptables stop
打开防火墙
service iptables start
重启防火墙
service iptables restart
配置防火墙端口
在文件/etc/sysconfig/iptables中修改

1.第一节

查看时间
date
修改时间(将系统时间写入cmos)
date -s && hwclock -w
同步网络时间
ntpdate time.nist.gov

1.在大型企业做开发或运维,必备的技能
2.可以按这个步骤,在虚拟机上演练