2.系统目录介绍

1.变量与PS1

[root@oldboyedu-01 ~]# echo $PS1
[\u@\h \W]\$
\u用户名  \h主机名 \W 当前路径,相对路径
[root@oldboyedu-01 ~]# PS1='[\u@\h \W \t]\$'

2.linux的优化

1.添加普通用户
2.关闭selinux
3.关闭iptables
4.防止中文乱码

2.1添加普通用户

root用户
普通用户
[root@oldboyedu-01 ~ 22:02:30]#useradd oldboy
查看用户是否存在
[root@oldboyedu-01 ~ 22:08:36]#id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[root@oldboyedu-01 ~ 22:08:45]#id llll
id: llll: No such user
[root@oldboyedu-01 ~ 22:09:58]#passwd oldboy
Changing password for user oldboy.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.
切换用户
[root@oldboyedu-01 ~]# su - oldboy
[oldboy@oldboyedu-01 ~]$ who am i
root     pts/1        2019-02-19 22:12 (10.0.0.1)
[oldboy@oldboyedu-01 ~]$ whoami
oldboy
退出当前用户
ctrl +d
[oldboy@oldboyedu-01 ~]$ logout
[root@oldboyedu-01 ~]#

2.2关闭selinux

1.临时关闭
[root@oldboyedu-01 data]# getenforce
Enforcing
#setenforce Disabled是不可以的
[root@oldboyedu-01 data]# setenforce Disabled
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@oldboyedu-01 data]# setenforce 0
[root@oldboyedu-01 data]#

2.永久关闭
重启之后,配置才会生效
[root@oldboyedu-01 data]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.3关闭防火墙

