Skip to content

Linux指南

命令格式

shell
command [-options] [parameter]

command 命令本身

-options 命令的一些选项,可以通过选项控制命令的行为细节

parameter 命令的参数,多数用于命令的指向目标等

ssh连接服务器

密码登录
sh
ssh [username]@[host]
# 输入密码

出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 字样 通常是服务器公钥已更改,可能是重新安装了服务器或手动更改,也可能是遭受了中间人攻击 解决方案: 使用以下命令删除指定ip的旧密钥条目

shell
ssh-keygen -R [ip]
配置免密登录(密钥对)
  1. 在.ssh文件夹(Windows在C:\Users\用户名\下, linux在home目录下),打开终端(powershell、cmd、bash等)
  2. 输入 ssh-keygen -t rsa 生成一个公私钥对

    回车后输入文件名,接下来输入密码(可以为空) 成功后会得到两个文件:

    • id_rsa - 私钥文件
    • id_rsa.pub - 公钥文件
  3. 将生成的公钥文件上传到服务器的 用户home目录/.ssh/ 目录下,为便于区分,可以修改一下文件名
  4. 将公钥文件写入服务器 .ssh 目录下的 authorized_keys 文件
    shell
    cat 公钥文件名 >> authorized_keys
  5. 从本机使用ssh登录服务器,若不需要再输入密码,说明配置成功

常用命令

查看ip地址
shell
ifconfig

# 或
ip addr
查看指定文件夹(path)目录
shell
ls [-a -l -h] [path]

-a 查看隐藏目录

-l 将文件的内容竖向排列

-h 将文件的大小单位标出(配合-l使用)

切换工作目录
shell
cd [path]

.. 上一级文件夹

. 本级文件夹

~ home文件夹

不填 切换为home目录

输出当前所在的文件目录
shell
pwd
要创建的目录的路径
shell
mkdir [-p] [path(必填)]

-p如果不存在父级路径,就会自动创建连续多层级的目录

在指定目录下创建文件
shell
touch [path(必填)]
查看指定目录下的文件
shell
cat [path(必填)]
查看指定目录下的文件,但是分页查询,可以使用q退出
shell
more [path(必填)]
参数1(文件或文件夹)复制到参数2
shell
cp [-r] 参数1 参数2

-r 复制文件夹使用,表示递归

参数1(文件或文件夹)移动到参数2,如果参数2不存在则改名
shell
mv 参数1 参数2
删除参数1到参数n(文件或文件夹),参数支持*用以做模糊匹配
shell
rm [-r -f] 参数1 . . .参数n

-r 文件夹的删除

-f 强制删除

查找某个命令
shell
which 查找的命令
查找指定路径及其子文件夹

(不填默认所在文件夹)中(有该名字的文件)/(大小大于(+)| 小于(-)一定数量的文件)

shell
find [path] -name "被查找的文件名"/-size +|-[KMG]
在命令行输入指定内容

内容可以被" "包裹

shell
echo 输出的内容
反引号符

被``包围的内容会被视作命令执行,而非普通字符

shell
`(反引号符)`
重定向输入输出

>将左侧命令的结果覆盖写入右侧指定文件中

>>将左侧命令的结果追加写入右侧指定文件中

< 将右侧文件的内容作为左侧命令的输入

shell
commond < 重定向输入文件 > 重定向输出文件
查看指定文件中的尾部多少行
shell
tail [-f -num] [path]

-f 持续追踪

-num 查看指定行数,不写默认为10行

从指定路径中过滤包含关键字的内容
shell
grep [-n] 关键字 [path(可作为管道符输入)]

-n 表示在结果中显示匹配的行号

统计指定路径中的某些值
shell
wc [-c -m -l -w] [path(可作为管道符输入)]

-c 字节数

-m 字符数

-l 行数

-w 单词数

管道

将左边命令的结果作为右边命令的输入

shell
command1 | command2
使用vi/vim编辑文件

vim完全包含vi,一般使用vim就可以

shell
vi/vim [path]

命令模式: 默认模式,可以通过快捷键控制文件内容 输入模式: 在命令模式下按i进入,可以输入内容进行编辑,按esc退回命令模式 底线命令模式: 在命令模式下按:进入,可以对文件进行保存、关闭等操作(w保存,q退出,wq保存并退出,!强制执行,q!强制退出)

切换用户

如果省略不写,默认切换为root用户

shell
su [-] [用户名]

- 加载环境变量

以root用户执行命令

使普通用户临时拥有root用户的执行权限(需要配置)

shell
sudo 其他命令

