linux入门级知识回顾

ifdown eth0    #关闭网卡eth0
ifup eth0    #启动网卡eth0
ifconfig    #查看网络配置

:wq   保持并退出 
:q    退出 
:q!   强制退出不保存 
:wq!  强制退出并保存 

echo hello oldboylinux >>/data/oldboy.txt  
>>    追加剧定向 把内容放在文件的最后一行 

##方法3-想向这个文件中放入多行 
cat >>/data/oldboy.txt<<EOF 
I 
am  
studying  
linux  
EOF 

EOF === end of file

##漏斗家族  重定向符号  
 
#>   1>    标准输出重定向  先把文件的内容清空   把内容放在文件的最后一
行 
#>>  1>>   追加剧定向      把内容放在文件的最后一行 
 
1 标准输出 执行正确的内容才会经过漏斗  
 
#2>        标准错误重定向  
#2>>       错误追加剧定向 

getenforce 查看selinux状态 
grep '=disabled' /etc/selinux/config  #查看config中的 =disabled

/etc/init.d/iptables status #查看防火墙配置
/etc/init.d/iptables stop #关闭运行中的防火墙(建议关闭两次)

chkconfig |grep ipt    # chkconfig表示查看启动项 grep 是过滤的关键字 ipt是过滤的关键词
chkconfig iptables on #关闭某个程序开机自启

乱码缘由:1、是linux系统的问题
    2、远程链接工具的问题,好比xshell的问题
echo $LANG #查看linux系统的字符集
export LANG=zh_CN.UTF-8 #临时改字符集
cat /etc/sysconfig/i18n #编辑这里永久改字符集
source /etc/sysconfig/i18n    #让刚刚改的配置生效

df -h # 查看磁盘状态

挂载小结:
linux中 一切皆文件
linux(设备/磁盘分区)不挂载没法使用
挂载至关于给磁盘分区/设备开了一个入口 经过入口进入到光盘/磁盘的分区中
入口==挂载点==目录

yum install tomcat #安装软件

相关目录的了解,详情看截图,红色为必须了解的

cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看网卡信息  
DEVICE=eth0                         #网卡名
HWADDR=00:0c:29:e7:59:14             #mac地址
TYPE=Ethernet                        #互联网
UUID=51d0a025-779b-447f-9a48-f3935caa8d89 #惟一标示
ONBOOT=yes                            #重启的时候是否否开启网卡 (6.7以后才有的设置?)
NM_CONTROLLED=yes                    #可否被network软件进行管理
BOOTPROTO=none                        #网卡获取ip地址的方式
    #none/static #ip值是固定的
    #dchp        自动获取ip地址
USERCTL=no                            #是否容许普通用户管理(开 关 重启等管理动做)网卡
PEERDNS=yes                            #网卡的dns配置优先级高于dns的配置
IPV6INIT=no
IPADDR=10.0.0.200                    # ip地址 ip address
NETMASK=255.255.255.0                #子网掩码
GATEWAY=10.0.0.2                    #网关
DNS1=223.5.5.5
DNS2=223.6.6.6


DNS 域名解析服务/系统 ,做用:把使用的域名转换为ip地址 
resolve host
解析    域名
DNS 有问题的表现为:ping www.baidu.com 这种域名ping不通,可是ping得通ip地址
解决:在网卡的配置最后加 
DNS1=223.5.5.5
DNS2=223.6.6.6
ifdown eth0 && ifup eth0 # 重启某一个网卡
/etc/init.d/network restart # 重启全部的网卡

cat /etc/resolv.conf #DNS的默认配置,通常配置网卡的DNS就OK
View Code

 

 

--new190612
一切从根开始,一切从目录开始
linux快捷键
1、ctrl + c             取消当前操做
2、ctrl + l(小写字母L)    清屏
3、ctrl + d             退出当前用户/登出
4、etc + .(点)            使用上一个命令的最后一个东西(通常是个路径之类的)


vi/vim 快捷键
删除光标所在位置的内容到行尾 D

移动光标:
移动到文件的第一行            gg
移动到文件的最后一行        G

编辑:
在当前行的下一行插入一个空行并进入到编辑模式    o(小写字母O)



hostname # 查看主机名
hostname simon003    #主机名改为simon003 ,临时改,重启后失效
cat /etc/sysconfig/network    #永久改,重启后生效

ll -a #查看全部文件(包括隐藏文件)

df  #查看磁盘空间状况
df -h #以人类可读的方式展现

cat /etc/fstab #跟自动挂载有关
    结果集的第一列表示设备/分区
    结果集的第二列表示入口/目录