1.查看iptables状态
[root@oldboyedu-01 ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

2.临时关闭防火墙
 [root@oldboyedu-01 ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
上面虽然关闭了,但是由于在在即启动中,所以下次开机还会启动
 [root@oldboyedu-01 ~]#
[root@oldboyedu-01 ~]# chkconfig --list|grep iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

3.永久关闭防火墙
[root@oldboyedu-01 ~]# chkconfig iptables off
[root@oldboyedu-01 ~]# chkconfig --list|grep iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@oldboyedu-01 ~]#

2.4中文乱码的排查过程

1.什么是字符集
表示字符 文字的方法
UTF-8系统默认的
GBK GB2132

2.查看字符集
[root@oldboyedu-01 ~]# echo $LANG
en_US.UTF-8

3.修改字符集
临时修改
[root@oldboyedu-01 ~]# export LANG=zh_CN.UTF-8
[root@oldboyedu-01 ~]# echo $LANG
zh_CN.UTF-8
查看是否修改成功:执行setup

永久修改
[root@oldboyedu-01 ~]# cat /etc/sysconfig/i18n 
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
[root@oldboyedu-01 ~]# source /etc/sysconfig/i18n

4.显示中文乱码的原因?
Linux使用的字符集与远程工具使用的字符集不同,会导致乱码

5.排查
查看linux的字符集
echo $LANG
查看xshell的字符集

2.系统目录介绍

6.解决
方法一:修改远程工具的字符集
方法二:修改Linux系统的字符集
        1、如何修改字符集-临时
        2、如何修改字符集-永久
        3、生效

2.5su与su-的区别

1.su切换只是切换了用户身份,但是shell环境等都没有切换,还是当前用户
使用pwd命令可看到,当前目录还是root用户的家目录
echo $PATH,PATH环境变量还是root用户登录时的变量值

2.su - 切换,即切换了用户身份,shell环境也切换了
使用pwd命令可看到,当前目录是该用户的家目录
echo $PATH,PATH环境变量也变了

[root@m01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@m01 ~]# su appman
[appman@m01 root]$ pwd
/root
[appman@m01 root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[appman@m01 root]$ exit

[root@m01 ~]# su - appman
[appman@m01 ~]$ pwd
/home/appman
[appman@m01 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/appman/bin
[appman@m01 ~]$ 

3.linux目录结构介绍

3.1目录结构的特点

1、一切从根开始,一切皆文件
2、Linux设备(光盘/磁盘分区)不挂载无法使用
3、挂载相当于给磁盘分区/设备开了一个入口,通过入口进入到光盘/磁盘分区
4、入口-挂载点-目录
举例--linux下使用光盘
1.把光盘放在光驱中

2.系统目录介绍

2.把光盘挂载到系统里面
[root@oldboyedu-01 ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
read-only是正常的,磁盘是只读的。
 [root@oldboyedu-01 ~]# cd /mnt/
[root@oldboyedu-01 mnt]# ll
total 564
-r--r--r--. 2 root root     14 Mar 29  2017 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Mar 29  2017 EFI
-r--r--r--. 2 root root    212 Nov 27  2013 EULA

3.2核心目录简介

2.系统目录介绍

3.3目录详解

3.3.1/etc下面的目录

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf
/etc/hosts
/etc/sysconfig/network
/etc/fstab
/etc/rc.local
/etc/inittab
/etc/profile
/etc/init.d
~/.bashrc
~/.bash_profile

3.3.2网卡文件

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0   --网卡的名字
HWADDR=00:0c:29:46:26:0c  --hardware address硬件地址,mac地址
TYPE=Ethernet  --网络类型,因特网
UUID=36227cea-7fc3-4199-b2b0-d0697d9c2eba  --UUID系统中唯一的标识
ONBOOT=yes  --启动的时候是否开启网卡
NM_CONTROLLED=yes  --是否能被network软件管理
BOOTPROTO=none  --网卡获取ip地址的方式 
 none/static ip地址是固定的
 dhcp自动获取Ip
IPADDR=10.0.0.200  --ip地址
NETMASK=255.255.255.0  --子网掩码,在一个局域网中,最多能有多少台机器
GATEWAY=10.0.0.2  --网关,网络出口
USERCTL=no  --是否允许普通用户管理网卡 开 关 重启
PEERDNS=yes  --为yes或删除这行,意思是网卡配置文件中的DNS优先于/etc/resolv.conf
IPV6INIT=no
#阿里云的DNS
DNS1=223.5.5.5
DNS2=223.6.6.6

3.3.3DNS

1.常用的DNS
#阿里云的DNS
DNS1=223.5.5.5
DNS2=223.6.6.6

114.114.114.114
114.114.115.115
谷歌的DNS
8.8.8.8

2.如何修改DNS
在网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0中添加上DNS配置
DNS1=223.5.5.5
DNS2-223.6.6.6
重启
ifdown eth0 &&ifup eth0 或/etc/init.d/network restart
先执行ifdown eth0,xshell就连接不到虚拟机了
验证
[root@oldboyedu-01 ~]# ping www.baidu.com
PING www.a.shifen.com (180.97.33.108) 56(84) bytes of data.
64 bytes from 180.97.33.108: icmp_seq=1 ttl=128 time=9.59 ms

3./etc/resolv.conf中也可配置DNS
如果网卡配置文件中配置了DNS,那么即使在/etc/resolv.conf中配置了DNS,重启网卡后也会失效。
为什么网卡配置文件中DNS配置优先于resolv.conf,是因为网卡配置文件中配置了PEERDNS=yes

4./etc/hosts 测试的时候使用
10.0.0.200 www.oldboyedu.com
[root@oldboyedu-01 data]# ping www.oldboyedu.com
PING www.oldboyedu.com (10.0.0.200) 56(84) bytes of data.
64 bytes from www.oldboyedu.com (10.0.0.200): icmp_seq=1 ttl=64 time=0.017 ms

3.3.4修改主机名

1.查看主机名
[root@oldboyedu-01 ~]# hostname
oldboyedu-01

2.临时修改主机名--重启主机后就失效了
[root@oldboyedu-01 ~]# hostname oldboyedu01-nb

3.永久修改主机名--重启服务器后,同样生效
[root@oldboyedu-01 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= oldboyedu01-nb

3.3.5开机自动挂载

/etc/fstab 开机的时候自动挂载的文件,开机的时候给每个磁盘分区一个入口
第一列表示设备/分区
第二列表示入口/目录/挂载点

3.3.6运行级别

/etc/rc.local
开机的时候自动运行的文件 需要开机自启动的软件、命令、服务
如何让一个软件/脚本/服务开机自动运行?
1、/etc/rc.local
2、通过chkconfig管理,开机自启动

/etc/inittab开机的时候运行级别的配置文件
运行级别讲解
#   0 - halt (Do NOT set initdefault to this) 关机状态,一直启动不起来,不要设置为0
#   1 - Single user mode 单用户模式,没有网络,root用户密码忘记了,可以单用户模式改
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户模式,没有nfs软件
#   3 - Full multiuser mode 完全的多用户模式
#   4 - unused  未使用
#   5 - X11  桌面模式,图形化界面模式。需要桌面的一些软件已经安装
#   6 - reboot (Do NOT set initdefault to this) 重启,一直重启,不要设置为6

查看运行级别
[root@oldboyedu-01 data]# runlevel
N 3
N表示上一次使用的运行级别
3表示当前使用的运行级别
切换运行级别-临时
[root@oldboyedu-01 data]# runlevel
N 3
[root@oldboyedu-01 data]# init 5
[root@oldboyedu-01 data]# runlevel
3 5
永久修改运行级别--重启后生效
修改/etc/inittab

3.3.7环境变量别名

1.哪里都生效
/etc/profile系统环境变量,别名
/etc/bashrc  别名

2.当前用户生效
~/.bashrc
~/.bash_profile

3.~表示当前用户的家目录
root   ~   /root
oldboy  ~  /home/oldboy

3.3.8安装软件的方法

/usr/local 编译安装的软件默认的位置
/usr/share 
1、yum (自动解决安装依赖的软件)
yum install -y tree
2、rpm(半成品,缺少东西自己解决)
[root@oldboyedu01-nb share]# rpm -qa|grep tree --查看软件是否安装
tree-1.5.3-3.el6.x86_64
3、编译(完全按照自己的需要设置)

3.3.9系统日志级别

/var/log/messages系统默认日志信息
/var/log/secure系统用户的登录信息(谁 什么时候 从哪里登录 是否成功)

3.3.10虚拟目录

/proc/meminfo  查看内存信息
/proc/cpuinfo   查看cpu信息
/proc/loadavg   查看负载
[root@oldboyedu01-nb proc]# cat /proc/loadavg 
0.00 0.00 0.00 1/166 4171
[root@oldboyedu01-nb proc]# w
 05:41:49 up 16:48,  4 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                02:12    3:29m  0.03s  0.03s -bash
root     pts/0    10.0.0.1         02:12    1:38m  0.08s  0.08s -bash
root     pts/1    10.0.0.1         04:25    0.00s  0.13s  0.02s w
root     pts/2    10.0.0.1         05:13   26:14   0.04s  0.04s -bash
/proc/mounts   查看挂载

4.linux开机启动流程

2.系统目录介绍

2.系统目录介绍

1.打开电源
2.BIOS(basic input output system)-基本输入输出设备检查,检查磁盘,CPU,内存等相关硬件。
3.读取MBR(master boot record)-主引导记录。MBR是磁盘的0扇区,0磁盘,1扇区的512字节。
4.GRUB(grand unified bootloader)-GRUB菜单列表
5.加载内核
6.启动init程序,这是一个守护进程,Linux开机的时候启动,直到Linux关机才停止
7.读取/etc/inittab,设置Linux的启动级别
8.读取/etc/rc.d/rc.sysinit,初始化系统,设置主机名和ip
9.根据启动级别,启动/etc/rc.d/rc*.d/下的程序
10.启动mingetty程序,进入欢迎界面

5.PATH环境变量

第一个里程碑:什么是环境变量
1、大写
2、在系统大部分地方都可以使用,含义相同,
LANG  PS1  PATH
第二个里程碑:PATH含义:
存放的是linux命令的位置/路径
[root@oldboyedu01-nb rc3.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
第三个里程碑:Linux下运行命令的过程
1、输入命令
2、在PATH里面进行查找
3、找到了就运行
4、找不到就提示Command not found

猜你喜欢

转载自blog.51cto.com/10983441/2410937