linux基础

一、centos基本配置

1.常用软件安装
  1. yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc

2.修改主机名
hostnamectl set-hostname python3(主机名)

或者

echo "10.0.0.100 python3">>/etc/hosts

3.关闭防火墙

CentOS7默认使用firewall作为防火墙

1.检查防火墙是否开启iptables -L(一堆信息表示开启)

2.临时关闭iptables -F(清理策略)

3.永久关闭systemctl disable firewalld(开机不自动启动)

还有一个防火墙selinux

1.查询防火墙getenforce———Enforcing(工作状态)

2.临时关闭setenforce 0——再次查看状态为Permissive

3.设为永久关闭(修改配置文件)

# vim /etc/selinux/config
设置
SELINUX=disabled

保存并退出,改了配置文件重启才生效

二、Linux命令

命令的构成

命令体         选项       参数(对象)
ls            -l         /var

linux中一切皆文件,操作的参数(对象)就是操作文件。

1.文件类型
d:目录
f:普通文件
l:链接
b:块设备,硬盘 光驱
c:字符设备
p:管道
s:套接字

2.命令提示符
命令必须在有命令提示符的情况下才能输入

[root@oldboy ~]#   超级管理员(root  #)  
[test@oldboy ~]$   普通用户($)

3.bash shell常用快捷键
crtl+c  取消当前操作
ctrl+l  (小写字母L) clear(命令)  清屏
ctrl+d  退出当前用户
ctrl+r    查找(历史命令)   或者用 history|grep  (|后面的是过滤)
TAB键:  1.命令补全   2.参数补全(路径补全)

ctrl+a    把光标移动到行首
ctrl+e    把光标移动到行尾
ctrl+o    把光标移动到下行
ctrl+u    把光标到行首的内容删除/剪切
ctrl+k  把光标到行尾的内容删除/剪切 
ctrl+y    粘贴
delete    光标所在处从前往后删除内容

ctrl + →  向右移动一个单词 
ctrl + ←  向左移动一个单词

ctrl + s  锁屏 
ctrl + q  解锁

获取帮助
--help  例子: ls --help
man  例子: man ls
info 例子: info ls

关机重启
reboot
poweroff

三、linux命令分类

1.针对不同文件的管理命令

linux的文件系统规范 FHS(文件系统层次化标准)

  • 绝对路径:从"/"开始的一个具体路径,所有的文件都是从根开始的
  • 相对路径:从当前目录开始的具体路径(pwd可以查看当前所在目录)

linux根下的目录简介

/bin:二进制命令所在目录
/boot:系统引导程序所需的文件目录,安装系统分区时一般单独分一共boot分区
/dev:设备软件目录,磁盘、光驱
/home:普通用户的家,目录默认数据存放目录
/lib:启动系统和运行命令所需要的共享库文件和内核模块
/mnt:零时挂载存储设备的挂载点,u盘需要先挂载才能使用
/opt:额外的应用软件包
/var:存放系统日志的目录,日志/var/log/messages;/var/lib库文件
/proc:操作系统运行时,进程信息及内核信息
/proc/loadavg:系统繁忙程度
/proc/memrino:系统内存信息
/proc/cpuinfo:系统cpu信息
/proc/mounts:系统挂载信息
/root:超级权限用户root的家目录
/sbin:管理系统的相关命令(超级管理员)
/tmp:回收站
/usr:用户或系统软件应用程序目录

ls命令:

ls 查看当前目录下的内容
ls -a  -a 显示指定目录下所有子目录与文件,包括隐藏文件
ls -l 以列表方式显示文件的详细信息备注: ls -l =ll
ls -h 配合-l 以人性化方式显示文件大小,以K M G 为单位
ls -t 根据最后修改时间排序,默认是以文件名排序,通常与-l 连用
ls -F 在条目后加上文件类型的指示符号(* , /, = , @ , | ,其中的一个)注:可以标识文件类型
ls -d 显示目录本身的信息 而不是显示目录的内容
ls -r 逆序 倒序排序

1.1目录

1.1.1创建目录

mkdir /test
mkdir /test/a
mkdir -p /a/b/c  不存在a,b, 通过 -p 可以创建

1.1.2查询目录

ls -ld /test 看目录是否存在及其详细属性
tree /test
tree -L 2 / 查看根下的两层目录(注意空格)

