i 下面这些常用命令是Centos7环境下有效,可能在其他Linux系统中无法使用!
ii 下面命令可能存在错误,如有错误,还望指正,谢谢!
一,文件与目录
命令 | 作用 |
---|---|
cd … | 返回上一级目录 |
cd …/… | 返回上两级目录 |
cd - | 返回上次所在目录 |
cp file1 file2 | 将 file1 复制为 file2 |
cp -a dir1 dir2 | 复制一个目录 |
cp -a /tmp/dir1 . | 复制一个目录到当前工作目录(.代表当前目录) |
scp file1 root@ip:file2 | 远程复制,将本地file1文件复制为指定ip服务器的某个文件 |
scp -r dir root@ip:/root | 远程复制,将本地dir目录复制为指定ip服务器root目录下 |
ls | 查看目录中的文件,只有文件名称,简略的文件信息 |
ls -a | 显示隐藏文件 |
ls -l 或者 ll | 显示当前目录下文件的详细信息 |
ls -lrt | 按时间显示文件(l表示详细列表,r表示反向排序,t表示按时间排序) |
pwd | 显示工作路径 |
mkdir dir1 | 创建 dir1 目录 |
mkdir dir1 dir2 | 同时创建两个目录 |
mkdir -p /tmp/dir1/dir2 | 创建一个目录树 |
mv dir1 dir2 | 移动/重命名一个目录 |
rm -f file1 | 删除 ‘file1’, 只能删除一个文件 |
rm -rf dir | 删除 ‘dir1’ 目录及其子目录内容,也可以删除文件 |
二,查看文件
命令 | 作用 |
---|---|
cat file1 | 查看file1 文件中的内容 |
head -2 file1 | 查看文件的前两行内容 |
more file1 | 查看一个长文件的内容, ctrl + b 向下翻页,ctrl + f 向上翻页 |
tac file1 | 从最后一行开始反向查看一个文件的内容 |
tail -3 file1 | 查看一个文件的最后三行 |
vim file | 打开并浏览文件 |
三,文本内容处理
命令 | 作用 |
---|---|
grep str /tmp/test | 在文件 ‘/tmp/test’ 中查找 “str” |
grep [0-9] /tmp/test | 查找 ‘/tmp/test’ 文件中所有包含数字的行 |
grep str -r /tmp/* | 在目录 ‘/tmp’ 及其子目录中查找 “str” |
diff file1 file2 | 找出两个文件的不同处 |
sdiff file1 file2 | 以对比的方式显示两个文件的不同 |
vim 模式下相关操作 | i 进入编辑模式 ;ESC 退出编辑模式 ;w 保存当前文件;q 退出vim模式;q! 强制退出vim模式;wq 保存文件并退出vim模式 |
vim 模式下查询关键字 | /str 查询关键字str,ctrl + b 向上翻页,ctrl + f 向下翻页 |
四,查询操作
命令 | 作用 |
---|---|
find / -name file1 | 从 ‘/’ 开始进入根文件系统查找文件和目录 |
find / -user user1 | 查找属于用户 ‘user1’ 的文件和目录 |
find /home/user1 -name *.bin | 在目录 ‘/ home/user1’ 中查找以 ‘.bin’ 结尾的文件 |
find /usr/bin -type f -atime +100 | 查找在过去100天内未被使用过的执行文件 |
find /usr/bin -type f -mtime -10 | 查找在10天内被创建或者修改过的文件 |
locate *.ps | 寻找以 ‘.ps’ 结尾的文件,先运行 ‘updatedb’ 命令 |
find -name ‘*.[ch]’ | xargs grep -E ‘expr’ | 在当前目录及其子目录所有.c和.h文件中查找 ‘expr’ |
find -type f -print0 | xargs -r0 grep -F ‘expr’ | 在当前目录及其子目录的常规文件中查找 ‘expr’ |
find -maxdepth 1 -type f | xargs grep -F ‘expr’ | 在当前目录中查找 ‘expr’ |
五,压缩、解压
命令 | 作用 |
---|---|
bzip2 file1 | 压缩 file1 |
bunzip2 file1.bz2 | 解压 file1.bz2 |
gzip file1 | 压缩 file1 |
gzip -9 file1 | 最大程度压缩 file1 |
gunzip file1.gz | 解压 file1.gz |
tar -cvf archive.tar file1 | 把file1打包成 archive.tar(-c: 建立压缩档案;-v: 显示所有过程;-f: 使用档案名字,是必须的,是最后一个参数) |
tar -cvf archive.tar file1 dir1 | 把 file1,dir1 打包成 archive.tar |
tar -tf archive.tar | 显示一个包中的内容 |
tar -xvf archive.tar | 释放一个包 |
tar -xvf archive.tar -C /tmp | 把压缩包释放到 /tmp目录下 |
zip file1.zip file1 | 创建一个zip格式的压缩包 |
zip -r file1.zip file1 dir1 | 把文件和目录压缩成一个zip格式的压缩包 |
unzip file1.zip | 解压一个zip格式的压缩包到当前目录 |
unzip test.zip -d /tmp/ | 解压一个zip格式的压缩包到 /tmp 目录 |
六,yum安装器
命令 | 作用 |
---|---|
yum -y install [package] | 下载并安装一个rpm包 |
yum localinstall [package.rpm] | 安装一个rpm包,使用你自己的软件仓库解决所有依赖关系 |
yum -y update | 更新当前系统中安装的所有rpm包 |
yum update [package] | 更新一个rpm包 |
yum remove [package] | 删除一个rpm包 |
yum list | 列出当前系统中安装的所有包 |
yum search [package] | 在rpm仓库中搜寻软件包 |
yum clean [package] | 清除缓存目录(/var/cache/yum)下的软件包 |
yum clean headers | 删除所有头文件 |
yum clean all | 删除所有缓存的包和头文件 |
七, 网络
命令 | 作用 |
---|---|
netstat -anp | egrep ‘2887|2888|2889|2890’ | 列出所有端口, 并按照正则条件过滤结果 |
ifconfig eth0 | 显示一个以太网卡的配置 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | 配置网卡的IP地址 |
ifdown eth0 | 禁用 ‘eth0’ 网络设备 |
ifup eth0 | 启用 ‘eth0’ 网络设备 |
iwconfig eth1 | 显示一个无线网卡的配置 |
iwlist scan | 显示无线网络 |
ip addr show | 显示网卡的IP地址 |
systemctl start firewalld | 启动防火墙 |
systemctl stop firewalld | 关闭防火墙 |
systemctl status firewalld | 查看防火墙状态 |
systemctl disable firewalld | 开机仅用防火墙 |
systemctl enable firewalld | 开机启用防火墙 |
八,系统
命令 | 作用 |
---|---|
su - | 切换到root权限(与su有区别) |
shutdown -h now | 关机 |
shutdown -r now | 重启 |
top | 列出使用CPU资源最多的linux任务 (输入q退出) |
ps -aux | grep ‘nginx’ | 查询与nginx 相关的进程 |
lsof -i:80 或 netstat -ntlp | grep :80 | 查看端口号为 80 的 PID |
kill -9 6379 | 杀死进程号为6379的进程 |
pstree | 以树状图显示程序 |
man ping | 查看参考手册(例如ping 命令) |
passwd | 修改密码 |
df -h | 显示磁盘的使用情况 |
cal -3 | 显示前一个月,当前月以及下一个月的月历 |
cal 10 1988 | 显示指定月,年的月历 |
九,其他
1,修改ssh 端口号, 保证服务器安全
- 编辑文件
/etc/ssh/sshd_config
, 打开端口 22, 并添加配置Port 1022
(1022 :ssh 新端口)。如图:
这里保留 22 端口的原因是防止 1022 端口被占用,但是新端口设置失败,最后导致 10022 和 22 端口都无法登录,所以先保证1022 端口设置成功,然后再关闭 22 端口,当然可以使用
netstat -nlp | grep 1022
检查端口是否被占用, 然后再进行新端口设置
- 重启 sshd 服务, 执行命令
systemctl restart sshd
, 并检查服务是否启动成功,执行命令systemctl status sshd
, 启动成功还需要到云服务管理平台开放 1022 端口,然后使用命令ssh -p 1022 [username]@[ip]
检查是否能够登录成功。 - 如果新端口能够正常登录,关闭 22 端口,进入配置文件,讲配置
Port 22
注释掉,然后重启 sshd 服务即可。
参考博文: https://blog.csdn.net/qq_40087415/article/details/79367151
2,开启服务器 ssh 秘钥文件登录,关闭密码登录
-
生成秘钥
使用ssh-keygen -t rsa
生成秘钥,默认生成的文件在用户目录下,如:/root/.ssh
(root 用户登录), 如图:
执行命令:cat id_rsa.pub > authorized_keys
,复制公钥内容到文件authorized_keys
中 -
修改秘钥文件权限
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
- 修改配置,开启秘钥登录
修改SSH的配置文件, 文件位置:/etc/ssh/sshd_config
, 开启三个参数,如图:
这里仅仅开启秘钥登录,不要关闭密码登录,防止秘钥登录配置失败,导致密码和秘钥都无法登录,那就不好玩了。
- 重启服务,让配置生效
systemctl restart sshd // 重启服务
systemctl status sshd // 检查服务是否正常启动
- 测试秘钥登录,保证配置正确
拷贝第一步生成的秘钥文件id_rsa
到客户端,执行命令:ssh -p 1022 -i id_rsa root@xxx
检查是否可以正常登录。 - 关闭密码登录
如果秘钥登录正常,修改配置, 关闭密码登录, 然后sshd
服务 , 配置如下:
最后建议关闭root
登录,
3,查看所有用户和组信息
基础命令
groupadd hw // 添加组
groupdel hw // 删除组
useradd hw //添加用户
userdel hw // 删除用户
用户文件信息:/etc/passwd
, 内容解释:
root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
sam:x:200:50:Sam san:/home/sam:/bin/sh
解释:用户名:口令(密码):用户标识号:组标识号:注释性描述:主目录:登录Shell
组文件信息,文件名:/etc/group
root::0:root
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
lp::7:root,lp
users::20:root,sam
解释:组名:口令:组标识号:组内用户列表