操作用户
添加用户
useradd 用户名
修改用户密码
passwd 已创建的用户名
删除用户
userdel 用户名
切换用户
su 用户名
定时任务
列出所有定时任务
crontab -l
进入定时任务
crontab -e
分时日月周 需要执行的代码指令
* * * * * code
会话
列出所有会话
screen -ls
进入会话
screen -r 会话名称
进入会话(如果会话不存在则创建)
screen -R 会话名称
离开会话
Ctrl + A + D
将指定的会话离线然后进入
screen -d -r 会话名称
删除会话
screen -X -S 122128 quit
操作文件夹
创建文件
vim 文件名
touch 文件名
echo 内容 > 文件名
创建目录
mkdir 目录名
mkdir -p /一级目录/二级目录/三级目录/···
查看文件内容
cat 文件名 --打印文件所有内容
tailf 文件名 --动态输出文件末尾内容
less 文件名 --逐页展示内容(查看大文件用此命令)
vim/vi 文件名 --编辑文件
查看文件大小
du -h --max-depth=1
文件所属用户
chown -R 用户名 文件名
文件所属组
chgrp -R 用户名 文件名
修改文件权限
chmod 权限值 文件
举例:
chmod -R 777 文件 ([-R]将文件夹以及包含的文件,[777]赋予777权限)
chmod +x 文件 (添加执行权限,相应的-是取消权限。+r是读,+w是写)
移动文件夹以及内容
cp -r 文件名 目标目录
scp -r 文件名 目标ip:目录
rsync -avzut --progress 文件 root@ip:/目标绝对路径【远程复制不覆盖已有文件,--progress显示过程,u参数不覆盖】
\cp -rf *.jpg /yisa_oe/web/pic/vehicle/ (移动文件不提示是否覆盖,开头有\)
删除文件
rm -rf 文件名 (r是递归,f是无提示 直接删除)
批量替换多个文件的内容
方法1
sed -i 's/原文字/新文字/g' `命令`
例如把当前的PHP文件中的1替换为3
sed -i 's/1/3/g' `ls ./ | grep php`
方法2
sed -i "s/查找的内容/替换后的内容/g" `grep -rl "查找的内容" ./`
前面的命令是替换,后面的是列出文件
压缩
解压
tar -zxvf tar文件
unzip zip文件
解压tar报错
tar -xvf 压缩包 -H posix
压缩
tar -czvf 压缩包名.tar 需要压缩的文件
zip 文件名.zip 需要压缩的文件
查找
查找文件
find 目录 -name *文件名*(在指定目录查找包含指定文件名的文件)
全局查找文件内容
grep -rni '指定内容' *.php(在后缀为php的文件中查找指定内容)
查看内存使用情况
du
-c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-s或 仅显示总计,只列出最后加总的值。
-h或 以K,M,G为单位,提高信息的可读性。
举例
du -h /home/wwwroot(显示本目录下所有文件占用空间大小)
du -sh /home/wwwroot/default/(显示总和)
free[内存使用情况]
free -m
Mem:表示物理内存统计
total:表示物理内存总量(total = used + free)
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。shared:共享内存。
buffers:系统分配但未被使用的buffers 数量。cached:系统分配但未被使用的cache 数量。
-/+ buffers/cache:表示物理内存的缓存统计
used2:也就是第一行中的used – buffers-cached 也是实际使用的内存总量。 //used2为第二行
free2= buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行
free2:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
Swap:表示硬盘上交换分区的使用情况
df [显示指定磁盘文件的可用空间]
-a 全部文件系统列表
-h 方便阅读方式显示
-i 显示inode信息
-T 文件系统类型
僵尸进程
查看僵尸进程
ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'
查看端口是否被占用
lsof -i:端口号
杀死多个进程
情景:python脚本启了多个进程
ps -aux | grep test.py | grep -v grep | awk '{print $2}' | xargs kill -9
wget下载
有密码
wget ftp地址 --ftp-user=username --ftp-password=password
查看系统是多少位
getconf LONG_BIT
查看是centos几
cat /etc/redhat-release
修改系统名称
将/etc/hostname内容修改为想要的名字
vim /etc/sysconfig/network 添加IP和hostname对应关系
重启reboot生效
网络
ssh
ssh 用户名@ip 指定用户来登录服务器
查看命令所在位置
which 命令
which ls
抓包
tcpdump -i eno1 tcp port 80
磁盘对拷
1.将/dev/sda中的所有数据要说后放到disk.img.bz2
dd if=硬盘或者文件 | bzip2 > back.bz2
2.解压
bzip2 -d back.bz2
3.示例
dd if=/dev/sda | bzip2 > disk.img.bz2
bzip2 -d disk.img.bz2
更多帮助http://c.biancheng.net/linux/dd.html
查看磁盘设备信息
df -h(已挂载磁盘大小挂载点)
lsblk -f(挂载及未挂载分区、格式化格式、挂载点)
fdisk -l (挂载及未挂载磁盘大小)
格式化磁盘、挂载磁盘
https://blog.51cto.com/12173069/2065704
分区:fdisk /dev/sd盘符
使分区生效:partprobe /dev/sd盘符
格式化 mkfs.xfs /dev/sd盘符 -f
格式化时 mkfs.格式
格式可以指定mkfs.ext4 mkfs.xfs等
永久挂载磁盘 /etc/fstab
解决挂载磁盘后原来数据丢失
参考:https://www.cnblogs.com/zhangguilin/p/6930760.html
mkdir /new ###跳板目录
mount /dev/sdb1 /new ###首先挂载跳板目录
cp -R /home/* /new ###复制/home目录所有数据到/new先
rm -rf /home/* ####可选,主要为了腾出空间给原来的硬盘
mount /dev/sdb1 /home ###挂载/home 到新硬盘,此时你会神奇的发现之前的/home目录文件已经全部转移过来了,也许你会有点疑问,我并没有复制或移动/new文件到新挂载的/home目录啊,其实此时的/home目录相当于/new目录的硬链接,可以测试下mkdir /new/test 你会发现/home目录也存在test
umount /new ###解除挂载
rm -rf /new ###删除跳板目录
查看磁盘io
一般大于70%就卡了
iostat -x 1 10
找出占用较高的进程
iotop
查看带宽占用率
iftop
nload -u m 当前 平均 最小 最大
查看识别占用率
top 1 展开cpu详情 P 按cpu负载排序
服务器禁ping
先执行临时禁ping
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
设置每次开机都会执行临时禁ping
vim /etc/rc.d/rc.local
将echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all写到最后一行