linux命令

2017-04-25  本文已影响47人  小子考驾照

分区的编号1-4,只能给P+E

L分区(逻辑分区)编号只能从5开始。


5个分区

1p+1e(4个L) : p1 L5 L6 L7 L8

2p+1e(3L) : p1 p2 L5 L6 L7

3p+1e(2L): p1 p2 p3 L5 L6

P+E的数量<=4

E最多一个,可以没有


Linux分区的要求:

/: 根分区 用来存放系统文件以及程序。

swap :交换分区,不是必须有的,相当于虚拟内存。

/boot:引导分区


基础命令之cat vi vim touch echo

Linux命令 150个 常用的也就是80个

#1.创建一个目录/data 
mkdir /data # make directorys 的缩写
    mkdir   
        -m :指定要创建目录的权限,不常用,会用 chmod处理
            #mkdir -m 777 /tmp/test
        -p :这个参数用来递归创建目录
        
#2.在/data下面建立一个文件 oldboy.txt
touch /data/oldboy.txt

#3.为oldboy.txt增加内容为"I am studying Linux."
vi oldboy.txt  然后a或者i进入编辑模式,然后敲入内容I am studying Linux.
    #法1:
    #vi 编辑器,相当于记事本
    #vim 复杂编辑器
    #法2:
    echo "I am studying Linux." > oldboy.txt # > 是覆盖输入重定向 >>追加重定向
    #法3:
    cat  >>/data/oldboy.txt<<EOF
    I am studying Linux.
    EOF
    #EOF成对出现,箭头的方向就是数据的流向   
    
    cat -n /etc/passwd #显示行号

标准输入与输出

基础命令之cp、mv、ls、man、help、rm

#4.把oldboy.txt文件拷贝到/tmp下
cp oldboy.txt /tmp
    #cp
        -a:相当于-pdr
        -d: 若源文件为链接文件(link file),则复制链接文件属性而非档案本身
        -f: 强制,若目标档案已经存在且无法开启,则移除后再尝试;
        -i: 若目标文件已经存在时,在覆盖时先询问;
        -p: 连同档案的属性一起复制过去,而非使用默认属性;
        -r: 递归,用于复制目录
        -u: 若目标文件存在,则目标文件比源文件旧时才复制;
        
#5.把/data目录移动到/root下
mv /data/ /root/

#内置命令
echo eval exec export read shift exit time expr  

#6、进入root目录下的data目录,删除oldboy.txt
cd /root/data/
rm oldboy.txt

基础命令之find

find 
    find /root/data/ -type f #查找是文件类型的文件
    find /root/data/ -type f -exec rm -f {} \; #-exec 执行删除命令
    find /root/data/ -type f|xargs rm -f #管道删除
    find /root/data/ -name "oldgirl.txt" #按照名字查找
    find /root/data/ ! -name "oldgirl.txt"|xargs rm -f #除oldgirl.txt之外的文件都删除
    # !是取反

    

基础命令之rm

rm 
    -i:询问用户是否确认删除,用y或n来回答
    -r: recursive,递归删除
    -f: force 强制删除
#删除空目录 
rmdir /root/data 

基础命令之cat、grep、sed

#8.已知文件test.txt内容为:
test
liyao
oldboy
请给出打印test.txt内容时,不包含oldboy字符串的命令
    #生成数据
    cat >>test.txt<<EOF
    test
    liyao
    oldboy
    EOF
 #法1
 head -2 test.txt
    #head 取文件的前n行,默认是前10行,指定取多少行 -n 3 即取前3行,简写-3
 #法2
 
 grep 命令 ==过滤器,把想要的或者不想要的分离开,Linux三剑客之一
 
 grep "oldboy" test.txt #出现 oldboy
 grep -v "oldboy" test.txt #不会出现 oldboy, 即-v是排除
    
    #grep 
        -B 除了显示匹配的一行之外,并显示该行之前num行
            grep 30 -B 10 test.txt
        -A 除了显示匹配的一行之外,并显示该行之后num行
            grep 30 -A 10 test.txt
        -C 除了显示匹配的一行之外,并显示该行之前后各num行
            grep 30 -C 10 test.txt
        -i 不区分大小写
        -o 只打印包含的内容
        -v 反向匹配
        -E --extended-regexp #多组过滤,过滤多个字符串
            grep -E  "3306|1521" /etc/services #grep -E = egrep 
        
 
