Skip to main content

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: 常见问题处理‌

  1. 权限问题‌
  • 确保远程主机的~/.ssh目录权限为700,authorized_keys文件权限为600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. 主机密钥冲突‌
  • 若报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED,需清除本地缓存的旧密钥
ssh-keygen -R 目标主机IP
  1. 目录不存在‌
  • 远程主机缺少.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