纯属备忘录

find

(本人)常用的选项

-name按名字查找

find /path -name filename

-type按文件类型查找

文件类型有: d命令 f普通文件 b块设备 c字符设备文件 l链接 p管道文件 s套接口文件 find /path -type f

-size按文件大小查找

+、-表示大于和小于,不带符号表示等于 单位有c,k,M,G等 find /path -size 10c #查找小于10直接的文件或目录 find /path -size -10k find /path -size +1M

-exec对返回结果执行命令

find /path -type f -exec rm -rf {} ; #删除/path下所有的普通文件

-mtime 查找指定时间修改的文件(单位是1天)

+1、-1、1分别代表一天以上,一天以下、一天 -atime n:查找在指定时间曾被存取过的文件或目录,单位1天; -ctime n:查找在指定时间状态被改过的文件或目录,单位1天; -mtime n:查找在指定时间曾被更改过的文件或目录,单位1天; find /path -mtime -1

-depth

从最深的目录开始查找 find /path/to/file -depth #先找file,再找to,再找path

-maxdepth

设置超找的最大深度 find /path/to/file -maxdepth 2 #只会查找path 和to目录下的文件,不会超找file目录下的文件

-mindepth

find /path/to/file -mindepth 2#只会查找file 和to目录下的文件,不会超找path目录下的文件

-regex查找匹配正则表达式的文件

find /path/to/file -regex ‘.*hello’ #匹配以hello结尾的文件(注意会对路径进行匹配,所以前面必须有.*)

-perm根据权限查找文件

find /path -perm 755

一些用的比较少的选项 -expty 查找空文件或目录 -gid 按gis查找 -group 按group查找 -uid 按uid查找 -user 按user查找

-amin 和-atime,类似,查找单位是分钟 -cmin 和-ctime,类似,查找单位是分钟 -mmin 和-mtime,类似,查找单位是分钟

-nogroup 查找group不合法的文件或目录 -nouser 查找user不合法的文件或目录

用户管理

useradd 添加用户 -d指定家目录 -s指定shell -g指定group -G指定附属组 groupadd 添加组 usermod修改用户属性 -d修改家目录 -g修改group -G修改附属组 -s修改shell userdel 删除用户 -r同时删除家目录

权限管理

chmod修改权限 +r全部添加读权限 a+w全部添加写权限 u-w用户减少写权限 755 将权限设置为755 -R递归

chown修改文件所属 root.root 属主、属组改为root :test属组改为test

t权限 只有文件属组和root可以删除 chmod rwt filename

i权限 禁止修改和删除,主要防止误修改和误删除(木马病毒经常用) chattr +i filename #添加i权限 lscttr filename #查看i权限 chattr -i filename #删除i权限

s权限 所有人都能用属主的权限执行,只能给u添加 chmod u+s filename

VIM编辑器

只记几个用的少的 set fileencoding=chinese 设置字符编码为chinese(临时的,下次还是utf-8,除非该配置文件) set fileencodings=utf-8,gbk 按照utf-8、gbk编码解释文档内容,哪个能成功就用哪个

:!command执行外部命令