#法3 
sed -e '/^oldboy/d' test.txt  #d 删掉
    # sed
        -n 取消默认输出
      过滤 sed '/过滤的内容/处理的命令' 文件
      处理的命令 p:print d:delete
    
    sed -n "2p" oldboy.txt  #打印第二行
    sed -n "1,2p" oldboy.txt  #打印第一、二行
    sed 's#ddd#oldboy#g' oldboy.txt #此时替换没有修改文件的内容
    sed -i 's#ddd#oldboy#g' oldboy.txt #此时替换修改了文件的内容
    

基础命令之mkdir、yum、rpm、tree

#9.请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录及/oldboy/test目录
mkdir -p /oldboy/test

基础命令之yum、rpm

 生产环境最好不要用yum update
 rpm -ivh #i ==install v=verbose h==human
    #rpm -ivh 包名.rpm 
        #最大问题,依赖问题不好解决
    -q: query
    -a: all

LANG=en

#10.已知/tmp目录下已经存在了test.txt文件,如何执行命令才把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让Linux系统不提示是否覆盖(root权限下)
    #法1:使用全路径
    /bin/cp /mnt/test.txt /tmp/test.txt
    #法2:使用\
    \cp /mnt/test.txt /tmp/test.txt
    #注: cp 是 cp -i的别名,会提示覆盖,所以要以cp原始命令运行
        "\":运行原始命令
    
    查看当前别名
    alias
    取消别名 
    unalias
    

~ :用户的家目录

#11.只查看ett.txt文件(100行)内第20到第30行的内容
    #sed ==  stream editor
    #法1
    head -30 ett.txt|tail -11
    tail -81 ett.txt|head -11
    #法2
    sed -n '20,30p' ett.txt #-n 默认不输出
    sed -n 20,30p ett.txt
    #法3
    awk '{if(NR<31 && NR>19) printf $1 "\n"}' test01.txt#NR是行号
    #法4
    grep 20 -A 10 test.txt #有待考虑

基础命令之seq

seq 
     seq [OPTION]... LAST
     seq [OPTION]... FIRST LAST
     seq [OPTION]... FIRST INCREMENT LAST
    
     -s:指定分隔符

基础命令之tail

tail -n 
    -f:跟踪变化
#tail -3 test.txt

#查看尾部变化的试验
for n in `seq 201 300`; do echo $n>>test.txt; sleep 1 ;done 

基础命令之awk

# awk 列操作文件
    #操作案例
    awk '{print $1}'  awk.txt 
    awk -F ':'  '{print $1}' /etc/passwd
    awk -F ':'  '{print $1 $2 $3}' /etc/passwd # -F 指定分隔符
    awk '{print $1  $2}' oldboy.txt  #打印第1列和第2列 $NF 最后一行
    awk '{if(NR>20&&NR<26) print $0"\n"}' /etc/passwd  #$0是整行
#13.把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中包含./hostlists.txt的字符串全部替换为../idctest_iplist
find ./ -name "*.sh" -type f -exec sed -i 's#./hostlists.txt#../idctest_iplist#g' {} \;

    #sed 
        -i : 改变文件内容 
    # 1.创建目录
        mkdir a b c d
    # 2. 
        echo oldboy > a/test.txt
        echo oldboy > c/test.txt
        mkdir -p a/ddd/fff
        echo oldboy >a/ddd/fff/test.txt
    #法1
        find ./ -type f -name "test.txt" -exec  sed -i 's#oldboy#oldgirl#g' {} \;
    #法2
        find ./ -type f -name "test.txt" | xargs sed -i 's#oldboy#oldgirl#g' 
        
     #法3
         sed -i 's#oldboy#oldgirl#g' `find ./ -type f -name "test.txt"`