cat /etc/rc.local    #开启的时候自动运行的文件,须要开机自启的软件/命令/服务都放在这个文件中
#还有个方式是 chkconfig管理 开机自启动项目

cat /etc/inittab #开机的时候运行级别的配置文件
0        关机状态,不要把运行级别设置为0
1        单用户模式,root用户密码忘记了
2        多用户模式,可是没有NFS
3        彻底的多用户模式,命令模式,文本模式
4        未使用
5        x11,桌面模式,图形化界面模式(前提是安装了这些文件)
6        重启模式,不要把运行级别设置为6

runlevel #查看当前的运行级别
init 5 #临时把运行级别改为5
#永久修改在  /etc/inittab 这个文件的最后一行,通常不会改


/etc/init.d #服务管理的命令

# 国法(全国各地生效)
cat /etc/profile  系统环境变量 别名
cat /etc/bashrc      别名
#家规(地方政策,当前用户生效)
~/.bashrc
~/.bash_profile

.(点)开头的文件表示默认隐藏的文件

~表示当前用户的家目录
root用户   ~ ===== /root
simon       ~ ===== /home/simon

/usr/local #编译安装的软件默认的位置

linux安装软件的方法
1、yum    (自动解决安装依赖的软件) 点外卖-缺乏的外卖一切给解决
    软件包管理工具
    yum install tree -y (碰到询问默认都是yes)
2、rpm    (缺乏的锅之类的得本身解决) 速冻水饺-半成品
3、编译
    买菜切菜------炒菜-----上菜
    ./configure---make------make install

rpm -qa |grep tree #查看安装的全部软件,名字中带 tree的


/var/log/messages #查看系统默认日志信息
/var/log/secure #系统用户的登陆信息(谁 何时,从哪里登陆的 是否成功)
grep "Accepted" /var/log/secure  #根据关键字捞日志中的信息

free #查看系统内容
free -h #人类可读
lscpu    #查看系统cpu的状态
w        #查看系统的负载程度,越繁忙越接近系统的核数
cat /proc/loadavg # 左边的三个数,最近一分钟,最近五分钟,最近十五分钟    的平均负载
View Code

 linux启动过程node

 

--new190612
环境变量
1、大写
2、在系统大部分地方均可以使用,含义相同。

LANG字符集    PS1(命令行的样子)
PATH 放的是命令的路径/位置
echo $PATH #查看当前路径的值,通常不会改,/etc/profile中永久改


rpm rpm包管理工具
rpm -qa | grep tree #查看某个软件是否安装
rpm -ql tree #查看这个软件包里有啥,查看陌生软件的用法,结构之类的

find 查找文件
    -maxdepth 最大的深度
    -type 找什么类型的
        f file 文件 
        d directory 目录
    -name 什么名字
    ! 取反

tree 以树形显示目录结构
    -L 最多显示基层目录
    -d 只显示目录    

ls list     列表    显示目录里面的内容
    -l 显示详细信息
    -F 给不一样的类型文件加上不一样的尾巴 目录/
    
touch 摸 建立文件    更新文件的时间戳

###第 1 题 如何过滤出已知当前目录下 oldboy 中的全部一级目录(提示:不包含
oldboy目录下面目录的子目录及隐藏目录,即只能是第一级目录)? 


几种方法(在oldboy这个目录下执行):
tree -Ld 1
find  -maxdepth 1 -type d
find  -maxdepth 1 -type d ! -name "."  # !取反,不含.(点)文件
ls -l # 查看
ls -l |grep "^d"  #d开头的就是文件夹(目录)
View Code

 

--new190615

cd - ==== 进入上一次所在的目录
cd . ==== 进入当前目录
cd ..==== 进入当前目录的上一层目录
cd ~ ==== 进入当前用户的家目录
(root用户) ~ ==== /root用户
(普通用户) ~ ====/home/
cd   ==== cd ~


ls    list    列表 显示目录里的内容
ls -l         显示详细信息
ls -F        给不一样类型的文件加上不一样的尾巴 目录/
ls -r        倒序
ls -t        按照文件的修改时间进行排序
ls -lrt        按照文件的修改时间进行倒序排序


tail    取文件的最后几行 默认是最后10行
tail -f 显示文件的实时更新
tailf    同上

查看文件时显示文件的行号
1.cat -n simon.txt
2.vim simon.txt
    :set nu 显示行号number
    :set nonum 不显示行号number
3.grep -n "." simon.txt # .点表示任意一个 正则 ("stu"表示找stu开始的)


grep 
    -v 排除
    -A 显示grep过滤出的内容及接下来的几行
    -n 给grep出的行加上行号