%(跳转到与之匹配的括号处) .(重复上次的修改命令) `.(跳转到最近修改过的位置) ZQ(无条件退出) ZZ(存盘退出) ga(显示光标下的字符在当前使用的 encoding 下的内码) guw(光标下的单词变为小写) gUw(光标下的单词变为大写) :TOhtml(根据 Vim 的语法加亮的方式生成 HTML 代码;在图形界面中也可以使用菜单“Syntax—Convert to HTML”达到同样效果)

linux添加虚拟内存(swap)

1、打开终端,切换到root用户,输入:free -m查看内存状态 [root@lxt lxt]# free -m total used free shared buffers cached Mem: 498 357 141 0 27 162 -/+ buffers/cache: 167 331 Swap: 1023 0 1023

2、输入df -B M(或df -m)查看各分区当前使用情况 [root@lxt lxt]# df -B M 文件系统 1M-块 已用 可用 已用% 挂载点 /dev/mapper/vg_lxt-lv_root 12875M 4059M 8162M 34% / /dev/sda7 194M 14M 170M 8% /boot tmpfs 250M 1M 249M 1% /dev/shm (fdisk -l可查看磁盘分区情况)

3、选择一个较大的分区,建立分区文件: [root@lxt lxt]# dd if=/dev/zero of=/swapadd bs=1024 count=524288 524288+0 records in 524288+0 records out 536870912 bytes (537 MB) copied,13.0709 秒,41.1 MB/秒 以上命令在根目录新建一个名为swapadd,大小为512M的虚拟内存文件

4、移动该文件到空间较大的其他分区: [root@lxt lxt]# mkdir /mnt/swap [root@lxt /]# mv swapadd /mnt/swap

5、执行以下命令启用虚拟内存并重启电脑(不用重启生效) [root@lxt /]# mkswap /mnt/swap/swapadd Setting up swapspace version 1, size = 524284 KiB no label, UUID=a5c8b651-6f64-4414-bb5f-580b742acfce [root@lxt /]# swapon /mnt/swap/swapadd 查看内存: [root@lxt /]# free -m total used free shared buffers cached Mem: 498 492 6 0 15 302 -/+ buffers/cache: 174 323 Swap: 1535 0 1535

6、如果不需要使用新增的虚拟内存,则输入: swapoff -v /mnt/swap/swapadd

linux扩容与缩容

添加硬盘

方案一

将硬盘添加到与第一个硬盘同一总线下

添加硬盘,注意以下位置 这里设备节点就是选择总线,SCSI(0:3) SCSI指的是总线 0是系统总线 3是硬盘ID 添加完成后上机器上查看,发现并没有新的硬盘,因为linux需要在重启后才会重新扫描总线,这里我们需要手动让系统扫描总线。 cat /proc/scsi/scsi 第一个是CD-ROM的总线,和硬盘不是同一总线 第二个是系统硬盘,总线是00 ,ID是00

查看系统磁盘总线host grep mpt /sys/class/scsi_host/host?/proc_name 如图host为2 刷新总线 echo "- - -" > /sys/class/scsi_host/host2/scan 如果不知道添加的总线在哪一个host下,可以将host2依次改为上面查出的所有host,从而刷新所有的总线。 然后查看/dev/目录下的文件发现有了新的硬盘

方案二

通过添加新的总线,让系统扫描该总线,从而直接添加硬盘 注意这里选择总线的时候要选择一个全新的总线 新的总线下添加硬盘是后设置完成后会显示添加总线和硬盘两个设备 查看/dev目录下,发现硬盘已经添加

扩根

格式化新磁盘

fdisk /dev/sde p-->n-->p-->1-->回车-->t-->8e-->2

将该硬盘添加到LVM的/下

创建LVM逻辑券

查看pv物理卷 pvscan 将新硬盘做为PV pvcreate /dev/sde1

将新建的PV添加到VG卷组中 查看vg卷组的信息

将新建的PV卷加到vg_master中 vgextend vg_master /dev/sde1

查看 vgdisplay 添加到lv逻辑卷中 lvdisplay 扩展lv空间 lvextend -L +1.99G /dev/mapper/vg_master-lv_root 需要留一点空余给inode 查看现在的lv大小 lvdisplay 重新设置/目录打下 resize2fs /dev/vg_master/lv_root

查看大小 df -h

resize2fs报错:resize2fs: Bad magic number in super-block 解决: 命令:xfs_growfs /dev/mapper/vg_master-lv_root

创建新lv逻辑卷

vgcreate vg_jenkins /dev/vdb1 lvcreate --name lv_opt --size 399G vg_jenkins

格式化 mkfs.ext4 /dev/vg_opt/lv_opt

挂载

mount -t ext4 /dev/vg_opt/lv_opt /opt

进程管理

查看所有进程 ps aux 或 ps -ef

交互模式查看进程 top 常用交互命令 P按使用cpu排序 M按驻留内存大小排序 1显示cpu列表(数字1) m显示内存信息 c显示命令完整命令行 k杀死一个进程

查看监听端口 netstat -atunlp ss -tunlp

查看进程打开的文件 lsof -a 找到打开指定文件的进程 -c通过进程名找到打开的所有文件 -p通过PID找到打开的所有文件 -i列出符合条件的进程(4、6、tcp、udp、:端口、@IP)(条件可以为空)

kill杀死指定pid的进程 killall杀死所有指定名称的服务

系统状态监控

查看cpu lscpu cat /proc/cpuinfo top

查看内存 free -m top

查看硬盘 lsblk df -h

监控io iotop

查看内核 lsmod

查看硬件信息 dmidecode

显示环境变量 env

uname显示系统信息 显示所有信息 uname -a 显示内核名称 uname -s 显示内核版本 uname -r

查看网络连接 iftop

ssh指定非22端口 ssh -p port [username]@ipaddress

ssh-copy-id指定非22端口

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p port username@IP"

rsync同步

linux同步linux rsync -avz '-e ssh -p PORT' HOSTNAME:/PATH/TO/FILE/ /PATH/TO/LOCAL/FILE linux同步windows rsync --port=PORT -vzrtopg --progress USERNAME@HOSTNAME::MODULE /PATH/TO/LOCAL/FILE windows同步windows(脚本)

@echo off
set time_hh=%time:~0,2%
if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%)
set filename=%date:~,4%%date:~5,2%%date:~8,2%_%time_hh%%time:~3,2%%time:~6,2%
echo.>C:\logs\FILENAME%filename%.txt
cd \PATH\TO\rsync.exe
rsync.exe -vzrtopg --progress --delete HOSTNAME::MODULE /cygdrive/c/LOCAL/PATH/ --password-file \PATH\TO\PASSWORD\FILE 1>C:\logs\FILENAME%filename%.txt 2>&1

/cygdrive/c/LOCAL/PATH/中的C是盘符

安装阿里yum源

#base yum cd /etc/yum.repos.d/ mkdir bak mv * bak #centos6 curl -O http://mirrors.aliyun.com/repo/Centos-6.repo #centos7 curl -O http://mirrors.aliyun.com/repo/Centos-7.repo #6 epel curl -O http://mirrors.aliyun.com/repo/epel-6.repo #7 epel curl -O http://mirrors.aliyun.com/repo/epel-7.repo #生成缓存数据 yum clean all && yum makecache fast&& yum repolist enabled