cd - : 上一次的目录‘

快捷键

三次以上的tab键
ctrl + a :光标移至行首
ctrl + e :光标移至行尾
ctrl + u :删除(剪切)光标以前
ctrl + k :删除(剪切)光标以后
ctrl + c :终止
ctrl + shift + c :复制
ctrl + shift + v :粘贴
ctrl + l :清屏 

ssh远程连接

rpm -qa openssh openssl
ps -ef |grep ssh #查看服务进程
ss -lntup | grep ssh #查看端口
netstat -lntup | grep ssh#查看端口
ip add #查看IP
ifconfig #查看IP

openssh : 提供远程连接

openssl : 加密

ssh 端口默认为22�

IPv4 32位

IPv6 128位

检查ssh连接
ssh 客户端与Linux共享软件

yum install lrzsz -y

基础命令之uname、hostname

#公司用什么系统? 答:内核为2.6.32的64位Centos6.9 Linux系统
hostname #查看主机名
uname  #打印系统信息
    -r #内核版本
    -m #内核是32位还是64位
    -n #查看主机名
    -a #查看所有

Linux多任务、多进程、多CPU、多用户的操作系统

平时管理电脑只用普通用户,禁止用root管理员

50%事故来自内部。

思想:做有价值的运维。

我去贵公司工作,是带着团队来的。


遇到重大问题,先汇报(通知上级),再处理;处理完之后,写好详细文档,发给技术团队。

述职报告:用数据说话,为公司省钱,提高了效率;而不是说苦劳,加班多久。

把自己当做公司股东来做事。

基础命令之useradd、passwd、su

useradd onefiter #添加onefiter用户
passwd onefiter  #给用户onefiter设置密码   

whoami #当前用户的名称

su : switch user
    su - :当前的环境变量切换过去 

SELinux详解以及运行级别

配置文件:/etc/selinux/configcat /etc/sysconfig/selinux(软连接)

# 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=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

更改为disabledsed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

getenforce:查看SELinux生效的状态

setenforce:设置SELinux状态 setenforce 0

usage: setenforce [ Enforcing | Permissive | 1 | 0 ]

两个步骤:

运行级别 Run Level

开机加载的配置文件:cat /etc/inittab

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 

七个运行级别
0 : 关机
1 : 单用户模式。找回密码
2 : 多用户模式,没有网络文件系统(NFS)
3 : 完整的多用户模式
4 : unused(预留模式)
5 : 桌面模式
6 : 重启

runlevel #查看运行级别
init #切换运行级别 init 6

精简开机启动

生产环境一般要开机启动的有5个

处理方法
setup
setup-->System services  # 取消* 即取消服务
chkconfig 设定开机自启动服务
chkconfig --help #查看帮助
chkconfig --list #查看运行状态
chkconfig --list|grep 3:on #查看运行级别3时为on
chkconfig --list atd #查看atd的运行级别
chkconfig  atd off #关闭运行级别 默认是2 3 4 5 关闭
chkconfig  --level 3 atd off #只关闭运行级别为3的atd服务
chkconfig  --level 2345 atd off #处理2345的atd服务为off
#-------------------------------------------------------
# 利用awk实现 
for name in `chkconfig --list |grep 3:on| awk '{print $1}' |grep -Ev "sshd|network|rssyslog|crond|sysstat"` ; do chkconfig $name off;done
# grep -Ev : -E 扩展正则表达式 -v:反向匹配
#-------------------------------------------------------------
#利用sed实现
 chkconfig --list |grep 3:on| awk '{print $1}' |grep -Ev "sshd|network|rssyslog|crond|sysstat" |sed -r 's#(.*)#chkconfig \1 off#g'|bash
