Linux指南
命令格式
command [-options] [parameter]
command 命令本身
-options
命令的一些选项,可以通过选项控制命令的行为细节
parameter
命令的参数,多数用于命令的指向目标等
ssh连接服务器
密码登录
ssh [username]@[host]
# 输入密码
出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 字样 通常是服务器公钥已更改,可能是重新安装了服务器或手动更改,也可能是遭受了中间人攻击 解决方案: 使用以下命令删除指定ip的旧密钥条目
shellssh-keygen -R [ip]
配置免密登录(密钥对)
- 在.ssh文件夹(Windows在C:\Users\用户名\下, linux在home目录下),打开终端(powershell、cmd、bash等)
- 输入
ssh-keygen -t rsa
生成一个公私钥对回车后输入文件名,接下来输入密码(可以为空) 成功后会得到两个文件:
id_rsa
- 私钥文件id_rsa.pub
- 公钥文件
- 将生成的公钥文件上传到服务器的
用户home目录/.ssh/
目录下,为便于区分,可以修改一下文件名 - 将公钥文件写入服务器
.ssh
目录下的authorized_keys
文件shellcat 公钥文件名 >> authorized_keys
- 从本机使用ssh登录服务器,若不需要再输入密码,说明配置成功
常用命令
查看ip地址
ifconfig
# 或
ip addr
查看指定文件夹(path)目录
ls [-a -l -h] [path]
-a
查看隐藏目录
-l
将文件的内容竖向排列
-h
将文件的大小单位标出(配合-l使用)
切换工作目录
cd [path]
..
上一级文件夹
.
本级文件夹
~
home文件夹
不填
切换为home目录
输出当前所在的文件目录
pwd
要创建的目录的路径
mkdir [-p] [path(必填)]
-p
如果不存在父级路径,就会自动创建连续多层级的目录
在指定目录下创建文件
touch [path(必填)]
查看指定目录下的文件
cat [path(必填)]
查看指定目录下的文件,但是分页查询,可以使用q退出
more [path(必填)]
参数1(文件或文件夹)复制到参数2
cp [-r] 参数1 参数2
-r
复制文件夹使用,表示递归
参数1(文件或文件夹)移动到参数2,如果参数2不存在则改名
mv 参数1 参数2
删除参数1到参数n(文件或文件夹),参数支持*用以做模糊匹配
rm [-r -f] 参数1 . . .参数n
-r
文件夹的删除
-f
强制删除
查找某个命令
which 查找的命令
查找指定路径及其子文件夹
(不填默认所在文件夹)中(有该名字的文件)/(大小大于(+)| 小于(-)一定数量的文件)
find [path] -name "被查找的文件名"/-size +|-[KMG]
在命令行输入指定内容
内容可以被" "包裹
echo 输出的内容
反引号符
被``包围的内容会被视作命令执行,而非普通字符
`(反引号符)`
重定向输入输出
>将左侧命令的结果覆盖写入右侧指定文件中
>>将左侧命令的结果追加写入右侧指定文件中
< 将右侧文件的内容作为左侧命令的输入
commond < 重定向输入文件 > 重定向输出文件
查看指定文件中的尾部多少行
tail [-f -num] [path]
-f
持续追踪
-num
查看指定行数,不写默认为10行
从指定路径中过滤包含关键字的内容
grep [-n] 关键字 [path(可作为管道符输入)]
-n
表示在结果中显示匹配的行号
统计指定路径中的某些值
wc [-c -m -l -w] [path(可作为管道符输入)]
-c
字节数
-m
字符数
-l
行数
-w
单词数
管道
将左边命令的结果作为右边命令的输入
command1 | command2
使用vi/vim编辑文件
vim完全包含vi,一般使用vim就可以
vi/vim [path]
命令模式
: 默认模式,可以通过快捷键控制文件内容输入模式
: 在命令模式下按i
进入,可以输入内容进行编辑,按esc退回命令模式底线命令模式
: 在命令模式下按:
进入,可以对文件进行保存、关闭等操作(w保存,q退出,wq保存并退出,!强制执行,q!强制退出)
切换用户
如果省略不写,默认切换为root用户
su [-] [用户名]
-
加载环境变量
以root用户执行命令
使普通用户临时拥有root用户的执行权限(需要配置)
sudo 其他命令
配置流程:
- vim打开
/etc/sudoers
- 在文件最后添加 用户名
ALL=(ALL) NOPASSWD:ALL
- wq保存
用户、用户组命令
# 添加组
groupadd
# 删除组
groupdel
# 添加用户
useradd
# 删除用户
userdel
# 修改用户组
usermod
# 查看用户信息
id [-u] [-a] [-g] [-G] [-n] username
-u 仅显示用户ID
-a 查看用户和组的详细信息
-g 仅显示组ID
-G 显示所有组ID
-n 选项可以以名称形式显示用户名和组名
# 查看系统全部用户的信息
getent passwd
# 查看系统全部组的信息
getent group
修改权限
chmod [-R] 权限 文件或文件夹
-R
对文件夹内的内容使用同样的规则(r代表4,w代表2,x代表1)
ls -l 权限解读
r
查看文件或文件夹的内容
w
修改文件或文件夹
x
表示该文件可以作为程序执行,文件夹表示可以进入
修改文件或文件夹所属用户、组
chown [-R] [用户][:][用户组] 文件或文件夹
-R
对文件夹内的内容使用同样的规则
快捷键
ctrl+c # 强制停止
ctrl+d # 退出登出
ctrl+r # 搜索历史命令
ctrl+a|e # 光标移动到命令开始或结束
ctrl+<-|-> # 左右跳单词
ctrl+l或clear # 清屏
查看历史命令
history 历史命令
自动匹配上一个命令
!命令前缀
对该服务执行指定操作
systemctl [start|stop|status|enbale|disable|restart] 服务名
软连接
向参数2中创建参数1的软连接
ln -s 参数1 参数2
软连接: 可以将文件或文件夹链接到其他位置,只是一个指向,类似Windows中的快捷方式
测试到某服务器是否联通
ping [-c num] ip或主机名
-c
测试的次数
查看指定ip的对外暴露端口
nmap ip
查看本机端口号的占有情况
netstat -anp
查看进程信息
ps -ef
关闭指定进程号的进程
kill [-9] 进程号
可选: -9 强制关闭
显示CPU、内存等的使用情况
top [-p] [-d] [-c] [-n] [-b] [-i] [-u]
-p只显示某个进程信息
-d设置刷新时间,默认5s -c显示产生进程的完整命令
-n指定刷新次数
-b以非交互非全屏模式运行
-i不显示任何闲置或无用进程 -u查找指定用户启动的进程
查看磁盘使用率
df [-h] [-H]
-h
表示使用“human-readable”格式,
-H
表示以1000为进制单位而不是1024。
查看磁盘速率等信息
iostat
查看网络情况
sar -n DEV
处理tar文件
tar [-z] [-x] [-v] [-f] [-C] -文件名
-c
创建压缩文件
-v
查看压缩/解压过程
-x
解压模式
-f
创建指定的文件,必须放在尾部
-z
gzip模式
-C
指定解压路径
-z
建议在开头
-C
单独使用
常见组合:
-xvf
文件名-C
指定目录(解压到指定目录)
-zxvf
文件名-C
指定目录(以Gzip模式解压到指定目录)x换c后为压缩文件
压缩/解压缩命令
把所有参数压缩为zip包到指定目录的zip文件中
zip [-r] [path/文件名.zip] 参数1. . .参数n
-r
包含文件夹时必须写入
unzip [-d] [zip压缩包文件]
参数: 解压参数(zip压缩包文件) 可选: -d 解压到指定路径(-d 和路径都放在最后面)
软件管理
CentOS中的安装、卸载、搜索软件
yum [-y] [install | remove | search] 软件名称
-y
自动确认
Ubuntu、Debian中的安装、卸载、搜索软件
apt-get [-y] [install | remove | search] 软件名称
查看日期及日期计算
date [-d] [+格式化字符串(可不填)]
格式化字符串: %Y 年、 %y 年后两位、 %m 月等
-d
日期计算 后跟+ | - num 单位(year,month,day,hour,minute,second)
常用格式符
格式符 | 说明 | 示例 |
---|---|---|
%Y | 四位年份 | 2023 |
%y | 两位年份 | 23 |
%m | 两位月份(补零) | 01(1月) |
%d | 两位日期(补零) | 05 |
%H | 24小时制小时(00-23) | 15 |
%I | 12小时制小时(01-12) | 03 |
%M | 分钟(00-59) | 30 |
%S | 秒(00-60,含闰秒) | 45 |
%p | 上午/下午(大写) | AM 或 PM |
%a | 缩写的星期几 | Mon |
%A | 完整的星期几 | Monday |
%b | 缩写的月份名 | Jan |
%B | 完整的月份名 | January |
%F | ISO 8601日期格式(等同%Y-%m-%d ) | 2023-01-05 |
%T | 时间格式(等同%H:%M:%S ) | 15:30:45 |
%s | 自纪元(1970-01-01 UTC)的秒数 | 1672939845 |
%Z | 时区名称 | CST, UTC |
%z | 时区偏移(+0800) | +0800 |
%:z | 带冒号的时区偏移(GNU扩展) | +08:00 |
%j | 一年中的第几天(001-366) | 005 |
下载文件
wget [-b] url
-b
后台下载
发起网络请求
curl [-0] url
-0
用于下载使用
文件上传
rz
文件下载
sz
密码破解
hashcat -m 值 hash值 字典