Linux基础命令总结
ls [-a -l -h] [文件路径] -- 显示[目录]结构
cd [文件路径] -- 切换[目录](./../~)
pwd -- 当前工作目录(绝对路径)
mkdir [-p] 文件路径 -- 创建[多层级-p]目录(文件夹)
touch 文件路径 -- 创建文件
cat 文件路径 -- 查看文件全部内容(适用于内容较少的文件,内容较多使用 more)
more 文件路径 -- 翻页查看文件内容(按空格翻页,输入q退出翻页)
cp [-r] test1 test2 -- 复制[文件夹-r] test1(被复制) 到 test2(复制到)
mv test1 test2 -- 移动 test1(被移动) 到 test2(移动到)
rm [-r -f] test1 test... testN -- [强制-f]删除[文件夹-r]test1、test...、testN
which 要查找的命令 -- 查找命令的程序文件
find 起始路径 -name "被查找文件名" -- 按文件名搜索指定文件(*/test*/*test/*test*)
find 起始路径 -size + | -n[kMG] -- 按文件大小搜索(大于 | 小于 n[kb/MB/GB])指定文件
grep [-n] 关键字 文件路径 -- 通过关键字过滤文件行并[显示行号-n]
wc [-l -w -c -m] 文件路径 -- 统计文件的[行数-l/单词数-w/字节(bytes)数-c/字符数-m]、文件名等
tail [-f -num] 文件路径 -- 查看[查看尾部多少行-num]内容(默认 [10] 行)并[持续跟踪-f]
| -- 管道符(将管道符左边命令的结果,作为右边的输入)
eg:
cat 文件路径 | grep 关键字 -- 通过关键字过滤要查看文件内容的文件行
cat 文件路径 | wc -l -- 统计要查看文件内容的行数
ls -lh [文件路径] | grep 关键字 -- 通过关键字过滤要查看的目录并以树列表展示(文件大小带单位)
ls -l [文件路径] | wc -l -- 统计目录(文件)的个数
echo "输出的内容"/`输出内容结果` -- 在终端显示输出的内容(结果)
>/>> -- 重定向符(将左侧命令的结果 覆盖写入/追加写入 到重定向符右侧)
eg:
echo "输出的内容" > 文件路径 -- 将输出的内容覆盖写入到文件
echo "输出的内容" >> 文件路径 -- 将输出的内容追加写入到文件
ls [文件路径] >/>> 文件路径 -- 将目录内容覆盖/追加写入到文件
vi/vim 文件路径 -- 进入命令模式(用于编辑文件,vim兼容全部vi功能)
/关键字 -- 搜索关键字(命令模式快捷键)
n -- 向下搜索
N -- 向上搜索
[n]dd -- 删除[n]行(命令模式快捷键)
[n]yy -> p -- 复制[n]行并粘贴(命令模式快捷键)
u -- 撤销(命令模式快捷键)
ctrl+r -- 反向撤销(命令模式快捷键)
0 -- 跳到当前行开头(命令模式快捷键)
$ --跳到当前行结尾(命令模式快捷键)
gg -- 跳到文件内容首行(命令模式快捷键)
G -- 跳到文件内容行尾(命令模式快捷键)
d[0/$/gg/G] -- 删除到[当前行开头/当前行结尾/文件内容首行/文件内容行尾](命令模式快捷键)
i -- 从命令模式进入到输入模式(当前光标)
a -- 从命令模式进入到输入模式(当前光标之后)
I -- 从命令模式进入到输入模式(当前行的开头)
A -- 从命令模式进入到输入模式(当前行的结尾)
o -- 从命令模式进入到输入模式(当前光标下一行)
O -- 从命令模式进入到输入模式(当前光标上一行)
esc -- 从输入模式返回命令模式
: -- 从输入模式进入底线命令模式
:wq -- 保存(w)并退出(q)
:q! -- 强制退出(更改不会保存)
:set nu -- 显示行号
:set paste -- 设置粘贴模式
Linux快捷键总结
ctrl+c -- 强制停止
ctrl+d -- 退出或登出(不能用于 vi/vim)
history [| grep 关键字] -- [根据关键字过滤]并查看历史命令
!历史记录关键字 -- 历史命令从下往上查找并执行匹配到的命令(查找最近的历史命令)
ctrl+r -- 输入关键字查找比较久远的历史命令(按回车键执行命令,按左/右键可修改命令)
ctrl+a -- 跳到命令开头
ctrl+e -- 跳到命令结尾
ctrl+左 -- 向左跳一个单词
ctrl+右 -- 向右跳一个单词
ctrl+l -- 清空终端内容(或执行 clear 命令)
用户、用户组、权限总结
// root 用户为普通用户授予sudo命令权限
su - root 并输入密码 -- 切换root用户(输入exit或ctrl+d退回普通用户)
1、切换到root用户,执行 visudo 命令(相当于 vi /etc/sudoers)
2、在文件最后添加 USERNAME ALL=(ALL) NOPASSWD: ALL
3、:wq 保存并退出,返回普通用户即可使用 sudo 命令
// 用户和用户组
groupadd 用户组名 -- 创建用户组
groupdel 用户组名 -- 删除用户组
useradd 用户名 [-g 用户组名] [-d 文件路径] -- 创建用户到[指定组-g],[指定HOME目录-d](默认在/home/用户名)
userdel [-r] 用户名 -- 删除用户并删除[用户的HOME目录]
id [用户名] -- 查看[用户]信息(默认查询当前用户)
usermod -aG 用户组 用户名 -- 将指定用户加入到指定用户组
getent passwd -- 查看系统中所有用户(用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash))
getent group -- 查看系统中所有组(组名称: 组认证(x):组ID)
// 查看目录权限信息
1、输入 ls -l 查看目录信息
2、查看目录前十位字符的含义:([-/d/l][r/-][w/-][x/-][r/-][w/-][x/-][r/-][w/-][x/-])
[-/d/l] -- [文件/文件夹/软链接](第一位:目录类型)
[r/-] -- [读权限/无权限](2-4位:所属用户权限)
[w/-] -- [写权限/无权限](5-7位:所属用户组权限)
[x/-] -- [执行权限/无权限](8-10位:其他用户权限)
// 修改权限信息
chmod [-r] 权限值 文件/文件夹 -- 对[文件夹内的全部-r]文件赋予该权限
字母表示权限值:u=r/w/x,g=r/w/x,o=r/w/x
数字表示权限值(r:4,w:2,x:1)
0:无权限,即---
1:x权限,即--x
2:w权限,即-w-
3:wx权限,即-wx
4:r权限,即r--
5:rx权限,即r-x
6:rw权限,即rw-
7:rwx权限,即rwx
eg:751表示 rwx(7) r-x(5) --x(1)
// 修改用户、用户组信息(只适用于root用户)
chown [-r] [用户][:用户组] 文件/文件夹 -- 将[文件夹内的全部-r]文件的所属用户修改为[用户],所属用户组修改为[:用户组]
安装配置软件(服务)
// yum命令(Ubuntu使用的是 apt 命令)
yum [-y] [install/remove/search] 软件名称 -- 是否[自动确认-y][安装/卸载/搜索]软件(需要root权限)
// systemctl 命令
systemctl start/stop/status/enable/disable 服务名 -- 启动/关闭/查看状态/开启开机自启/关闭开机自启 软件服务
系统内置服务有:NetworkManager(主网络服务)、network(副网络服务)、firewalld(防火墙服务)、sshd,ssh服务等
Linux高阶技巧总结
// 软链接(类似于快捷方式)
ln -s 被链接的文件/文件夹 链接去往目的地
// 获取日期
date [-d] [+格式化字符串] -- 按格式化字符串["+%Y-%m-%d %H:%M:%S"]显示[计算-d]时间
支持计算的时间: year/month/day/hour/minute/second(eg:date -d "+3 month")
// 修改时区
1、使用root权限执行:rm -f /etc/localtime
2、执行 sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
// 自动校准
1、yum -y install ntp -- 安装ntp程序
2、systemctl start ntpd -- 启动
3、systemctl enable ntpd -- 设置开机自启
// 手动校准
使用root权限输入:ntpdate -u ntp.aliyun.com
// 查看IP地址(主要查看ens33网卡)
ip addr / ifconfig(该命令需要安装:yum -y install net-tools)
// 查看主机名
hostname
// 修改主机名
hostnamectl set-hostname 新主机名称
// 配置主机名映射(也叫域名解析)(作用:无需记IP地址,可直接通过主机名找到IP地址)
1、编辑对应的hosts文件(需要以管理员身份运行)
Windows看:C:\Windows\System32\drivers\etc\hosts
Linux看:/etc/hosts
2、在文件最后一行添加:IP地址 主机名称
3、保存并退出
// 在VMware Workstation中配置固定IP
1、打开VMware -> 编辑 -> 虚拟网络编辑器(进行需要的配置)
(1)名称选择VMnet8;
(2)确定子网IP为 192.168.*.0、子网掩码:255.255.255.0;(*表示不固定)
(3)选择NAT模式,点击后方NAT设置;
(4)网关IP设置为:192.168.*.2,点击确定。(*表示不固定)
2、开启虚拟机进入终端->切换root用户运行 vim /etc/sysconfig/network-scripts/ifcfg-ens33 进行编辑
3、文件修改行 :BOOTPROTO="static"
4、文件最后添加4行:
IPADDR="192.168.*.*" -- 子网IP,最后的*可以随意设置(0~254)值
NETMASK="255.255.255.0" -- 子网掩码
GATEWAY="192.168.*.2" -- 网关IP
DNS1="192.168.*.2" -- DNS1的值和网关相同
5、:wq保存并退出
6、重启网卡:systemctl stop network、systemctl start network(或 systemctl restart network)
// 网络传输
ping [-c num] ip/主机名 -- 检查[num次]指定的网络服务器是否是可联通状态
wget [-b] url -- 在[后台-b]下载链接(下载记录在wget.log文件)
tail [-f] wget.log -- 查看并[持续跟踪-f]下载进度
curl [-O] url -- 向链接发送网络请求或[下载-O]链接
// 端口(作用:通过IP只能锁定计算机,通过端口可以锁定计算机上具体的程序)
nmap IP地址 --查看指定IP的端口占用情况(该命令需要安装:yum -y install nmap)
netstat -anp | grep 端口号 -- 查看指定端口占用情况(该命令需要安装:yum -y install net-tools)
// 进程管理
ps [-e -f] [| grep 关键字] -- 查看[全部-e]进程信息并[格式化-f]并[过滤所需要的进程]
kill [-9] 进程ID -- [强制-9]关闭进程
// 主机状态/磁盘信息监控
top [-p/-d/-c/-n/-b/-i/-u] -- 查看系统资源占用情况
-p:只显示某个进程信息
-d:设置刷新时间(默认5s)
-c:显示产生进程的完整命令(默认是进程名)
-n:指定刷新次数
-b:以非交互非全屏模式运行,分批次的方式执行top
-i:不显示任何闲置(idle)或无用(zombie)的进程
-u:查找特定用户启动的进程
df [-h] -- 查看[带单位-h]硬盘空间使用情况
iostat [-x][num1][num2] -- 通过[刷新间隔num1][刷新次数num2]查看[更多-x]CPU、磁盘相关信息
sar -n DEV num1 num2 -- 通过刷新间隔num1和刷新次数num2查看网络-n和网络接口DEV监控情况
// 查看环境变量
evn [| grep PATH] -- 查看环境变量[PATH 内容(值)]
echo $PATH / echo ${PATH}HJBL -- 输出[获取变量$]PATH的值 / 输出PATH的值并拼接HJBL
// 设置临时环境变量
export key=value -- 设置临时环境变量 变量名=变量值(通过echo $key查看value)
// 设置永久环境变量
1、输入命令:vim 环境变量配置文件
配置 ~/bashrc 文件 -- 针对当前用户设置永久生效的环境变量
配置 /etc/profile 文件 -- 针对所有用户设置永久生效的环境变量
2、在文件最后一行添加:export key=value
3、:wq保存并退出(通过echo $key查看value)
4、输入命令:source 环境变量配置文件 -- 生效环境变量配置文件
// 设置自定义环境变量
1、创建自定义文件:mkdir 自定义文件夹,cd 自定义文件夹,vim 自定义文件,:wq保存并退出
2、给自定义文件设置权限:chmod 755 自定义文件(运行自定义文件:./自定义文件)
3、输入命令:vim 环境变量配置文件
4、在文件最后一行添加:export PATH=$PATH:自定义文件夹路径($PATH不可省略,否则会覆盖)
5、:wq保存并退出(通过echo $PATH查看PATH值)
6、输入命令:source 环境变量配置文件 -- 生效环境变量配置文件
*** 自定义变量设置完成后输入命令:自定义文件(的名称),即可运行自定义环境变量***
// 命令方式上传、下载文件
yum -y install lrzsz -- 安装上传、下载命令
sz 文件名 -- 下载文件
rz -- 显示弹窗,选择需要上传的文件点击确定即可上传
***通过命令方式上传的速度非常慢,大文件建议图形化操作(拖拽)上传***
// tar命令压缩、解压文件
tar [-c -v -x -z -f] 压缩包.tar/压缩包.tar.gz 压缩文件1 ... 压缩文件N [-C 解压路径]
-c:创建压缩文件,用于压缩模式
-v:显示压缩、解压过程,用于查看进度
-x:解压模式
-z:gzip模式(默认是普通的 tarball 格式,如果要使用-z 一般处于选项中第一位)
-f:要创建或要解压的文件(-f 必须在所有选项中的最后一个位置)
-C:选择解压的目的地,用于解压模式
// tar命令常用压缩组合
tar -cvf 压缩包.tar 压缩文件1 ... 压缩文件N -- 将 [压缩文件1、...、N] 压缩到 [压缩包.tar] 中
tar -zcvf 压缩包.tar.gz 压缩文件1 ... 压缩文件N -- 以gzip模式进行压缩(压缩后的体积更小)
// tar命令常用解压组合
tar -xvf 压缩包.tar [-C 解压路径] -- 将 [解压包.tar] 解压到 [解压路径](默认解压到当前目录)
tar -zxvf 压缩包.tar.gz [-C 解压路径] -- 解压 [解压包.tar.gz] 文件
// zip命令压缩文件
zip [-r] 压缩包.zip 压缩文件[夹]1 ... 压缩文件[夹]N -- 压缩[带文件夹-r]的文件
// unzip命令解压文件
unzip 压缩包.zip [-d 解压路径] -- 将文件解压到[解压路径-d](若有同名文件会被替换)