# () \1 后项引用  
#sed  -r  #use extended regular expressions in the script. 

#------------------------------------------------------------

chkconfig --list |grep 3:on| awk '{print $1}' |grep -Ev "sshd|network|rssyslog|crond|sysstat" |awk '{print "chkconfig" $1 "off"}' |bash

关闭防火墙

iptables

查看当前防火墙iptables -L -n

关闭防火墙:/etc/init.d/iptables stop

查看运行状态:/etc/init.d/iptables status

Linux优化之安全最小化5个思想

Linux系统从开机到登录之前的启动流程

Linux优化:

优化Linux远程ssh连接

Windows服务器的默认远程管理端口是3389,管理员用户是administrator,普通用书是guest

Linux 管理员root,普通用户是多个 端口是22

ssh的启动文件是/etc/init.d/sshd

ps -ef |grep sshd :查看进程

ssh的配置文件 /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

查看改变

diff 查看改变

vimdiff 高亮显示两个文件的区别

Windows下的比较工具 Beyond Compare

sudo命令

普通用户只能查看一些内容而不能修改,例cat /etc/hosts

通过 visudo(等价于 vi /etc/sudoers 不完全等价)来管理

命令行模式下 yy+p 复制一行+粘贴

注:vi 行号+jj跳转到指定行

root    ALL=(ALL)       ALL
humor   ALL=(ALL)       NOPASSWD: ALL #不提示密码

which useradd 命令的等价 find / -type f -name "useradd"

whereis -b useradd locate useradd

which的原理
which 的查找是在全局环境PATH变量
echo $PATH #不同的路径以":"隔开
PATH的全局变量的配置是在 /etc/profile
PATH 系统变量,执行ls,cp等非内置命令时,系统会查找PATH里对应的路径是否有,如果没有就报告找不到该命令,有则执行
当执行which cp 来查看命令所在路径的时候,也是从PATH变量搜索
临时修改 export PATH="/tmp:$PATH"
永久生效 修改 /etc/profile下,使用 source /etc/profile 或 ./etc/profile 使其生效

字符集

字符集配置文件/etc/sysconfig/i18n

#查看当前字符集
cat /etc/sysconfig/i18n
#更改字符集
sed -i 's#LANG="en_US.UTF-8"#LANG="zh_CN.UTF-8#g' /etc/sysconfig/i18n
#使其生效,用source命令
source /etc/sysconfig/i18n

成功最有效的方法是向有经验的人学习

学好Linux运维 从鼓掌、点赞、鼓励评价别人开始

时间同步及配置

#date 命令
 -s : set time described by STRING
 #定时和互联网的时间校对
    #找到一个时间服务器
        /usr/sbin/ntpdate ntp.api.bz
        ntpdate -u ntp.api.bz #NTP服务器(上海)
#hwclock : query and set the hardware clock (RTC)

#每五分钟同步一次时间
echo "*/5 * * * * /usr/sbin/ntpdate -u ntp.api.bz > /dev/null 2>&1" >> /var/spool/cron/root
#查看定时任务
crontab -l

# 以下1) 2) 3)都是等价的  
 1) 1>/dev/null  2>/dev/null
 2) 1>/dev/null 2>&1(习惯选择这一种)
 3) &>/dev/null
 

优化终端超时以及历史记录

export TMOUT=10 10秒不动会自动退出

永久生效

echo "export TMOUT=300" >> /etc/profile

 `source /etc/profile  ` 

历史记录

历史记录越少越安全

HISTSIZE=5 #历史条目数,临时生效
cat ~/.bash_history #历史记录文件
HISTFILESIZE=5 #历史文件大小
history -c #清空已有的历史记录
history -d 889 #删除指定数字标号
#全局生效
echo 'export TMOUT=300 >>/etc/profile'      #超时时间登出
echo 'export HISTSIZE=5 >>/etc/profile'     #历史记录的条目数
echo 'export HISTFILESIZE=5 >>/etc/profile' #历史文件大小

