Linux核心命令与符号
2024-10-15 10:16:12 0 举报
AI智能生成
Linux核心命令与符号是用于管理和控制Linux操作系统的关键工具。这些命令和符号允许用户与系统进行交互,执行各种任务,并了解系统状态。 核心命令如“ls”用于列出文件和目录,“cd”用于更改目录,“rm”用于删除文件,“mv”用于移动或重命名文件,以及“cp”用于复制文件。还有许多其他命令,如“ps”用于查看进程,“top”用于查看系统资源使用情况,以及“df”用于查看磁盘空间使用情况。 符号(如“>”、“>>”、“|”和“&”)用于将命令连接在一起,以创建更复杂的操作。例如,“>”可以将命令的输出重定向到一个文件,“>>”可以将输出追加到一个文件,而“|”可以将一个命令的输出作为另一个命令的输入。修饰语(如“-l”、“-a”和“-r”)用于修改命令的行为,如“-l”可用于以详细格式列出文件和目录,“-a”可用于显示隐藏文件,而“-r”可用于以递归方式操作目录。
作者其他创作
大纲/内容
env 打印出当前环境中的所有环境变量及其值
bash/sh
相对路径/绝对路径
source/.
shell脚本运行的三种方法
/etc/profile
.bash_profile
.bashrc
/etc/bashrc
环境变量生效层级
$0 # 获取脚本的名称$n # 脚本传参的参数 $1表示第一个参数 $2表示第二个参数 以此类推 ${10}$? # 上一条命令的执行结果 0成功 非0失败$# # 脚本传参的个数$$ # 脚本的PID号$! # 上一个在后台运行脚本的PID号了解$* # 获取所有传参的参数 在循环体中和$@不同$@ # 获取所有传参的参数 在循环体中和$*不同$_ # 获取传参的最后一个参数
外框
位置变量
直接传参
赋值传参
read传参(交互式)
变量传参
eg: Time=`date +%F-%H-%M-%S` #时间只有在重新赋值后才会改变
``
&()
eg: Time='date +%F-%H-%M-%S' #实时变化
''
命令的定义方法
[root@shell:~]#echo oldboy|wc -L6[root@shell:~]#echo oldboy|awk '{print length}'6[root@shell:~]#expr length oldboy6[root@shell:~]#nam e=oldboy[root@shell:~]#echo ${name}oldboy[root@shell:~]#echo ${#name}6
统计字符串的长度
[root@shell:~]#echo ${url#www.}baidu.com[root@shell:~]#echo ${url#*.}baidu.com
[root@shell:~]#echo ${url#*.*.}com[root@shell:~]#echo ${url##*.} #贪婪匹配com
从前往后删用 #
[root@shell:~]#echo ${url%.com}www.baidu[root@shell:~]#echo ${url%%.*} #贪婪匹配www
从后往前删用 %
子串的删除
[root@shell:~]#echo ${url/baidu/sina}www.sina.com[root@shell:~]#echo ${url/w/A}Aww.baidu.com[root@shell:~]#echo ${url//w/A}AAA.baidu.com
子串的替换
变量子串
[root@shell:~]#expr 1 + 12[root@shell:~]#expr 1 + 1011[root@shell:~]#expr 1 - 10-9[root@shell:~]#expr 1 \\* 1010[root@shell:~]#expr 1 / 100[root@shell:~]#expr 100 / 1010
expr #只支持整数运算
[root@shell:~]#echo $[10+10*2]30[root@shell:~]#echo $[10+10*2-4]26[root@shell:~]#echo $[10/2]5[root@shell:~]#echo $[10%2]0[root@shell:~]#echo $[10%3]1
$[]
[root@shell:~]#echo $((1+1))2[root@shell:~]#echo $((1*11))11[root@shell:~]#echo $((1111-11))1100[root@shell:~]#echo $((1111/11))101[root@shell:~]#echo $((1111%11))0
$(())
[root@shell:~]#let a=1+1[root@shell:~]#echo $a2[root@shell:~]#let a=10-5[root@shell:~]#echo $a5
let
[root@shell:~]#echo 1+2|bc3[root@shell:~]#echo 1+2|bc3[root@shell:~]#echo 100-30|bc70[root@shell:~]#echo 100*30|bc3000[root@shell:~]#echo 100/30|bc3[root@shell:~]#echo 100+10.5|bc110.5[root@shell:~]#echo 100*10.5|bc1050.0[root@shell:~]#echo 100/3|bc33[root@shell:~]#echo 10/3|bc3
bc
[root@shell:~]#awk 'BEGIN{print 10+10*2}'30计算内存的使用百分比[root@shell:~]#free|awk 'NR==2{print $3/$2*100}'27.8168
awk
python
数值运算
-f # 判断文件是否存在-d # 判断目录是否存在-e # 存在即为真-r # 可读为真-w # 可写为真-x # 可执行为真并且 -a或者 -o
-n 变量不为0则为真-z 变量为0则为真[root@shell:~]#length=''[root@shell:~]#[ -z $length ] && echo 成立 || echo 不成立成立
表达式之文件判断
[ 字符串1 = 字符串2 ] # 等于则为真[ $USER = root ][ 5 -eq `cat passwd|wc -l` ][ 字符串1 != 字符串2 ] # 不等于则为真
语法结构
条件表达式字符串比对
[ 整数1 比较符 整数2 ]-eq # 相等-ne # 不等于-gt # 大于-ge # 大于等于-lt # 小于-le # 小于等于
整数比较
if [ 你有钱 ];then 我就嫁给你 fi
if [ 条件表达式 ];then 相当于: [ 10 -eq 10 ] && echo xxx 执行的命令集合 fi 注意then的写法: if [ 条件表达式 ] then 执行的命令集合 fi
单分支
if [ 你有钱 ];then 我就嫁给你 else 滚 fi
if [ 条件表达式 ];then 相当于: [ 10 -eq 10 ] && echo xxx || echo xxx 执行的命令集合 else 执行的命令集合 fi
双分支
if [ 你有钱 ];then 我就嫁给你 elif [ 你有房子 ];then 交朋友 elif [ 你有车 ];then 我就吊着你 elif [ 你长的帅 ];then 先谈朋友吧elif [ 你学习好 ];then 先订婚吧 else 你是个好人。 fi
if [ 条件表达式1 ];then 执行的命令集合 elif [ 条件表达式2 ];then 执行的命令集合 elif [ 条件表达式3 ];then 执行的命令集合 else 执行的命令集合 fi # 结尾的方式可以直接fi结尾
多分支
if
case 变量 in 匹配序列1) 执行的命令集合 ;; 匹配序列2) 执行的命令集合 ;; 匹配序列3) 执行的命令集合 ;; *) echo $Usage: $0 [xxx|xxx]esac
case
判断语句
for
while
循环语句
函数
数组
shell编程
man
命令--help
cmd.oldboyedu.com
查询帮助
halt 关机
-h
reboot 重启
-r
cancel 取消
-c
shutdown
halt
poweroff
reboot
修改主机名
hostnamectl
hostnamectl set-hostname xxxx
查看和修改网卡信息
nmtui
关闭指定网卡信息
ifdown
开启指定网卡
ifup
修改网卡配置文件
netplan apply
networkctl reload
ubt中网卡配置生效
管理服务(开启,关闭,重启服务),设置开机自启动
start
stop
restart
systemctl restart network
关闭开机自启动
enable
disable
systemctl disable firewalld
关闭正在运行的防火墙
systemctl stop firewalld
systemctl status firewalld
systemctl
查看cpu信息
核心数
cpu型号
lscpu
查询内存信息
-h 人类可读形式查看大小
free
查看系统的信息,内核,主机名,cpu架构
uname
临时关闭
setenforce 0
vim /etc/selinux/config 里面SELINUX=行改为SELINUX=disabled
disabled 重启后才会提示
permissive 关闭
enforcing 开启的
getenforce
关闭selinux
查看进程
-ef
aux
auxf
ps
过滤进程
统计进程数量
取出某一列(pid)
案例
默认是交互式的显示系统系统命令
交互式:top
非交互式:top -bn1
top
kill + pid
kill -9 pid
kill
名字
pkill
名字或pid
killall
&
nohub 命令 &
系统管理
一般麒麟中重启网卡使用
杀手
后台运行
ip a
ip address
ip
检查网络连通性
ping
检查端口是否开启
telnet
-ant 连接状态
-lntop 查看端口
查看系统多有开启的端口
ss
与ss类似
netstat
dig
host
nslookup
iftop
nethogs
tracert
traceroute
查看路由表和默认网关
route
网络管理
DNS解析
网络流量
路由追踪(跳)
进入指定目录
cd ~或cd 或老家
cd .. 进入上级目录
cd . 进入当前目录(一般不会与cd使用)
cd
显示当前目录
pwd
查看目录内容
-l long 显示详细信息
-h 以人类可读形式显示大小
-a 显示所有内容,包含隐藏的
逆序排序
按照修改时间排序
-t
ls
一般组合起来用-rt
创建目录
-p 创建多层目录(递归创建目录)
mkdir
创建文件,修改文件时间截
touch
复制,备份
复制目录(递归复制)
复制的时候保持文件或目录的属性不变(文件时间)
-p
相当于-pdr
-a
cp
-r 目录
scp 10.0.0.7:/etc/passwd /etc/
scp /etc/ 10.0.0.7:/etc/passwd
scp
移动文件或目录,重命名
mv
删除文件或目录
删除目录(递归删除)
强制删除不提示
-f
rm
尽量用mv替代,先移动到/tmp/
输出信息到屏幕(标准输出)
>
>>
{}
echo
查看文件内容
-n number 显示文件行号
cat
以树形结构查看目录
-F 给不同类型的文件加上标记,目录加上/(斜线)
tree
文件与目录基础指令
gg 或1G 或 :1
移动光标到第一行
G或 :$
移动光标到最后一行
100gg 或100G 或 :100
某一行
上下移动光标
$
行尾
0或^
行首
左右移动
yy
复制
dd
删除
p
粘贴
复制删除粘贴
u(undo)
撤销
:set nu
显示行号
:set nonu
取消显示行号
n继续向下搜索
N继续向上搜索
/默认向下搜索
?默认向上搜索(很少用)
搜索
先到第一行
dG 一直删除到最后一行
清空文件的内容
其他
批量删除
批量添加
批量操作)(可视块模式)
批量删除#或添加#
:%s#IPADDR#oldboy#g
%是替换文件所有行,只要满足条件就替换
s#找谁#替换成什么#g
替换
快捷键
清楚临时文件
故障
vim专题
按页显示内容,到文件末尾不会退出
less
按页显示内容,到文件末尾会退出
more
显示文件开头几行内容,默认开头十行
-n5 显示开头五行
head
显示文件最后几行内容,默认开头十行
-n5 显示最后五行
-f follow显示文件实时更新
tail
统计文件的信息,主要用来统计行数
-l(小写字母L)行数
wc
一般以管道配合使用,统计次数
排序
子主题
数字排序(正)
-n
指定某列排序 eg:sort -k2
-k
sort
去重
-c 去重并显示次数
合并相邻的两行内容
先把数据通过sotr排序,然后通过uniq去重统计次数
uniq
查看或修改时间
+%Y%m%d
+%F
+%H:%M:%S
+%T
+%w
根据描述显示指定的日期
-d
set设置时间
-s
date
自动同步时间
netdate 时间服务器地址
ntpdate
显示和修改时区
timeddatectl
tar zcf /backup/etc.tar.gz /etc/
.tar.gz
.tar.bz2
.tar.xz
....
常见的压缩包格式
创建压缩包
tar tf /backup/etc.tar.gz
查看
tar xf /backup/etc.tar.gz
解压
tar xf /backup/etc.tar.gz -C /opt/
解压到指定目录
tar
zip -r压缩目录
unzip -d解压到指定目录
zip/unzip
gzip
gzip -d xxx.gz
lrzsz
rz和sz
创建硬连接
-s 创建软连接
ln
文件与目录进阶指令
查看日志
排序去重组合
时间管理
大包压缩三剑客
f 文件
d 目录
-type类型
-name 名字
-size 大小
-mtime 修改时间
-maxdepth 最大深度
-o 或者 注意加上 \\(\\)
find与其他命令配合
find
三剑客老三,擅长过滤
-i 过滤的时候不区分大小写
-n 给过滤出来的内容加上行号
-o 显示grep执行过程正则每次匹配到的内容
grep -E = = egrep 支持扩展正则
egrep中 |表示或者(正则)
A 过滤到内容往上多显示n行 cat.2.txt | grep -A5 3(过滤到3多显示五行)
B 过滤到内容往下多显示n行
C 过滤到内容往上下都多显示n行
grep /egrep
擅长取行,替换,修改文件内容
-n 取消默认输出,一般与p一起使用
-r 支持扩展正则
-i 或 -i.bak 修改文件内容,选项谨慎,选项放在最后
-i.bak 先备份文件,然后修改
选项
-n 与p
查找
s###g
实现取列
根据需求处理某一行的内容
反向引用
d
cai
增加
sed
擅长取列
取列
Linux四剑客
查看磁盘空间整体使用情况
xfs
ext4
-T显示文件系统类型
df
查看目录大小
-sh
du
查看文件类型
file
查看文件属性信息,文件名
stat
fdisk
parted
格式化,创建文件系统
mkfs.xfs
mkfs -t xfs
mkfs.ext4
mkfs
挂载,给设备设置入口,入口就是挂载点,挂载点是目录
mount
卸载
umount
格式化,创建swap
mkswap
启动swap
swapon
关闭swap
swapoff
list open files 显示出所有被打开的文件
lsof |grep delete
lsof
dd if=/dev/zero of=/tmp/xxxx bs=1M count=100
磁盘管理
磁盘分区指令
添加用户
-u
-m
-M
useradd
adduser
设置或修改密码
--stdin 非交互设置密码)(红帽)
passwd
批量修改密码
chpasswd
切换用户
su -
su
删除用户
-r 删除用户并且删除家目录,删除用户的邮箱文件
userdel
查看用户信息
查看用户是否存在
id
查看谁登录系统并且正在干啥
uptime w命令的第一行
who w命令后面几行
能看到当前系统登录用户数
w
who
uptime
last
lastlog
whoami
修改用户信息
usermod
visudo
sudo
查看/设置
\m
/bin/rm
临时取消别名
alias
用户管理专题命令
sudo提权相关
用户信息指令
change mode修改权限
数字权限
字符+x
chmod u+x 1.txt # 授权1.txt 属主拥有执行权限 chmod u-x 1.txt # 取消属主的x权限 chmod o+w 1.txt # 陌生人可以编写文件chmod g+w 1.txt # 授权组内成员可以写授权多个位置:chmod ug+x 1.txt # 授权属组和属主执行权限chmod ugo+x 1.txt# 授权所有用户执行权限chmod a+x 1.txt # 授权所有用户执行权限chmod +x 1.txt # 授权所有用户执行权限chmod -x 1.txt # 取消所有用户的x权限先清空后赋值的方式:chmod u=x 1.txt # 清空属主的权限,然后赋值x权限chmod ugo=r 1.txt# 清空所有权限 只给每个位置只读权限chmo =x 1.txt # 清空所有权限 只给每个位置执行权限
chmod
change owner 修改所有者
chown oldboy.oldboy
chown oldboy
chown
lsattr
chattr
了解:控制系统默认权限
umask
权限管理体系
-R
特殊属性
安装软件包,升级
install
-y默认都选yes
安装本地已经下载好的rpm包
yum查询依赖,下载依赖,安装依赖
localinstall
查询依赖的软件包活命令属于软件包
provides
list
update
yum
apt update
apt install
apt
检查软件是否安装
-qa
不使用的工具放着就行,如果是服务关闭即可
删除软件包
-e
安装
-ivh
安装和升级
-Uvh
查看软件包内容
-ql
检查命令是否变化了
配置,命令
软件刚安装的时候和当前
-aV
md5sum
aide
hm(河马)
类似监控工具
rpm -ivh
-i
检查软件是否安装\\
rpm -qa
-l
rpm -ql
-L
rpm -e
rpm -aV
-V
dpkg
rpm
软件包管理
vim
bash-completion
bash-completion-extras
软件包psmisc
pstree
安装常用应用
命令补全增加,安装完成需要重新登录
当前用户的家目录
root用户 /root/
oldboy用户 /home/oldboy/
~
当前目录的上级目录
..
当前目录
复制文件到当前目录
.
重定向符号:先清空文件的内容,然后在写入
如果文件不存在,替你创建
追加重定向:质保数据写入到文件结尾
标准输出追加重定向
花括号,大括号
生成序列(数字,字母)
{1..20}
{01..100}
用法
批量创建目录,文件,输出
管道符号
把管道前面的命令输出,传递给后面的命令
1个命令无法直接获取到我们想要的结果
列出步骤,根据步骤找出命令
根据顺序一个一个添加管道
根据处理流程
|
优先执行引导里面的命令
先获取指令的结果然后把结果交给其他命令使用
创建文件,目录,压缩包(带时间)
\"反引号
特殊符号
一般系统定义
控制命令行格式
PS1
language语言,字符集
LANG
path 路,小路
存放命令的路径
PATH
环境变量
git add a.txt
git add
git commit -m \"描述\"
看快照
git log
查看所有任何时候的快照
git reflog
回滚快照
git reset --hard 快照名字/标签(版本号)
git branch 查看当前分支
git branch dev 创建dev分支
git branch -d dev 删除dev分支
git checkout dev 切换到dev分支
git merge dev 合并分支
git分支
git tag -a v1.0 快照哈希值 -m \"v1.0稳定版本\"
查看tag
git tag
查看详细信息
git show v1.0
删除标签
git tag -d v1.1
git标签--可以理解为版本号
git
持续集成
yum/apt-get 可以解决软件依赖关系(配置好下载源)
rpm包安装 需要提前在软件包,离线安装软件
源码编译安装可以定制化安装软件,离线安装软件
安装方式
下载获取二进制软件包
1)确认系统是否可以连网/可以远程控制
2)修改系统主机名称/设置名称和地址解析(可选)
3)关闭系统安全功能
4)清理系统中的数据库服务
5) 安装mysql依赖软件
6)创建服务用户与存储数据目录
系统环境基础配置(优化)
解压安装数据库软件程序
编写数据库服务配置文件
数据库服务初始化操作(创建默认数据库中数据信息)
安装部署步骤
查看错误日志 cat /data/3306/data/db-01.err
查看配置文件信息 cat /etc/my.cnf
启动异常
利用脚本(默认实现数据单实例启动过程)
mysqld
mysqld_safe
利用命令(多实例)
数据库启动关闭管理
设置密码
修改密码
重置密码
数据库密码信息管理
数据库用户管理知识
grant priv_type(权限信息) ON 权限管理对象(库 表 -- *.*) to 用户信息(用户名@'白名单信息');grant Show databases on *.* to xiaoB@'10.0.0.54';grant Create on *.* to xiaoB@'10.0.0.54';
mysql> create user oldboy@'10.0.0.%' identified by '123';mysql> grant all on *.* to oldboy@'10.0.0.%';
all privileges 设置所有权限
grant all on *.* to oldboy@'10.0.0.%' with grant option;
grant options 设置给别的用户设置权限的权限
Usage 数据库服务登录权限
三个特殊权限
设置权限
show grants for xiaoD@'%';
show grants
select * from mysql.user where user='test01'\\G
全局授权信息 授权对象是所有库所有表
user
局部授权信息 授权对象是指定的数据库
db
局部授权信息 授权对象是指定的数据表
tables_priv
模拟操作
获取授权表信息
查看权限
revoke 回收的权限 on 回收权限对象 (库名.表名) from 用户信息(用户名@白名单)
回收权限(设置的什么库什么表就回收对应的)
数据库用户权限管理
mysql --用于连接数据库
mysqladmin --远程连接管理数据库(设置密码、管理服务运行状态)
mysqldump --远程备份数据库
mysql/mysqladmin/mysqldump -u用户信息 -p密码信息 -h数据库服务地址 -P端口信息PS:需要部署数据库程序,必须熟悉数据库服务的管理命令
01 基于MySQL程序的客户端命令
利用sqlyog连接报错,连接失败:原因:因为连接的数据库服务是MySQL 8.0 最新版本数据库 最新版本数据库密码加密方式变更了早期版本:密码加密方式-- mysql_native_password -- 密文信息容易被破解(弱口令密码)最新版本:密码加密方式-- caching_sha2_password 客户端 服务端连接时--用户名(明文比较) 密码(密文) 用户信息 密码信息(密文)加密方式--mysql_native_password caching_sha2_password加密方式--caching_sha2_password mysql_native_password alter user root@'10.0.0.%' identified with mysql_native_password by '123456';
dbeaver -- 官方链接:https://dbeaver.io/ 免费workbench -- 官方链接: https://www.mysql.com 免费navicat -- 官方链接:https://www.navicat.com 付费sqlyog -- 官方链接:https://webyog.com/product/sqlyog/ 付费
02 基于第三方的数据库远程连接工具
| 01 | python | 连接数据库驱动-pymysql || 02 | golang | 连接数据库驱动-gomysql || 03 | java | 连接数据库驱动-jar || 04 | php | 连接数据库驱动-phpmysql |
03 利用连接驱动程序配合程序语言代码
数据库远程连接管理(三种)数据库服务进行本地连接是有局限性--RDS(系统环境)
数据库服务配置管理
数据库
核心命令与符号
收藏
0 条评论
下一页