| 命令 | 解释 | |
|---|---|---|
| cd - | 在最近的两次目录中切换 | |
| ls -lh | 以目录形式展示所有文件 | |
| touch | 创建一个空白文件 或 可以修改文件的末次修改日期 | |
| mkdir -p | 递归创建目录 | |
| rm -r | 递归删除目录下的目录以及文件 | |
| tree -d | 只显示目录 | |
| tree -L n | 显示n层目录 | |
| cp 源文件 目标文件 | copy | 复制/覆盖文件 |
| cp -i | 覆盖文件前提示 | |
| cp -r | 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 | |
| mv 源文件 目标文件 | move | 移动文件或者目录 文件或者目录重命名 |
| mv -i | 覆盖文件前提示 | |
| cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
| cat -b | 对非空输出行编号 | |
| cat -n | 对输出的所有行编号 | |
| more | 分屏显示文件内容(空格键:显示下一屏;Enter:一次滚动一行;b:回滚一屏;f:前滚一屏;q:退出;/word:搜索字符串) | |
| grep 搜索文本 文件名 | -n 显示行号 -v 对搜索结果取反 -i 忽略大小写 | |
| grep ^a | 行首,搜索以a开头的行 | |
| grep ke$ | 行尾,搜索以ke结束的行 | |
| hostnamectl status | 显示当前主机名设置 | |
| hostnamectl set-hostname | 设置系统主机名 | |
| 重定向,表示输出,会覆盖文件原有的内容 | ||
| >> | 重定向,表示追加,会将内容追加到已有文件的末尾 | |
| 管道 | | more、grep | Linux 允许将 一个命令的输出 可以 通过管道 做为 另一个命令的输入 |
| shutdown 选项 时间 | 不指定选项和参数,默认表示1分钟后关机 | |
| shutdown -r now | 现在重新启动 | |
| shutdown -c | 取消关机/重启操作 | |
| shutdown 20:25 | 20:25 会关机 | |
| shutdown +10 | 10分钟后关机 | |
| ssh [-p port] user@ip | ||
| scp -P port 本地文件地址 user@ip:文件地址 | secure copy | 将本地计算机文件copy到远程服务器 |
| scp -P port user@ip:文件地址 本地文件地址 | ||
| -r | 可以复制文件夹 | |
SSH远程登录
1、SSH 免密码登录
有关SSH配置信息都保存在在用户家目录下的 .ssh 目录下
-
使用
ssh-keygen在 .ssh 目录下生成id_rsa和id_rsa.pub -
执行
ssh-copy-id -p port user@remote可以让远程服务器记住我们的公钥
2、SSH 设置登录别名
-
在
~/.ssh目录下(如果没有,则)创建config文件:~/.ssh/config -
在
~/.ssh/config追加以下内容:Host redhat8 HostName 104.168.204.234 User root Port 22
用户权限相关命令
| 权限 | 英文 | 缩写 | 数字代号 |
|---|---|---|---|
| 读 | read | r | 4 |
| 写 | write | w | 2 |
| 执行 | excute | x | 1 |
ls -l 可以查看文件夹下文件的详细信息,从左到右依次是:
- 权限,第1个字符如果是
d表示目录 - 硬链接数,通俗地讲,就是有多少种方式,可以访问到当前目录/文件
- 拥有者,家目录下 文件/目录 的拥有者通常都是当前用户
- 组,在 Linux 中,很多时候,会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
| 目录 | 拥有者权限 | 组权限 | 其他用户权限 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 文件权限示例: | - | r | w | - | r | w | - | r | - | - |
| 目录权限示例: | d | r | w | x | r | w | x | r | - | x |
chmod 简单使用(重要)
-
chmod可以修改 用户/组 对 文件/目录 的权限 -
命令格式如下:
chmod +/-rwx 文件名|目录名
组管理命令
创建组/删除组 的终端命令都需要通过
sudo执行
| 命令 | 作用 |
|---|---|
| sudo groupadd 组名 | 添加组 |
| sudo groupdel 组名 | 删除组 |
| cat /etc/group | 确认组信息 |
| chgrp -R 组名 文件/目录名 | 递归修改文件/目录的所属组 |
- 组信息保存在
/etc/group文件中/etc目录是专门用来保存 系统配置信息 的目录
给用户进行 sudo 提权
1、将用户添加到 sudo 用户组
usermod -aG sudo username
# 检查用户是否拥有 sudo 权限
sudo whoami
# 如果打印 root,则表示提权成功
2、将用户添加到 sudoers 文件
第一种方法,在 /etc/sudoers 文件下追加:
username ALL=(ALL) ALL
第二种方法,在 /etc/sudoers.d 目录下创建一个新文件,文件名随意,一般与用户名一致,添加如下内容:
username ALL=(ALL) ALL
用户管理
| 命令 | 作用 | 说明 |
|---|---|---|
| useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录 -g 指定用户所在的组,否则会建立一个同名的组 |
| passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用 passwd 可以修改自己的密码 |
| userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
| cat /etc/passwd | grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在 /etc/passwd 文件中 |
查看用户信息
| 命令 | 作用 |
|---|---|
| id [用户名] | 查看用户 UID 和 GID 信息 |
| who | 查看当前所有登录的用户列表 |
| whoami | 查看当前登录用户的账户名 |
passwd 文件
/etc/passwd 文件存放的是用户的信息,由6个分号组成的7个信息,分别是:
- 用户名(简称)
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号(如果没有则和 1 保持一致)
- 家目录
- 登录使用的 Shell,就是登录之后,使用的终端命令,
ubuntu默认是dash
usermod
-
usermod 可以用来设置用户的主组/附加组和登录Shell,命令格式如下:
-
主组:通常在新建用户时指定,在 /etc/passwd 的第4列GID对应的组
-
附加组:在 /etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组之后,需要重新登录才能生效!
# 修改用户的主组(passwd 中的 GID) usermod -g 组 用户名 # 追加用户的附加组 usermod -aG 组 用户名 # 修改用户登录 Shell usermod -s /bin/bash
which
提示
/etc/passwd是用于保存用户信息的文件/usr/bin/passwd是用于修改用户密码的程序
-
which命令可以查看执行命令所在位置,例如:which ls # 输出 # /bin/ls which useradd # 输出 # /usr/sbin/useradd
bin 和 sbin
- 在
Linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin /bin(binary)是二进制执行文件目录,主要用于具体应用/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理/usr/bin/(usr commands for applications)后期安装的一些软件/usr/sbin(super user commands for applications)超级用户的一些管理程序
切换用户
| 命令 | 作用 | 说明 |
|---|---|---|
| su - 用户名 | 切换用户,并且切换到用户家目录 | - 可以切换到用户家目录,否则保持位置不变 |
| su - | 不接用户名,可以切换到 root | |
| exit | 退出当前登录用户,返回之前登录的用户 |
修改文件权限
| 命令 | 作用 |
|---|---|
| chown | 修改拥有者 |
| chgrp | 修改组 |
| chmod | 修改权限 |
-
命令格式如下:
# 修改文件|目录的拥有者 chown username 文件名|目录名 # 递归修改文件|目录的组 chgrp -R 组名 文件名|目录名 # 递归修改文件的 拥有者、组、其他 用户的权限 (r=4,w=2, x=1) chmod -R 755 文件名|目录名
系统信息相关命令
时间和日期
| date | 查看系统时间 |
|---|---|
| cal | calendar 查看日历,-y 选项可以查看一年的日历 |
磁盘信息
| df -h | disk free 显示磁盘剩余空间 |
| du -h [目录名] | disk usage 显示目录下的文件大小 |
进程信息
| 命令 | 作用 |
|---|---|
| ps aux | process status 查看进程的详细状况 a:显示终端上包括其他用户的所有的进程 u:显示进程的详细状态 x:显示没有控制终端的进程 |
| top | 动态显示运行中的进程并且排序 |
| kill [-9] 进程代号 | 终止指定代号的进程,-9 表示强行终止 |
ps默认只会显示当前用户通过终端启动的应用程序
其他命令
查找文件
# 查找指定路径(如果省略表示当前目录)下扩展名是 .py 的文件,包括子目录
find [路径] -name "*.py"
软链接(相当于windows下的快捷方式)
ln -s 被链接的源文件 链接文件
- 没有
-s选项建立的是一个 硬链接文件
- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
打包压缩
打包 / 解包 tar
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
| 选项 | 作用 |
|---|---|
| -c | 生成档案文件,创建打包文件 |
| -x | 解开档案文件 |
| -v | 列出归档解档的详细过程,显示进度 |
| -f | 指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后 |
压缩/解压缩
gzip
-
tar与gzip命令结合使用可以时间文件打包和压缩tar只负责打包文件,但不压缩- 用
gzip压缩tar打包后的文件,其扩展名一般用xxx.tar.gz,这是linux中最常见的压缩文件格式
-
在
tar命令中有一个选项-z可以调用gzip,来实现打包、压缩和解包、解压缩 -
命令格式如下:
# 压缩文件 tar -zcvf 打包文件.tar.gz 被压缩的文件/路径... # 解压缩文件 tar -zxvf 打包文件.tar.gz # 解压缩到指定路径 # -C 解压缩到指定目录,注意:要解压缩的目录必须存在 tar -zxvf 打包文件.tar.gz -C 目标路径
bzip2
与 gzip使用方法一致,有两点不同:
gzip在tar里使用的是-z,bzip2使用的是-jgzip后缀为*.gz,bzip2后缀为*.bz2
tar -jcvf 打包文件.tar.bz2 被压缩文件/路径...
tar -jxvf 打包文件.tar.bz2
CURL 命令
发送 POST 请求数据体 -d
curl -d 'login=emma&password=123'-X POST https://google.com/login
或者
curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login
将 POST 请求发送的数据进行 URL 编码 --data-urlencode
curl --data-urlencode 'comment=hello world' https://google.com/login
GET 请求构造 URL 的查询字符串 -G
curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
添加 HTTP 请求的标头 -H
curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
打印出服务器响应的 HTTP 标头,空一行,再输出网页的源码 -I
curl -i https://www.example.com
只打印服务器HTTP响应标头 -I
curl -I https://www.example.com
限制 HTTP 请求和回应的带宽,模拟慢网速的环境 --limit-rate
curl --limit-rate 200k https://google.com
指定 HTTP 请求的方法 -X
curl -X POST https://www.example.com
输出通信的整个过程,用于调试 -v
curl -v https://www.example.com
--trace参数也可以用于调试,还会输出原始的二进制数据
curl --trace - https://www.example.com
Redhat8—配置yum源
在Linux命令行中进行计算的6种方法
Linux查看系统基本信息,版本信息(最全版)
Ubuntu Server 20.04 配置Netplan连接没有密码的Wifi
Linux 目录结构
/
├── bin -> usr/bin /bin 所有二进制命令所在的目录(用户),/usr/bin 用户可执行文件目录(应用程序)
├── boot Linux内核及引导系统程序所需的目录
├── dev 所有设备文件的目录(如声卡、磁盘、光驱)
├── etc 二进制安装包(yum,rpm)配置文件默认路径,服务启动命令存放目录
├── home 普通用户的家目录默认数据存放目录
├ /lib 库文件存放目录
├── lib -> usr/lib
├── lib32 -> usr/lib32
├── lib64 -> usr/lib64
├── libx32 -> usr/libx32
├── lost+found 在EXT3系统中,当系统意外崩溃或意外关机时,会产生一些碎片文件在这个目录下面,系统启动时fcsk工具会检查这个目录,并修复已损坏的文件系统
├── media
├── mnt 用于临时挂载存储设备,通常情况下可以挂载LINUX ISO光盘进行无网条件下安装其它软件包
├── opt 自定义软件安装存放目录,用户自行安装的软件包存放目录
├── proc 进程及内核信息存放目录
├── root root 用户的家目录
├── run
├── sbin -> usr/sbin /sbin 系统管理命令存放目录(超级管理员使用的命令),/usr/sbin存放一些网络管理工具的软件目录
├── snap
├── srv
├── swap.img
├── sys
├── tmp 临时文件目录,程序运行时产生的临时文件存放目录
├── usr 系统存放程序的目录(命令和帮助文件)
└── var 存放内容常变动的文件目录,/var/log/meseage 系统日志文件,/var/spool/cron 系统定时任务配置文件