文件描述符

文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。

文件描述符的信息包括文件的打开模式、文件的位置类型、文件的初始类型

文件描述符概念

​ 1、表示形式为整数数字(一般为0~65535范围)

​ 2、进程使用的时候会占用文件描述符

#查看默认文件描述符
ulimit -n

#调整文件描述符
    #方法1
     vim  /etc/security/limits.conf 
     echo '*  -   nofile   65535 ' >> /etc/security/limits.conf
    #方法2
    ulimit -SHn 65535
     #永久生效
      /etc/rc.local #放到开机自启动

调整内核参数文件 /etc/sysctl.conf

shift+g 切换到文件末尾,o在下一行处于编辑模式

net.ipv4.tcp_fin_timeout = 2 
net.ipv4.tcp_tw_reuse = 1  # tw === TIME-WAIT
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1 
net.ipv4.tcp_synack_retries = 1 
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384 
net.ipv4.tcp_max_orphans = 16384
# 以下参数是对 iptables 防火墙的优化,防火墙不开会提示,可以忽略不理 
net.nf_conntrack_max = 25000000 
net.netfilter.nf_conntrack_max = 25000000 
net.netfilter.nf_conntrack_tcp_timeout_established = 180 
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

以上是Web服务负载均衡器常规互联网的网站服务器的优化的基本思路

sysctl -p让配置生效

网络状态说明及优化命令和优化细节请看

http://yangrong.blog.51cto.com/6945369/1321594

http://oldboy.blog.51cto.com/2561410/1336488

netstat -an:六列 man netstat

消息中间件(排队,异步(解耦)的效率更高,但是实时性不好;同步)

隐藏Linux软件名及内核版本

#显示内核版本
cat /etc/issue
cat /etc/issue.net
#清空内核版本
    #方法1
    >/etc/issue
    >/etc/issue.net
    #方法2
    cat /dev/null > /etc/issue  
    

vi /etc/motd #提示作用
    RHEL  6.6 (Final)
    Welcome to oldboy Linux training.

锁定系统文件

#锁定的文件 /etc/passwd /etc/shadow  /etc/group /etc/gshadow /etc/inittab
chattr +i /etc/passwd /etc/shadow  /etc/group /etc/gshadow /etc/inittab
#查看用法 man chattr

清除多余用户

显示不以nologin结尾: grep -v "nologin$" /etc/passwd

为grub引导菜单加密码保护

/sbin/grub-md5-crypt #输入密码,得到字符串string  
#   然后将  password --md5 string
    #放在 splashimage=(hd0,0) /grub/splash.xpm.gz
    #  password --md5 string
    #title CentOS 6 (2.6.32-504.e16.x86_64) 之间

禁止Linux系统ping

此优化不是必须的

echo "net.ipv4.icmp_echo_ignore_all=1" >>/etc/sysctl.conf
tail -1 /etc/sysctl.conf
sysctl -p #使其生效
1) 不用root管理,以普通用户的名义通过sudo授权管理。
2)更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至要更改为只监听内网IP
3)定时自动更新服务器时间,使其和互联网时间同步。
4)配置yum更新源,从国内更新源下载安装软件包
5)关闭SELinux及iptables(在工作场景中,如果有外部IP一般要打开)
6)调整文件描述符的数量,进程及文件的打开都会消耗文件描述符
7)定时自动清理邮件目录垃圾文件,防止inodes节点被占满
8)精简并保留必要的开机自启动服务(如crond、sshd、network、rsyslog)
9)Linux内核参数优化 /etc/sysctl.conf,执行sysctl -p生效
10)更改字符集,建议使用英文字符集
11)锁定关键系统文件如(/etc/passwd /etc/shadow /etc/group /etc/inittab)
12) 清空 /etc/issue /etc/issue.net
13)清除多余的系统虚拟账号
14)为grub菜单加密码
15)禁止被ping
16) 升级漏洞软件

