linux基础
一、centos基本配置
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