配置流程:

  1. vim打开 /etc/sudoers
  2. 在文件最后添加 用户名 ALL=(ALL) NOPASSWD:ALL
  3. wq保存
用户、用户组命令
shell
# 添加组
groupadd

# 删除组  
groupdel 

# 添加用户
useradd

# 删除用户
userdel 

# 修改用户组
usermod

# 查看用户信息
id [-u] [-a] [-g] [-G] [-n] username

	-u 仅显示用户ID
	-a 查看用户和组的详细信息
	-g 仅显示组ID
	-G 显示所有组ID
	-n 选项可以以名称形式显示用户名和组名

# 查看系统全部用户的信息
getent passwd

# 查看系统全部组的信息
getent group
修改权限
shell
chmod [-R] 权限 文件或文件夹

-R 对文件夹内的内容使用同样的规则(r代表4,w代表2,x代表1)

ls -l 权限解读

r 查看文件或文件夹的内容

w 修改文件或文件夹

x 表示该文件可以作为程序执行,文件夹表示可以进入

修改文件或文件夹所属用户、组
shell
chown [-R] [用户][:][用户组] 文件或文件夹

-R 对文件夹内的内容使用同样的规则

快捷键
shell
ctrl+c # 强制停止   

ctrl+d # 退出登出 
  
ctrl+r # 搜索历史命令   

ctrl+a|e # 光标移动到命令开始或结束 

ctrl+<-|-> # 左右跳单词    

ctrl+l或clear # 清屏
查看历史命令
shell
history 历史命令
自动匹配上一个命令
shell
!命令前缀
对该服务执行指定操作
shell
systemctl [start|stop|status|enbale|disable|restart] 服务名
软连接

向参数2中创建参数1的软连接

shell
ln -s 参数1 参数2

软连接: 可以将文件或文件夹链接到其他位置,只是一个指向,类似Windows中的快捷方式

测试到某服务器是否联通
shell
ping [-c num] ip或主机名

-c 测试的次数

查看指定ip的对外暴露端口
shell
nmap ip
查看本机端口号的占有情况
shell
netstat -anp
查看进程信息
shell
ps -ef
关闭指定进程号的进程
shell
kill [-9] 进程号

可选: -9 强制关闭

显示CPU、内存等的使用情况
shell
top [-p] [-d] [-c] [-n] [-b] [-i] [-u]

​ -p只显示某个进程信息

​ -d设置刷新时间,默认5s -c显示产生进程的完整命令

​ -n指定刷新次数

​ -b以非交互非全屏模式运行

​ -i不显示任何闲置或无用进程 -u查找指定用户启动的进程

查看磁盘使用率
shell
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文件中

shell
zip [-r] [path/文件名.zip] 参数1. . .参数n

-r 包含文件夹时必须写入

shell
unzip [-d] [zip压缩包文件]

参数: 解压参数(zip压缩包文件) 可选: -d 解压到指定路径(-d 和路径都放在最后面)

软件管理

CentOS中的安装、卸载、搜索软件

shell
yum [-y] [install | remove | search] 软件名称

-y 自动确认

Ubuntu、Debian中的安装、卸载、搜索软件

shell
apt-get [-y] [install | remove | search] 软件名称
查看日期及日期计算
shell
date [-d] [+格式化字符串(可不填)]

格式化字符串: %Y 年、 %y 年后两位、 %m 月等

-d 日期计算 后跟+ | - num 单位(year,month,day,hour,minute,second)

常用格式符

格式符说明示例
%Y四位年份2023
%y两位年份23
%m两位月份(补零)01(1月)
%d两位日期(补零)05
%H24小时制小时(00-23)15
%I12小时制小时(01-12)03
%M分钟(00-59)30
%S秒(00-60,含闰秒)45
%p上午/下午(大写)AM 或 PM
%a缩写的星期几Mon
%A完整的星期几Monday
%b缩写的月份名Jan
%B完整的月份名January
%FISO 8601日期格式(等同%Y-%m-%d2023-01-05
%T时间格式(等同%H:%M:%S15:30:45
%s自纪元(1970-01-01 UTC)的秒数1672939845
%Z时区名称CST, UTC
%z时区偏移(+0800)+0800
%:z带冒号的时区偏移(GNU扩展)+08:00
%j一年中的第几天(001-366)005
下载文件
shell
wget [-b] url

-b 后台下载

发起网络请求
shell
curl [-0] url

-0 用于下载使用

文件上传
shell
rz
文件下载
shell
sz
密码破解
shell
hashcat -m hash值 字典