配置Linux软件下载更新源地址

 #查看yum源
 cat /etc/yum.repos.d/CentOS-Base.repo
 #打开 http://mirrors.aliyun.com/help/centos
 

命令wget

wget http://url

wget 
    -O #等价于--output-document=file
    --spider #爬虫,检查网站是不是好的,不会下载只是检查
    -T #等价于 --timeout 超时时间
    --tries=2 #指定重试的次数
     

基础命令之less、more

空格 一屏

less 按屏(空格)或按行查看文件(回车)

more 不能向上翻

Linux目录

倒置的树状

只有一个顶点 / (根目录)

tree -L 1 /  #查看根目录下 1层 -L 层数
tree -Ld 1 / #-d 只显示目录

Linux的目录结构和磁盘分区是分离的。

根目录下的目录

#任何目录可以对应任何分区,通过挂载来实现
 #磁盘设备默认没有入口的,不能访问的
 #mount 
    mount /dev/sda1 /etc #将/dev/sda1 挂载到 /etc
/bin
/sbin
/usr

/etc
/opt
/dev

######################################
Linux磁盘的发展

第一块 系统相关  /
第二块 专门存放用户自己的程序 /usr
第三块  /home 用于存放用户的数据

/usr/local #用户自检安装的程序
/opt  #第三方厂商开发的程序,等价于option

############
/usr 和 / 拥有同样的东西
#根目下 /
ll -d /bin /lib /sbin /tmp
#/usr 目录下
ll -d /usr/bin /usr/lib /usr/sbin /usr/tmp

FHS(Filesystem Hierarchy Standard):文件系统层次化标准

第一层 "/" 目录下的各个目录放什么文件数据
    /etc: 放置文件系统的配置 # /etc/exports, /etc/hosts
    /bin和/sbin: 放置程序及系统命令 第二层是针对 /usr(unix software resource | Secondary hierarchy) 和 /var(Variable data)这两个目录的子目录来定义。 例如:/var/log下放置系统日志文件等
    提示:/var分区单独分出来,硬盘足够大。我们都有监控,剩余20%报警

FHS http://www.pathname.com/fhs

/proc:内核及系统的虚拟文件系统

cat /proc/mounts #查看挂载信息
cat /proc/cpuinfo #查看cpu信息
cat /proc/meminfo #查看内存信息
cat /proc/loadavg #查看负载
cat /proc/version #查看系统版本

/sys目录https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

重点目录

网卡重要文件/etc/sysconfig/network-scripts/ifcfg-eth0

​ 配置网络地址及GW等

​ 1)重启网卡/etc/init.d/network restart(影响所有网卡)

​ 2) ifdown etho && ifup eth0 只针对eth0网卡

​ 查看ifconfig 或者ip a 或者 ip add

/etc/resolv.conf

DNS客户端配置文件

man resolv.conf查看用法

DNS可以在网卡配置文件里设置 (ifcfg-eth0)

DNS也可以在/etc/resolv.conf

网卡里的DNS优先于/etc/resolv.conf


/etc/hosts

局域网 主机名和IP解析

将域名解析成IP的手动配置文件表

hosts企业里的作用:

1、开发,产品,测试等人员,用于通过域名测试产品

​ 2、服务器之间的调用可以用域名(内部DNS),方便迁移


/etc/sysconfig/network

主机名的配置文件

hostname 更改主机名 临时生效

vi /etc/sysconfig/network 永久生效

会被启动网卡调用grep '/etc/sysconfig/network' /etc/init.d/network


/etc/fstab

man fstab : fstab - static information about the filesystems

设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区

df -h #以人类可读的信息查看磁盘挂载信息

fstab : 6列

