1,文件管理
touch 1.txt \\创建文件
touch {1..5}.txt \\连续创建1-5,五个文件
mkdir 1.dir \\创建目录
mkdir -P /aaa/bbb/ccc \\父系创建,一次创建多层目录
cp -r 源文件 目标路径 \\复制,复制多个(源 源 源 目标)
mv 源文件 目标路径 \\移动或改名
rm -rf 1.txt \\删除文件
cd 路径 \\改变路径
ls 路径 \\列出路径下内容
ls -l \\长格式列出路径下内容(属性)
ls -l -d \\长格式列出路径下目录属性
ls -l -d -h \\人性化显示文件大小
2,文件类型
- - 普通文件
d - 目录
l - 链接
b - 块设备文件
3,文件内容管理
vim、vi 文件名 \\打开文件
进入文件后,处于命令行模式。
1,命令行模式:
yy,3yy \\复制,复制三行
p \\粘贴
dd \\删除
u \\撤销操作
2,按i进入插入模式:
插入模式可以编辑文档。
3,按v进入可视化模式,使用光标选择,组合命令行模式的命令使用。
4,末行模式:
:wq \\w-保存,q-退出
:1,5 s/111/222/g \\查找替换,:范围 替换/111/为222/全局
/字符 \\文件内查找字符
:set nu \\列出行号
:set list \\列出控制符(换行符,空格)
4,用户管理
useradd user01 \\创建用户
passwd user01 \\设定用户密码
useradd user01 -u 1234 \\指定uid创建用户
useradd user01 -d /tmp/abc \\指定用户家目录创建
useradd user01 -s /sbin/nologin \\创建不允许登陆的用户
usermod -u(-d -s) \\创建后更改用户参数
usermod -aG hr user01 \\把用户加入到hr组
userdel -r user01 \\删除用户
5,组管理
groupadd hr \\创建组
groupadd hr -g 1231 \\指定gid创建组
groupdel hr \\删除组
6,普通用户提权
su - root \\切换用户
sudo:
将普通用户加入到wheel组,普通用户将有root权限
usermod -aG wheel user01
普通用户使用命令:
sudo useradd user02
7,基本权限ugo
u——属主 g——属组 o——其他人
r——4——读 w——2——写 x——1——执行
chmod u+x text.file \\文件属主增加执行权
chmod u=rwx text.file \\文件属主权限重新定义为读写执行
chmod 777 text.file \\文件属主,属组,其他人都是读写执行权
chown user01.hr text.file \\更改文件的属主和属组
chown user01 text.file \\更改文件的属主
chown .hr text.file \\更改文件的属组
8,基本权限acl
getfacl text.file \\查看文件的acl权限
setfacl -m u:user01:rwx 文件 \\设置用户对文件有读写执行
setfacl -m g:hr:rwx 文件 \\设置组对文件有读写执行
setfacl -R -m u:user01:rwx 文件 \\递归设置文件夹下所有文件
setfacl -x u:user01 文件 \\删除用户对文件的权限
setfacl -b 文件 \\删除文件所有的acl权限
9,特殊权限
chattr +i text.txt \\设置文件特殊权限,不可改
lsattr text.txt \\查看文件特殊权限
10,进程掩码
umask \\查看进程掩码
umask 0077 \\进程掩码改成077
11,进程管理process
静态查看进程:
ps aux \\查看系统进程
ps -ef \\ 查看进程的父子关系
ps axo user,pid \\指定列查看进程
动态查看:
top
进程管理kill:
kill -9 杀死进程
kill -15 终止进程
kill -19 暂停
kill -18 开始
kill -2 键盘中断 ctrl+c
kill -20 键盘暂停 ctrl+z
12,作业控制
jobs \\查看后台作业
fg 1(作业号) \\将后台作业调到前台
作业调到前台后,按ctrl+z,暂停并扔到后台
bg 1(作业号) \\运行后台暂停的作业
kill %1(作业号) \\终止作业
13,普通磁盘管理
lsblk \\查看磁盘
fdisk \\磁盘管理
n——分区,p——主分区,1——分区号,起始大小——默认,结束大小——+200M,w——保存配置
mkfs.ext4 /dev/sdb1 \\格式化分区
mkdir /mnt/disk1 \\创建挂载点
mount /dev/sdb1 /mnt/disk1 \\挂载
df -hT \\查看挂载信息
partprobe \\刷新磁盘分区
14,逻辑卷管理lvm
pvcreate /dev/sdb \\制作物理卷
vgcreate vg1 /dev/sdb \\创建卷组
lvcreate -L 200M -n lv1 vg1 \\创建逻辑卷
mkfs.ext4 /dev/vg1/lv1 \\格式化
mkdir /mnt/lv1 \\创建挂载点
mount /dev/vg1/lv1 /mnt/lv1 \\挂载
vgextnd vg1 /dev/sdc \\卷组扩容
lvextend -L +200M /dev/vg1/lv1 \\逻辑卷扩容
resize2fs /dev/vg/lv1 \\fs扩容(扩容刷新)
15,交换分区swap
free -m \\以m为单位查看交换分区
交换分区扩容,要先以基本管理分区,分区后以swap方式,格式化并挂载
mkswap /dev/sdb1 \\分区格式化成交换分区
swapon /dev/sdb1 \\挂载到交换分区
swapoff /dev/sdb1 \\卸载交换分区
16,存储高级管理
ls -i \\查看文件inode
df -i \\查看分区inode情况
inode决定分区中文件个数
block决定分区中文件大小
17,软/硬链接
软连接:(依赖源文件,源文件丢失,链接不可用)
ln -s 源文件 链接文件
硬链接:(不依赖源文件,但是创建链接文件不能跨分区)
ln 源文件 链接文件
18,磁盘阵列RAID
RAID0——文件数据分成多段,每块磁盘存储一块,提升读写速率,但是不容错
RAID1——文件数据复制成双份,一块磁盘存储一块,容量减半,速率一般,但是容错
RAID5——文件数据被分成n-1份,数据存在n块磁盘上,一块磁盘作为校验和速率提升为(n-1)/n,容错
19,文件查找
which ls \\查找命令
whereis ls \\查找命令
locate 1.txt \\查找文件,依赖数据库,开机后创建的查找不到
updatedb \\刷新locate数据库
find / -name “hosts” \\按文件名查找
find / -iname “HOST*” \\按文件命名模糊查找,不分大小写
find / -size +5M \\5M,-5M 按文件大小查找
find / -maxdepth 4 -a -name “hosts” \\指定查找深度,结合其他条件查找
find / -user hr \\按文件属主查找
find / -group alice \\按文件数组查找
find / -type f \\按文件类型查找,f-普通,d-目录,l-链接,b-块设备
find / -perm 644 \\按文件权限查找
find找到后接动作
默认 -print \\打印,短格式显示
-ls \\长格式显示
-delete \\删除
复制:
find / -name "hosts" -ok cp -rvh {} /tmp \; \\提示
-ok——承接,cp -rvh——复制,{}——替代前边找到的,/tmp——目标路径,\;——结束符
find / -name "hosts" -exec cp -rvh {} /tmp \; \\不提示
find / -name "hosts" |xargs cp -t /tmp
20,文件打包压缩
tar -cf etc.tar /etc \\打包不压缩
tar -czvf etc.tar.gz /etc \\gzip压缩
tar -cjf etc.tar.bz /etc \\bzip压缩
tar -cJF etc.tar.xz /etc \\xzip压缩
压缩体积递减,压缩时间递增
解压:
tar -xf etc.tar.gz \\解压到当前路径
tar -xf etc.tar.gz -C /tmp \\解压到指定路径
21,RPM包管理
- yum工具:
配置yum库
阿里:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
epel:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum repolist all \\加载库
yum管理程序:
yum insatll -y 程序名 \\安装
yum remove -y 程序名 \\卸载
yum reinstall -y 程序名 \\重装
yum list 程序名 \\查询安装
yum provides 命令 \\查询命令由哪个包提供
- rpm管理程序:
rpm -ivh 包名 \\安装
rpm -q 程序名 \\查询安装
rpm -evh 包名去掉rpm \\卸载
rpm -qc 程序名 \\查询程序配置文件
- 程序的启动及停止
systemctl start 程序名 \\启动
systemctl stop 程序名 \\停止
systemctl restart 程序名 \\重启
systemctl status 程序名 \\查看程序状态
systemctl enable 程序名 \\设置开机启动
systemctl disable 程序名 \\禁止开机启动
22,源码包管理
源码包从各个程序的官网获取
示例:
部署编译环境:
yum install -y gcc make zlib-devel pcre pcre-devel openssl-devel
解压源码包:
tar -xf 源码包
进入解压出的目录下:
cd ————
配置:
./configure --user=www等 \\自定义配置
编译:
make
安装:
make install
或者编辑并安装:
make && make install
启动测试:
/usr/local/nginx/sbin/nginx \\配置的安装目录
23,任务计划
- 一次性调度执行
at now +5min \\at 时间戳
- 循环调度
crontab -e \\创建循环计划
* * * * * ls \\分时日月周 计划
crontab -l \\查看计划
crontab -r \\删除计划
ls /var/spool/corn \\计划存储位置
ls /etc/cron* \\计划配置文件
24,日志管理
tail -f /var/log/messages \\系统主日志文件
tail -f /var/log/secure \\安全,验证日志
tail -f /var/log/yum.log \\ yum日志
tail -f /var/log/maillog \\mail日志
tail -f /var/log/crom \\cron,at日志
tail -f /var/log/dmesg \\和系统启动查看
rsyslog控制日志类型及存储位置
vim /etc/rsyslog.conf \\配置相关设置
25,日志轮转
vim /etc/logrotate.conf \\主配置文件
=========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件
dateext //使用日期作为后缀
#compress //是否压缩
include /etc/logrotate.d //包含该目录下的子配置文件
/var/log/wtmp { //对某日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转,monthly and minsize(同时达到两个条件)
create 0664 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
示例:
vim /etc/logrotate.d/yum
var/log/yum.log{
missingok \\丢失不执行
#notifempty \\空文件不论转
#maxsize 30K \\到达轮转周期或30k,轮转
#minsize 20k \\到打周期并且够20k,轮转
#yearly \\一年轮转一次
daily \\按天轮转
rotate 3 \\轮转保留3次
create 0777 root root \\轮转后创建的新文件属性
}
/usr/sbin/logrotate /etc/logrotate.conf \\ 手动轮转
26,网络参数查看及配置
查看:
ip a \\ip地址
ip r(route) \\查看网关/路由
ip neigh \\查看ping过的邻居
cat /etc/resolv.conf \\查看dns 解析
配置:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" \\类型
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none" \\手动获取ip,dhcp-自动
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33" \\网卡名字
UUID="cb7ac9fa-5105-4e6b-b08a-c9a875c6fc7e"
DEVICE="ens33"
ONBOOT="yes" \\是否启用
IPADDR=192.168.183.130 \\ip
NETMASK=255.255.255.0 \\子网掩码
GATEWAY=192.168.183.2 \\网关/路由
DNS1=192.168.183.2 \\域名解析
27,主机名
hostname \\查看主机名
hostnamectl set-hostname abc \\改主机名
vim /etc/hostname \\主机名文件,可改
28,程序端口
ss -tnl
ss -anptl