1.1.3删除目录

rm -rf /test
rm -rf / test  注:中间不要有空格  这是删两次,/和test
rm -rf /a* 模糊删除

可以通过问卷句柄找回丢失数据(前提:不能重启,不能有大量数据写入)

1.1.4修改目录(剪切,复制)

剪切
mv /root/test  /tmp   第一个为被剪切目录   第二个为剪切到的路径
mv /test/test /tmp/test.bak   剪切 并重命名
mv test ttt  到当前文件目录下执行   实现重命名
复制  与mv类似,可以拷贝了后重命名
cp -r /tmp/ttt /root   不加-r是文件 不是目录
cp -a   拷贝的时候带权限

-r 递归式复制目录,即复制目录下的所有层级的子目录及文件

1.1.5切换目录

cd ~ 或直接 cd  切换到当前用户的家目录
cd . 保持当前目录不变
cd ..切换到上级目录
cd - 在最近两次工作目录之间来回切换
cd /直接切换到/ 目录
cd xxx 切换到xxx目录

小技巧

只有连续的可以用

批量创建a开头1~10的目录
mkdir a{1..10}
批量创建1开头a~z的目录
mkdir 1{a..z}

1.2普通文件

头字母判断是什么文件,-就是普通文件

1.2.1普通文件的种类

ASCII TEXT:纯文本文件
LSB Exe:二进制的可执行文件
压缩文件:zip tar 等
二进制数据文件:数据库

1.2.2文件创建(纯文本文件)

同一个目录下linux没有后缀名,所以不能出现重名的文件

touch a.txt   创建一个空文件  linux不认识后缀名

1.2.3文件删除

rm -rf a.txt

1.2.4文件查看

ls -l a.txt  查看文件属性

cat /etc/passwd 查看文件的详细内容,一次性读出(适合于小文件)
cat /etc/passwd /etc/shadow  可以一次性看多个文件
cat -n /etc/passwd 带序号显示

分页显示大文件内容
more /var/log/secure  空格显示下一页,但是不能往上翻页
less /var/log/secure   能上下翻页

文件前几行
head /var/log/secure   默认前十行
head -n3 /var/log/secure  或
head -3 /var/log/secure   显示文件前三行

文件后多少行
tail -2 /var/log/secure  显示最后两行  不带选项 后十行
tail -f /var/log/secure  实施监控

1.2.5剪切,复制

mv命令与目录一样

cp命令与目录的区别是不需要加`-r`(加上也没事)

1.2.5内容的修改

  • 重定向

    '>'覆盖重定向 cat /etc/passwd >a.txt 将前面查询的结果重定向到这个文件中 >>追加重定向 echo “10.0.0.100 python3” >>/etc/hosts 追加不覆盖

  • vim编辑器(需要安装)

三种模式:命令模式,编辑模式,末行模式(冒号模式)

命令模式:初始模式

查看文件内容
G 光标到达最后一行
1G 光标到达第一行(gg)
^ 光标到达行首
$ 光标到达行尾
/ 搜索关键字
yy 复制光标所在行
p 粘贴
Nyy 复制N行
dd 删除/剪切
Ndd 剪切N行
x 删除光标所在字符,一个字符,一个字符删
dG 删除光标到最后一行
d1G 删除光标所在行到最前面一行
d$ 从光标删除到行尾,包括光标所在字符
d^ 从光标删除到行首,不包括光标所在字符

r 替换光标所在字符
ZZ 保存退出
u 撤销上次操作

编辑模式:

a:在光标之后录入
i:在光标之前录入
o:在光标下一行录入
A:行尾
I:行首

小技巧:每编辑完一次就ESC,退后到命令模式防止误操作

末行模式:

:q!  不保存 退出
:wq!  保存并退出
:set nu  显示行号  对文本内容没有影响
:set nonu  不显示行号
:%s/root/ROOT/g  将root替换成ROOT    g代表全局

1.3链接

硬链接:相当于文件的备份

限制:1.不允许给目录创建硬链接

    2.只有在同一文件系统之中的文件才能创建链接,不同硬盘分区的两个文            件不能建立链接
ln passwd passwd.lnk

软链接:相当于windows的快捷方式

ln -s passwd passwd.lnk

2.磁盘和文件系统