dd if=/dev/zero of=/dev/sdb1 bs=4096 count=100#虚拟生成一个文件系统
mkfs.ext4 /dev/sdb1 #格式化
mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt#挂载
df -h #查看挂载状态
umount /mnt #卸载挂载
#########################
#自动挂载
vim /etc/fstab #添加如下信息
/dev/sdb1 /mnt ext4 loop,noatime,noexec 0 0
###
mount -a #挂载
df -h #查看挂载

fstab:

出问题:修复

1)开机提示,输入密码,修复

2)救援模式Rescue ,修改/etc/fstab(只读状态,修改只读状态 mount -o rw,remount /)


/etc/rc.local

相当于开机启动

让一个程序开机启动


/etc/inittab

系统启动时init进程设置系统的runlevel运行级别以及加载相关的级别对应启动文件设置(Linux开机启动流程)

最后一行显示默认的运行级别

查看Linux第一个启动进程ps -ef|grep init


/etc/init.d

(yum/rpm)程序启动目录


/etc/profile

定义系统的变量

/etc/profile.d 脚本或者程序 (登录时执行)
/etc/motd登录后显示的字符串

/etc/redhat-release:查看版本号
/etc/passwd:用户文件
/etc/shadow:账号的密码文件
/etc/group:用户的组文件
/etc/gshadow:组账号的密码文件
/etc/sudoers:一般用visudo

/usr/local:相当于Windows中的Programm
/usr/src:放源代码

/var

/var/log
/var/log/messages:系统日志,自动轮询按周 rsyslog(软件故障)
/var/log/secure:安全日志 SSH连接日志

fsck -A :磁盘检查(不要检查好磁盘),卸载状态检查

dmesg: 内核回报的错误信息


/var/spool/cron/root:定时任务的所在路径

查看设备的挂载的信息:

cat /proc/mounts

df -h


1、学会总结是学好运维的重要前提

2、通过案例或例子来总结一个技术或者命令

3、画一张逻辑图,形象的卡通记忆这个知识技术点

4、通过管道过滤数据时,最好先输出结果,然后回退再使用管道看着结果过滤


#1.如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录及隐藏目录,即只能是一级目录)?
ls -l |grep "^d"
ls -lF|grep "/$"
find ./ -maxdepth 1  -type d ! -name "oldboy"
tree -Ld 1 
cd - #返回上级目录,原理是 env|grep -i oldpwd 

#查看刚创建的目录
ls -lrt /etc #--reverse -t:sort by modification time

添加别名 vim /etc/profile 
alias grep='grep --color=auto'
:wq
. /etc/profile #使其生效
#在学习中记忆

#5、已知Apache服务的访问日志按天记录在服务器本地目录/app/log下,由于磁盘空间的限制,现在要求只能保留最近7天访问日志!请问如何解决?请给出解决办法或配置或处理。提示:可以从Apache服务配置上着手,也可以从生成出来的日志上手。
Refer  

for n in `seq 14`
do
  date -s "2017/04/$n"
  touch access_www_`(date +%F)`.log
done
date -s "2016/08/15" #更改时间
find /oldboy/test/ -type f -name "*.log" -mtime +7 |xargs rm -f


#6.调试系统服务时,希望能实时查看系统日志/var/log/messages的变化
    #法1
    tail -f /var/log/messages
    #法2
    tailf /var/log/messages
    #法3
    tail -F /var/log/messages #没有文件会重试
    
    
#7.打印配置文件nginx.cong内容的行号及内容
    #法1
    nl nginx.conf
    #法2
    cat -n nginx.conf
    #法3
    grep -n "." nginx.conf #打印匹配的结果
    #法4
    grep -n ".*" nginx.conf
    #法5
    grep -n "$" nginx.conf
    #法6
    awk '{print NR,$0}' messages
    #法7
    sed '=' /etc/rsyslog.conf
    #法8
    less -N  nginx.conf

上一篇下一篇

猜你喜欢

热点阅读