commands
挂载磁盘
#查看磁盘信息 找到你要格式化的磁盘
sudo fdisk -l
#一般sda为系统盘 ,确认好自己要格式的磁盘 ,假设这里为sdb,选ext4格式。
sudo mkfs.ext4 /dev/vdb
#创建目录
mkdir -p /mnt/data
#将磁盘/dev/vdb挂载到/mnt/data下
mount /dev/vdb /mnt/data
#查看uuid号
blkid /dev/vdb
#设置开机自动挂载
#添加最后一行 UUID=960e8b9c-8005-4086-b728-990b6b8790c7 /mnt/data ext4 defaults 0 0
vi /etc/fstab
mount -a 保存
生成密钥
ssh-keygen -t rsa
常用命令
scp -P 32542 curl.txt [email protected]:/root/
#校验服务器时间
yum install -y ntpdate
ntpdate 1.cn.pool.ntp.org
timedatectl list-timezones |grep Shanghai #查找中国时区的完整名称
Asia/Shanghai
timedatectl set-timezone Asia/Shanghai #其他时区以此类推
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
##安装nohup
yum install coreutils
查找命令 Find Grep
- name 按文件名查找
- type 按文件类 型查找
- exec 对搜索结果在处理
- mtime 按修改时间查找
# find命令格式
find path -option [-print] [-exec -ok command] {} \
1)path:要查找的目录路径。
~ 表示$HOME目录
. 表示当前目录
/ 表示根目录
2)options :表示对目录路径中文件的查找方式
-name filename #查找名为filename的文件
-perm #按执行权限来查找(mode为完全匹配,-mode为包含)
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查找无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查找无有效属主的文件,即文件的属主在/etc/passwd中不存
-type b/d/c/p/l/f #查找是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查找长度为n块[或n字节]的文件
-mount #查找文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-prune
3)print:表示将结果输出到标准输出。
4)exec:对匹配的文件执行该参数所给出的shell命令。形式为command {} ;,注意{}与;之间有空格。
5)ok:与exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执行。
find [指定查找目录] [查找规则] [查找完后执行的action]
# find命令的常规使用
# 1、根据文件名查找
find -name //根据文件名查找(精确查找)
find -iname //根据文件名查找,但是不区分大小写
find . -name '[A-Z]*.txt' -print //在当前目录及子目录中,查找大写字母开头的txt文件:
find /etc -name 'host*' -print //在/etc及其子目录中,查找host开头的文件:
find ~ -name '*' -print // 在$HOME目录及其子目录中,查找所有文件:
find . -name "out*" -prune -o -name "*.txt" -print //在当前目录及子目录中,查找不是out开头的txt文件:
# 2、按目录查找
find . -path "./aa" -prune -o -name "*.txt" -print //在当前目录除aa之外的子目录内搜索 txt文件:
find . ! -name "." -type d -prune -o -type f -name "*.txt" -print //在当前目录,不在其子目录中,查找txt文件:
# 3、按权限查找
①find 目录 -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
②find 目录 -perm -权限模式: 查找文件权限全部包含“权限模式”的文件
③find 目录 -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
find . -perm 755 -print //在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件:
# 4、按文件类型查找 (b/d/c/p/l/f )
find 搜索路径 [选项] 搜索内容
①-type d: 查找目录
②-type f: 查找普通文件
③-type l: 查找软链接文件
find . -type l -print //在当前目录及子目录下,查找符号链接文件:
# 5、按属主及属组
①-uid 用户ID: 按照用户 ID 查找所有者是指定 ID 的文件
②-gid 组ID: 按照用户组 ID 查找所属组是指定 ID 的文件
③-user 用户名: 按照用户名查找所有者是指定用户的文件
④-group 组名: 按照组名查找所属组是指定用户组的文件
⑤-nouser: 查找没有所有者的文件
find / -user www -type f -print //查找属主是www的文件:
find / -nouser -type f -print //查找属主被删除的文件:
find / -group mysql -type f -print //查找属组 mysql 的文件:
find / -nogroup -type f -print //查找用户组被删掉的文件:
# 6、按时间查找
Linux操作系统中的文件有三个时间:
数据访问时间 atime 数据修改时间 mtime 状态修改时间ctime
find -atime [+|-]时间 按文件访问时间搜索
find -mtime [+|-]时间 按文件数据修改时间搜索
find -ctime [+|-]时间 按文件状态修改时间搜索
find -atime -n 将n*24小时内存取过的的文件列出来
find -ctime -n 将n*24小时内改变、新增的文件或者目录列出来
find -mtime -n 将n*24小时内修改过的文件或者目录列出来
find -newer file 把比file还要新的文件列出来
find . -mtime -2 -type f -print //查找2天内被更改过的文件:
find . -mtime +2 -type f -print //查找2天前被更改过的文件:
find . -atime -1 -type f -print //查找一天内被访问的文件:
find . -atime +1 -type f -print //查找一天前被访问的文件:
find . -ctime -1 -type f -print //查找一天内状态被改变的文件:
find . -ctime +1 -type f -print //查找一天前状态被改变的文件:
find . -cmin +10 -type f -print //查找10分钟以前状态被改变的文件:
# 7、按文件新旧
find . -newer "aa.txt" -type f -print //查找比 aa.txt 新的文件:
find . ! -newer "aa.txt" -type f -print //查找比 aa.txt 旧的文件:
find . -newer 'aa.txt' ! -newer 'bb.txt' -type f -print //查找比aa.txt新,比bb.txt旧的文件:
# 8、按文件大小查找
find -size [+|-]大小
注意:
①+ 是大于
②- 是小于
find / -size +1M -type f -print //查找超过1M的文件:
find . -size 6c -print //查找等于6字节的文件:
find . -size -32k -print //查找小于32k的文件 :
# 9、执行命令
1)查找 del.txt 并删除,删除前提示确认:
find . -name 'del.txt' -ok rm {} \;
2)查找 aa.txt 并备份为aa.txt.bak:
find . -name 'aa.txt' -exec cp {} {}.bak \;
3)查当前目录下的所有普通文件:
# find . -type f -exec ls -l {} \;
-rw-r–r– 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r–r– 1 root root 12959 2003-02-25 ./conf/magic
-rw-r–r– 1 root root 180 2003-02-25 ./conf.d/README
# 解释:查当前目录下的所有普通文件,并在 - exec 选项中使用 ls -l 命令将它们列出。
4)在 /logs 目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} \;
5)查询当天修改过的文件:
#find ./ -mtime -1 -type f -exec ls -l {} \;
6)查询文件并询问是否要显示:
# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? y
-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php
# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? n
# 关于 find命令中有没有 -print参数 的区别
1)加 -print参数
查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print参数时文件列表前一行不会显示目录名称)
find /home -type d -print -exec ls {} ;
1 find 单独使用
# 如果你想在家目录查找所有 以jpg结尾的文件。 -name 参数允许你将结果限制为与给定模式匹配的文件。
find ~ -name '*jpg'
# 但是等等!如果其中一些扩展名是大写怎么办? -iname 类似于 -name,但不区分大小写:
find ~ -iname '*jpg'
# 可以将模式使用“或”(-o)进行组合。括号需要转义,以便使 find 命令而不是 shell 程序尝试解释它们。
find ~ \( -iname 'jpeg' -o -iname 'jpg' \)
# 可以加上 -type 参数来仅查找文件:
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
2 使用find+ xargs 进行操作
# xargs 命令从标准输入流中获取参数,并基于它们执行命令。将所有 JPEG 文件复制到 /media/photo_display。
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -print0 | xargs -0 cp -t /media/photo_display
ps
这里的 find 命令与以前的版本略有不同。-print0 命令让输出有一些更改:它不使用换行符,而是添加了一个 null 字符。xargs 的 -0(零)选项可调整解析以达到预期效果。这很重要,不然对包含空格、引号或其他特殊字符的文件名执行操作可能无法按预期进行。对文件采取任何操作时,都应使用这些选项。 cp 命令的 -t 参数很重要,因为 cp 通常要求目的地址在最后。你可以不使用 xargs 而使用 find 的 -exec 执行此操作,但是 xargs 的方式会更快,尤其是对于大量文件,因为它会单次调用 cp。
Grep
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
-o 只输出匹配的内容(一般用于获取关键字在文件中出现的次数查找)
-w 按单词位单位过滤
-v 取反(获取不包含关键字的文件内容)
# 某文件是在当前文件夹目录下
cat 文件名 | grep "关键字" 或者 grep '关键字' 文件名
# 在某个目录下的多个文件中查找文件内容中包含的关键字
grep -r "关键字" 目录
# 查看文件中追加的含有关键字的内容 查找的文件实时更新,查找的关键字内容也在实时更新
tail -f xxxxx.log | grep keyword
# 统计文件中关键字出现的次数
cat xxx.log | grep -o keyword | wc -l
# 显示附近几行
cat log.txt | grep panic -C 10
grep -r “{关键字}” {路径}
# example
grep -r "data" /data/notes/
# 使用grep查找进程号并且kill
ps -ef | grep "test" | grep -v grep | awk '{print $1}' |xargs -0 kill
此处说明
- grep -v 去除关键字
- awk 文本处理,打印第一项,此处为进程号
- xargs 执行命令kill
Tail
-
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
-
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]
参数
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
关闭防火墙
systemctl
sudo systemctl stop firewalld # 停止防火墙服务
sudo systemctl disable firewalld # 禁止防火墙开机自启
service
sudo service firewalld stop # 停止防火墙服务
sudo chkconfig firewalld off # 禁止防火墙开机自启
iptables
sudo iptables -F # 清空防火墙规则
sudo service iptables save # 保存防火墙规则
sudo service iptables stop # 停止防火墙服务
sudo chkconfig iptables off # 禁止防火墙开机自启
firewall-cmd
sudo firewall-cmd --state # 查看防火墙状态
sudo firewall-cmd --reload # 重新加载防火墙规则
sudo firewall-cmd --permanent --set-default-zone=trusted # 将默认区域设置为 trusted
sudo firewall-cmd --state # 再次查看防火墙状态,确保已关闭
磁盘命令
ls -lh
ls -l
- du命令 查看当前目录和子目录文件夹/文件大小情况
du -sh
du -sh *
- df命令 该命令用于查看文件系统的硬盘挂载点和空间使用情况
df -m
df -h
查看文件描述符情况
cat /proc/sys/fs/file-nr
ls -l /proc/pid/fd | wc -l
- 输出格式为三个数字(例如 5664 0 186405),分别表示:
- 已分配且正在使用的FD数量
- 已分配但未使用的FD数量(通常为0)
- 系统最大FD限制(与file-max值相同
查看9200端口连接数量
netstat -tunlp | grep 9200 | wc -l
netstat -anp | grep 9200 | wc -l
ssh配置
步骤 1:修改 SSH 配置文件
sudo vim /etc/ssh/sshd_config
# 允许密码登录(默认可能开启,确保没有被注释或设为 no)
PasswordAuthentication yes
# 允许密钥登录(默认开启,确保配置正确)
PubkeyAuthentication yes
# 允许使用证书登录(可选,通常默认开启)
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
# 禁用空密码(安全建议,保持开启)
PermitEmptyPasswords no
# 允许root登录(根据需求设置,建议设为 no,用普通用户 sudo 管 理)
PermitRootLogin yes # 或 no
步骤 2:重启 SSH 服务
sudo systemctl restart sshd
旧系统centos6
sudo service sshd restart
步骤 3:验证配置
sudo systemctl status sshd
步骤 4:生成密钥(如果没有)
ssh-keygen -t rsa -b 2048
步骤 5:复制公钥到服务器
ssh-copy-id 用户名@服务器地址
步骤 6:测试连接
ssh 用户名@服务器地址
- 未通过-i参数指定公钥时,自动使用默认路径~/.ssh/id_rsa.pub
- 若需使用其他密钥文件,需显式指定:
ssh-copy-id -i /path/to/custom_key.pub user@host
步骤 7: 常见问题处理
- 权限问题
- 确保远程主机的~/.ssh目录权限为700,authorized_keys文件权限为600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- 主机密钥冲突
- 若报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED,需清除本地缓存的旧密钥
ssh-keygen -R 目标主机IP
- 目录不存在
- 远程主机缺少.ssh目录时,需手动创建并设置权限后重试5。
查看surgate.service执行的是那个目录下的那个程序
cat /etc/systemd/system/surgate.service
查看内核以及版本
cat /etc/os-release
cat /etc/centos-release
uname -a
uname -r
hostnamectl | grep -i kernel
SSH 免密登陆配置
- 没有生成公私钥先生成
ssh-keygen -t rsa -b 4096
- -t rsa:指定密钥类型为 RSA(也可使用 ed25519,更安全:ssh-keygen -t ed25519);
- -b 4096:指定密钥长度(增强安全性)。
- 直接按回车,使用默认路径(~/.ssh/)即可。
- 生成成功后,~/.ssh/ 目录下会出现两个文件:
已经生成执行下面这个命令即可
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]