2.1.企业级磁盘类型
SAS
    容量  :900G   
        主机版
        存储版
    转速:15K  
    品牌:IBM HDS EMC
    缓存:
    接口速度:16Gb

Flash盘  速度最快

2.2.文件系统

方便用户使用和管理磁盘硬件的,辅助系统(Filesystem)

Linux文件系统类型:
    ext2
    ext3 
    ext4
    XFS  centos7

2.3文件系统管理
查看硬盘分区状态   ls -l /dev/sd*
1.关闭虚拟机,添加硬盘
添加硬盘时 选存储为单个文件
2.分区
    fdisk /dev/sdb    选择要分区的磁盘
    输入  p  打印现有分区
    输入 n新建分区
    当分区数量少于4时,输入p  主分区即可
    分区号码  默认即可
    分区开始位置 默认即可
    分区结束位置  +5G
    输入p可以看到刚刚分的区,不过此时只是预分区
    输入 w  保存分区表

3.格式化成文件系统(XFS)    
    mkfs.xfs /dev/sdb

4.挂载设备(新的分区需要挂载才能使用) 
    mkdir /data
    mount /dev/sdb1 /data

5.查看挂载的磁盘使用情况
    df -h

6.自动挂载文件系统(系统挂载的配置文件)
    vim /etc/fstab
    在里面输入
    /dev/sdb1 /data xfs  0 0
    -----------
    注:外接磁盘,读取顺序会导致磁盘名变化,导致文件系统挂载不上。
    ---------
    使用下面的方式挂载
    blkid:显示当前系统所有格式化磁盘的uuid信息
    在配置文件中写入

UUID=e74e2b26-9b9b-4a5c-9320-015cb4fe7dba /data xfs    0  0

0 0  是文件校验 0代表关闭,正常生产中开启
UUID(硬件唯一的值,格式化完写到盘头的) 更加安全

Raid
功能特性:
    1.将多块磁盘合并成一块磁盘,提供更大的存储空间
    2.可以提供更高的IO能力
    3.数据物理层面的高安全

Raid的工作级别:

raid0:条带化功能,性能极高,安全性和单盘一样
至少两块盘,理论上盘越多性能越高   分盘

raid1:镜像功能,性能没有明显提升,安全性高.    
    浪费一半空间

raid10:镜像+条带化 ,至少四快盘,性能和安全兼顾
浪费一般空间    

raid5:带有校验功能的条带化    
存储数据时,根据数据计算校验值,存储到第三块盘.
写入性能较低
读数据性能较高
至少三快盘,只允许一块盘损坏,浪费1/n的磁盘空间
适合于读多写少的场景

3.用户、组、权限

用户:

每个用户都有一个唯一的(uid),linux用户没有空密码,

都有家目录(/home/mine),家目录下会有环境变量文件

用户,每个用户都必须有一个工作组,创建时没指定,自动创建一个同名的组

组:

方便管理

组名字,组id(GID)

用户和组的管理
groupadd -g 1001  dev  ----创建组 
组id  centos7前 500以后选   centos7后  1000以后,不设置会自动生成

cat /etc/group 最后一行  -----查看组的情况

groupdel dev  删除组

groupmod -g 10086 dev  修改组id
普通用户
useradd man   uid 和组  自动设置
useradd -u 10011 -g dev  woman  手动设置用户id和组名

id man   查看用户
passwd man  给用户设置密码

su - man  切换用户

userdel -r man  删除用户

usermod -u 2000 man  修改用户

权限

权限作用在对象上,是作用在文件上的属性

普通权限的规划:
    r   4
    w   2 
    x   1

-rw-r--r--. 1 root root 938 Jan  4 10:00 /etc/passwd
第一个代表  文件类型
后面九位,三个字符为一组,组合形式出现
第一个root 表示  文件的所有者
第二个root 表示  所有者在的所属组

chmod -R 755 /data 修改权限
chwon -R man:dev /data 修改属组

4.程序管理

ps -ef  查看进程状态
ps -ef |grep mysql  过滤
kill 42192
kill -9 42192 强制关闭
pkill mysqld 批量关闭

systemctl start httpd  开启服务
systemctl restart httpd  重启服务
systemctl stop httpd  关闭服务

查看已启动服务的端口
netstat -tulnp |grep 80

5.网络管理

查看ip地址
ip a
ifconfig
修改ip地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
改完后需要重启
systemctl restart network