egrep === grep -E 高级正则

chkconfig 管理开机自动运行的软件
chkconfig iptables on
chkconfig iptables off
chkconfig --level 5 iptables on 设置某个运行级别

tar zcvf /tmp/etc.tar.gz /etc/
z --经过gzip 工具进行压缩
c --表示create 建立压缩包
v --表示verbose 显示执行过程
f --表示file 接上压缩包的名字

tar ztf /tmp/etc.tar.gz #查看压缩包的内容
t --表示list 显示压缩包的内容

解压:解压前必须先进入到要解压到的目录(linux默认解压到当前目录)
简写:
tar zcf 建立
tar tf 查看
tar xf 解压


wc -l /etc/services #查看文件有多少行
ps -ef 显示系统有多少在运行的进程
ps -ef | grep "sshd" #一样能够经过grep的方式进行关键字查找


单引号:所见即所得
双引号:里面的特殊字符会被解析

inode与block小结:
1、格式化建立文件系统
2、在同一个文件系统(分区),两个文件的inode相同,则互为硬连接
3、建立一个非空文件要占用一个inode和至少一个block
4、如何查看inode和block的使用状况 df -i df -h 
    df -i #查看总共多少个inode

磁盘空间不足排查:
df -h
du -sh /*|grep G # 找大文件


文件类型
f file 普通文件
d directory 目录
l softlink 软连接(快捷方式)

linux下的扩展名是用来看的,不影响实际使用
.sh 脚本文件
.conf 配置文件


UID user id 用户的id号码==身份证号码
GID group id 用户组的号码==户口本的号码
                    UID
1.皇帝 root            0
2.傀儡 虚拟用户     1-499    系统中每一个进程都要有一个对应的用户,没法使用的。
3.平民百姓 普通用户 500+

如何保护皇帝
1.禁止root远程登陆
2.修改ssh默认的端口号22
3.按期分配/var/log/secure 记录着用户的登陆信息

与用户有关的文件
/etc/passwd        存放的是用户的信息
/etc/shadow        用户密码的信息
/etc/group        用户组的信息

root:x:0:0:root:/root:/bin/bash
simon:x:500:500::/home/simon:/bin/bash
第一列:用户名
第二列:(之前)存放密码的地方
第三列:UID
第四列:GID
第五列:用户的说明信息,默认为空
第六列:用户的家目录
第七列:用户使用的shell,用户使用的命令解释器
/bin/bash ------- centos默认的命令解释器
/sbin/nologin --- 用户没法登录系统,至关因而傀儡用户


linux基础权限:
r    read 能够读取内容
w    write 修改文件内容
x    excute 能够运行文件(命令 脚本)
-    什么权限都没有

ls -l /etc/hosts
-             rw-        r--        r--.
文件类型    主人    家人    陌生人
            420        400        400
            6        4        4
            
ls -l /bin/ls
-rwxr-xr-x.
 421401401
 7    5  5



软链接(windows下的快捷方式):
建立:
ln -s oldboy.txt oldboy.txt-soft #建立
ls -l oldboy.txt* #查看
特色:
一、存放着源文件的位置
二、源文件被删除时再查看会显示出红色
三、节约时间

硬连接
至关因而超市的先后门,经过不一样的大门进入超市
在同一个分区中,两个文件的inode相同,则互为硬连接
建立:
ln oldboy.txt oldboy.txt-hard #建立
ls -lhi oldboy.txt* #查看
特色:
一、至关因而超市的先后门,硬连接数量就是超市一共多少门
二、删除硬连接或者源文件,文件仍是可使用的
三、把硬连接和源文件都删除,则意味着文件被删除===硬连接数量为0


文件删除原理:
1.删除这个文件相关的硬连接 -rm   ---删除厕所全部的入口
2.这个文件的进程调用数也为0 --- 没有人在使用厕所

1.硬连接数量为0
2.进程调用数为0

某个文件没有被完全删除,致使磁盘空间不足
解决:重启对应的软件


找出硬连接数量为0,进程调用数不为0的文件
lsof |grep delete # 
解决:重启对应的软件/服务



磁盘空间不足排查:
1.block满了--500G的空间存放505G的视频
2.inode满了,有大量的小文件
3.block 硬连接数量为0,进程调用数不为0,文件没有被完全删除

stat oldboy.txt # 查看文件的三个时间
ctime    changetime 文件的属性发生改变 硬连接数量,文件大小,文件权限等
mtime    modifytime 修改时间 文件内容的变化时间
atime    accesstime 访问时间(看一遍就算,cat都算,后来变成,有内容改变才算)
View Code

 

通配符和正则python

-- 190619
history | grep cat # 历史命令
通配符:
1* 全部 
find /oldboy/ -type f -name '*old*' # 至关于sql的like中的%
2、{} # c生成序列
echo {0..100} # 连续生成1-100
echo stu{01..100} # 连续生成1-100
cp oldboy.txt{,.bak} # 备份

#1]正则表达式是用行进行过滤的
#2]禁止使用中文符合
#3]给grep和egrep配置别名

#配置别名
cat >>/etc/profile<<EOF
alias grep='grep --color=auto'
alias egrep='grep --color=auto'
EOF

source /etc/profile #生效
cat -A simon.txt # 把每行的结束以$展现出来
正则表达式与通配符区别:
通配符:用来匹配查找文件名            支持:大部分命令都支持
正则:在文件内容中匹配查询内容        支持:linux三剑客


正则:
    基础正则(basic regular expression)BRE  
    grep sed 
    ^ $ . * [] [^]
    
    扩展正则(extended regular expression)ERE
    | + {} () ?
    
如下是准备的环境:
I am oldboy teacher! 
I teach linux.

I like badminton ball ,billiard ball and chinese chess! 
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org 
my qq num is 49000448.
 
not 4900000448.
my god ,i am not oldbey,but OLDBOY! 



start:    

0.1] ^  以什么什么开头
0.2] $    以什么什么结尾
. 任意一个字符,不包括空行
grep '.' simon.txt  #
grep -o  '.' simon.txt # -o 正则的执行过程
grep  '\.$' simon.txt # 以点结尾的行 \ 是转义符

6]  * 前一个字符连续出现了0次或1次以上
grep -o '0' simon.txt # 出现的是7行的0
grep -o '0*' simon.txt # 把0连续起来

两个问题:
1.为什么取出的是000 而不是00和0 0 0 0
#由于正则在表示连续出现的时候表现出贪婪性 有多少吃多少 有多少匹配多少
2.为什么使用'0*' 会把整个文件的内容都显示出来
 由于出现0次或1次以上的都会显示

7] .* (点*)  全部字符 全部符号  全部 
grep '^m.*m$' simon.txt  # 以m开头,以m结尾 .*  中间是任意字符

8] [] 中括号 [abc] 至关因而一个字符 找出包含a或b或c的行
grep '[abc]' simon.txt # 找出含或a或b或c的行
grep '[a-zA-Z0-9]' simon.txt  # 找出任意字母或者数字的
grep '[^abc]' simon.txt # 排除,即不要a,不要b,不要c的

扩展正则
1+ 前一个字符连续出现了1次或屡次
grep -E '0+' simon.txt  # grep 不支持扩展正则,egrep 即 grep -E支持扩展
1.能够把连续的东西用正则取出来
2.通常与[]配合

2| 或者 
grep -E 'a|b|c' simon.txt
grep '[abc]' simon.txt # 找出含或a或b或c的行

 |[] 本质区别:
1[] 是基础正则 | 是扩展正则
2[] 中括号表示的是单个字符的或者  | 单个多个均可以,兼容[] eg:grep -E 'linux|python' simon.txt  linux或者python的都ok

3】 ()  1.括号中的内容是一个总体 2.后向引用(反向引用)(用的很少,意义初级不大,配合sed使用)
grep -E 'oldb(o|ey)' simon.txt  # 找出oldboy 或者 oldbey 的行

4】 {n,m} 前一个字符连续出现了至少n次,最多m次
grep -E '0{2,5}' simon.txt  # 2~5次的
grep -E 'l{2,}' simon.txt  # 出现最少2次的
grep -E 'l{2}' simon.txt  # 出现正好2次的
grep -E 'l{,2}' simon.txt # 出现最多2次的
grep -E '[0-9]{8,}' simon.txt  # 出现连续8个数字的 
grep -E '[0-9]{8,}' -o simon.txt # 出现连续8个数字的 ,只显示数字内容

5】 ? 连续出现0次或1次

vim simontemp.txt
i
gd
god
good
goood
gid
gpd
giid


grep -E 'go?d' simontemp.txt  # 查找o出现了一次或0次的结果是gd和god
grep -E 'go*d' simontemp.txt # 查找出现0次或1次+的


支持基础正则        基础+扩展正则
grep                egrep === grep -E
sed                    sed -r
awk                    awk

\ 撬棍(转义字符) 可以使得基础命令也能使用扩展正则

#帮助命令
man grep
man info 
View Code
相关文章
相关标签/搜索