从案例中学习linux系统,从linux系统中掌握基本使用!
#1.通过命令配置网卡地址:(临时生效,重启失效)
ifconfig DEVICE [IP] netmask [MASK]
#2.修改网卡配置文件(永久生效)
/etc/sysconfig/network-scripts/ifcfg-eth0
#网卡配置文件内容
DEVICE="eth0" #网卡设备名称
BOOTPROTO="static" #网卡启动协议(dhcp通过dhcp自动获取地址,static静态指定,none什么都不做)
HWADDR="00:0C:29:78:7C:85" #网卡mac地址
NM_CONTROLLED=no #是否接受另一个服务控制
ONBOOT=yes #网卡是否开机激活
TYPE="Ethernet" #网卡类型
UUID="f332d9b1-4da0-4faf-83f7-cb893abff9bc" #网卡在系统中唯一身份标识
IPADDR=10.1.1.161 #ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=10.1.1.254 #网关
DNS1=114.114.114.114 #dns服务器
DNS2=115.115.115.115
/etc/init.d/network restart
service network restart
0.查看硬盘使用情况,确保有足够空间分区 #fdisk -l /dev/sda
1.分区(fdisk,parted) sda--> sda1 sda2 ...
2.格式化(mkfs) sda1 --> sda1
3.挂载(mount) #可选
4.写入/etc/fstab
5.mount -a测试
0.查看硬盘使用情况,确保有足够空间分区
#fdisk -l /dev/sda
#常用命令
p #print打印分区表
m #menu打印命令的帮助
l #list列出已知的分区类型
t #type修改分区类型id
n #new新建分区(主分区,扩展分区,逻辑分区)
d #delete删除分区
w #write保存分区信息到分区表
q #quit不保存退出
#需要重读分区表(通过重启或者命令重读)
partx -a /dev/sda
#lsblk 列出所有可用块设备的信息
1.分区(fdisk,parted) sda--> sda1 sda2 ...
#交互模式
(1)、fdisk -cu FILE ——> 只适用于MBR分区
(2)、parted FILE
mklabel msdos/gpt
mkpart
2.格式化(mkfs) sda1 --> sda1
语法: mkfs -t FS_TYPE 分区文件路径
#mkfs -t ext4 /dev/sda5
#mkfs -t ext4 /dev/sda6
#mkfs -t ext4 /dev/sda7
3.挂载(mount) #可选
语法: mount [option] SOURCE MOUNT_POINT
#option
-t FS_TYPE
-a #挂载fstab文件中的设备,测试fstab中设备是否能够正常挂载
-o option[,option]... #指定文件系统挂载选项
#文件系统独立挂载选项
defaults #不指定则使用此默认挂载选项,包含rw, suid, dev,exec,auto, nouser, async, and relatime
ro #readonly,只读
rw #read&write,读写
suid #此文件系统中的文件的suid位生效
nosuid #suid不生效
dev #字符设备和块设备生效
nodev #不生效
exec #运行执行可执行文件
noexec
auto #可以被mount -a挂载
noauto
user #允许普通用户挂载文件系统
async #异步写入
sync #同步写入
realatime #实时更新atime
#其他挂载选项
remount #重新挂载(不需要卸载)
loop #挂载本地的文件到本地的目录,用于挂载iso镜像文件
#SOURCE
设备路径
/dev/sda5
LABEL(一般不用,因为卷标是可以重复的)
LABEL=xxx
#设置卷标
e2label DEVICE [LABEL_NAME]
UUID(设备在系统中的唯一身份标识)
UUID=xxx
#查看设备uuid
blkid 块设备
#blkid /dev/sda5
#umount 卸载
前提: 文件系统或挂载点不能被其他进程占用
lsof
fuser -av
4.查看
#blkid ——> 磁盘信息
#free/swapon -s ——> swap分区信息
5.写入/etc/fstab
linux的uuid码也是有内核提供的,在/proc/sys/kernel/random/uuid这个文件内
格式: SOURCE MOUNT_POINT FS_TYPE FS_MOUNT_OPTION dump fsck
# /dev/sda5 /mnt/movie ext4 defaults 0 0
# UUID="d1b8d741-cf79-4c26-8b2c-5b81f4e9d989" /mnt/music ext4 defaults 0 0
# LABEL=entertainment /mnt/yule ext4 defaults 0 0
6.mount -a测试
方法一: fdisk分区去扩展swap
1.创建分区
fdisk -cu /dev/sda
2.格式化成swap分区
mkswap /dev/sda8
3.挂载
#查看swap分区信息
free
swapon -s
#挂载swap分区
swapon /dev/sda8
swapoff /dev/sda8
4.写入fstab
方法二: 使用大容量文件去挂载
1.生成一个大容量的文件
dd if=/dev/zero of=/root/BIGFILE bs=1M count=500
2.格式化
mkswap /root/BIGFILE
3.挂载
swapon /root/BIGFILE
4.写入fstab
0.清除官方仓库配置文件(官方仓库速度慢)
rm -rf /etc/yum.repos.d/*
1.创建一个仓库配置文件(/etc/yum.repos.d/以.repo结尾的文件)
vim /etc/yum.repos.d/local.repo
[local_repo] #仓库名称(不能有空格)
name=xxx #仓库说明
baseurl= #仓库位置url
#baseurl=file:///media/cdrom
#baseurl=http://mirrors.163.com/centos/6/os/x86_64/
#baseurl=ftp://10.1.1.251/cdrom
gpgcheck=0 #是否检查证书 0 | 1
enabled=1 #是否启用此仓库 1启用(默认) 0禁用
gpgkey=PATH #自动导入证书
2.测试仓库可用性
yum clean all #清除yum缓存
yum repolist #测试仓库可用性
yum install #软件名称
源代码 (编译器) 链接 目标代码
#automake,autoconf
#步骤:
1.下载源码包(.tar.gz 或 .tgz)
wget http://nginx.org/download/nginx-1.13.5.tar.gz -C /usr/local/nginx
2.解压(tar -xf FILE)
3.生成Makefile(定义软件功能开关,检查源码依赖的库是否齐全)
./configure --prefix=/usr/local/nginx
4.安装makefile定义的内容编译源码生成文件
make
5.将目录代表安装到系统中
make install
proc #进程信息,系统状态信息(cpu,内核,swap等)
数字目录 #进程信息(扩展了解进程信息文件)
cpuinfo #cpu信息
meminfo #内存信息(扩展了解文件各种参数意思)
uptime #运行时间
cmdline #内核启动时参数
sys目录 #可修改内核参数映射文件
#/proc/sys 可修改内核参数映射文件
net/ipv4/icmp_echo_ignore_all #忽略icmp所有报文
net/ipv4/ip_forward #ip转发功能(0关闭,1开启)
#修改内核参数
1.临时修改(不能用vi去改)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
2.永久修改(/etc/sysctl.conf)
#修改配置文件 /etc/sysctl.conf
net.ipv4.ip_forward = 0
#让内核重新加载sysctl.conf读取新的内核参数: sysctl -p
创建文件
vi/vim NEW_FILE
touch FILE #文件存在:修改文件时间戳,文件不存在:创建空文件
mkdir DIR
-p #parents,自动创建父目录
-v #verbose
#创建文件或目录对inode和block的影响
1.向文件系统申请空闲inode用来存放文件的元数据
2.在文件上一级目录的block中写入entry(文件与inode对应关系)
3.如果往文件写入内容向文件系统申请空闲block
查看文件
ls [option]... PATH... #查看文件内容
-a #all,显示所有文件包含隐藏文件
-l #long,显示文件属性
-i #inode,显示文件inode编号
-d #directory,显示目录本身
-R #recursive,递归性地显示文件内容
通配符 #功能是用于匹配文件名(在路径中使用)
* #任意个任意字符
? #单个任意字符
[] #字符集合,可以是[]中的任意一个字符
#shell定义的一些字符集:
[:digit:] #数字集合
[:alpha:] #字母集合
[:upper:]
[:lower:]
[:alnum:] #数字+字母
[:blank:] #空白字符(制表符,空格,换行符)
[:space:] #空格
du #查看文件占用磁盘大小
-s #summary 汇总,只显示目录大小
-h #human-readable,显示单位
场景:磁盘空间不足需要清除日志文件,清除前需要查看文件占用磁盘大小
du -sh * | grep G #按媒体文件、图片等类型查看G级别的文件大小
复制文件 cp
#语法: cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
选项:
-a #archive,归档,用于备份文件
-r #recursive,递归,用于拷贝目录
-f #force,强制,忽略交互
-i #interactive,交互
-v #verbose,输出拷贝过程信息
#拷贝文件对inode和block影响
#DEST是一个文件
1.向DEST所在的文件系统申请空闲inode
2.在DEST上一级目录中的block写入entry
3.申请空闲block将源文件的block拷贝到新的block中
删除文件 rm
#语法: rm [option]... FILE...
选项:
-r #递归
-f #强制
-i #交互
-v #过程信息
常用选项:
rm -rf *
移动文件 mv(可以直接移动目录)
# 语法: mv SOURCE DEST
选项:
-v
-i
-f
#移动对inode和block影响
情况一:在同文件系统中移动
#只是将文件的entry移动过程
情况二:在不同文件系统中移动(cp+rm)
useradd hehe /etc/passwd
#创建用户时,系统默认会自动创建一个与用户名同名的组作为用户的基本组,同时在/home目录下创建一个与用户名同名的目录作为用户的家目录,并从/etc/skel/目录中拷贝配置文件到家目录,用户邮箱文件(/var/spool/mail/USERNAME)
#用户创建完成后必须要配置密码才能够登录(passwd USERNAME设置)
#选项
-u UID #uid
-g GID #gid
-G GROUP
-m #创建home目录(默认会创建) -M不创建home目录
-d DIR #设置用户家目录
-s SHELL #设置用户的默认shell
-r #创建系统用户(/sbin/nologin,不需要home目录,不需要邮箱文件)
userdel USERNAME #默认不会删除home目录和邮箱
-r #删除home目录和邮箱(如果家目录有重要文件请备份)
usermod USERNAME #修改用户属性
-u
-g
-s
-d
id USERNAME #查看用户信息
groupadd /etc/group
-g GID
-r #创建系统组
groupdel USERNAME #删除组
groupmod USERNAME #修改组属性
passwd USERNAME /etc/shadow
chown [-R] USER.GROUP FILE #可以同时修改拥有者和所属组
#USER.GROUP
#USER
#.GROUP
chgrp [-R] GROUP FILE #只能改所属组
chmod [option] EXP FILE
#option
-R #recursive,递归,修改目录中的所有文件
#EXP1
u + r
g - w
o = x
a
#eg:
chmod u+w FILE
chmod ug+w FILE
chmod ugo+w FILE # 等于 chmod a+w FILE
chmod u+w,g+x FILE
chmod ug=rwx FILE
#EXP2
r w x
0 0 0 #0
1 1 1 #7
chmod 755 FILE # rwxr-xr-x
chmod 644 FILE # rw-r--r--
#给文件添加特殊权限
chmod u+s FILE
chmod g+s FILE
chmod o+t FILE
chmod 2775 FILE #rwxrwsr-x