shell常用工具和命令

1.printf

Format 描述
%s: 一个字符串
%d, %i :一个小数
%f :一个浮点数
%.ns: 输出字符串, n 是输出几个字符
%m.nf :输出浮点数, m 是输出整数位数, n 是输出的小数位数
%x :不带正负号的十六进制,使用 a 至 f 表示 10 到 15
%X :不带正负号的十六进制,使用 A 至 F 表示 10 至 15
%% :输出单个%
%-5s :左对齐,对参数每个字段左对齐,宽度为 5
%-4.2f :左对齐,宽度为 4,保留两位小数
%5s :右对齐,不加横线表示右对齐

\n 换行
\r 回车
\t 水平制表符

2.tac 和rev

root@ubuntu:/home/test# a="123456\n78910"
root@ubuntu:/home/test# echo -e $a > a.txt
root@ubuntu:/home/test# tac a.txt 
78910
123456
root@ubuntu:/home/test# rev a.txt 
654321
01987
root@ubuntu:/home/test# rev a.txt |tac
01987
654321
root@ubuntu:/home/test# 

3:WC

-c 打印文件字节数,一个英文字母 1 字节,一个汉字占 2-4 字节(根据编码)
-m 打印文件字符数, 一个汉字占 2 个字符
-l 打印多少行
-L 打印最长行的长度, 也可以统计字符串长度

4.rename

功能: 重命名文件,支持通配符
常用选项:
示例: 批量命名文件

 rename foo foo0 foo?

5.dirname

去除路径的最后一个名字

# dirname /usr/bin/
/usr
# dirname dir1/str dir2/str
dir1
dir2

6. basename

打印路径的最后一个名字

basename -s .h include/stdio.h
stdio

7.du

功能: 估算文件磁盘空间使用
常用选项:
-h 易读格式显示(K, M, G)
-b 单位 bytes 显示
-k 单位 KB 显示
-m 单位 MB 显示
-s 只显示总大小
–max-depth=<目录层数>,超过层数的目录忽略
–exclude=file 排除文件或目录
–time 显示大小和创建时间

查看目录大小:
# du -sh /opt
排除目录某个文件:
# du -sh --exclude=test /opt

8.tr

功能: 替换或删除字符
格式: Usage: tr [OPTION]… SET1 [SET2]
常用选项:
-c 替换 SET1 没有 SET2 的字符
-d 删除 SET1 中字符
-s 压缩 SET1 中重复的字符
-t 将 SET1 用 SET2 转换,默认

9 stat

显示文件信息:
# stat file

10 seq

生成顺序序列
-f 使用 printf 样式格式
-s 指定换行符,默认是\n
-w 等宽,用 0 填充

11.shuf

生成随机序列

shuf -i 5-10
seq 5 |shuf

12.sort

功能: 排序文本,默认对整列有效
常用选项:
-f 忽略字母大小写
-M 根据月份比较,比如 JAN、 DEC
-h 根据易读的单位大小比较,比如 2K、 1G
-g 按照常规数值排序
-n 根据字符串数值比较
-r 倒序排序
-k 位置 1,位置 2 根据关键字排序, 在从第位置 1 开始, 位置 2 结束

13.uniq

功能: 去除重复行,只会统计相邻的
常用选项:
-c 打印出现的次数
-d 只打印重复行
-u 只打印不重复行
-D 只打印重复行,并且把所有重复行打印出来
-f N 比较时跳过前 N 列
-i 忽略大小写
-s N 比较时跳过前 N 个字符
-w N 对每行第 N 个字符以后内容不做比较

# cat file
abc
cde
xyz
cde
xyz
abd
去重复行:
# sort file |uniq
abc
abd
cde
xyz
打印每行重复次数:
# sort file |uniq -c
1 abc
1 abd
2 cde
2 xyz
打印不重复行:
# sort file |uniq -u
abc
abd
打印重复行:
# sort file |uniq -d
cde
xyz
打印重复行并统计出现次数:
# sort file |uniq -d -c
2 cde
2 xyz
根据前几个字符去重:
# sort file |uniq -w 2
abc
cde
xyz

14 tee

功能: 从标准输入读取写到标准输出和文件

echo 123 |tee -a a.log

15.join

# cat file1
1 a
2 b
3 c
# cat file2
1 x
2 y
3 z
将两个文件相同字段合并一列:
# join file1 file2
1 a x
2 b y
3 c z
打印 file1 第二列和 file2 第二列:
# join -o 1.2 2.2 file1 file2
a x
b y
c z
# join -t ':' -o 1.1 2.1 /etc/passwd /etc/shadow
user1:user1
……

16paste

功能: 合并文件
常用选项:
-d 指定分隔符,默认是 tab 键分隔
-s 将文件内容平行合并, 默认 tab 键分隔

两个文件合并, +号分隔:
# paste -d "+" file1 file2
1+4
2+5
3+6

17find

功能: 目录层次结构中搜索文件
格式: find path -option actions
常用选项
-name 文件名,支持(‘*’ , ‘?’ )
-type 文件类型, d 目录, f 常规文件等
-perm 符合权限的文件,比如 755
-atime -/+n 在 n 天以内/过去 n 天被访问过
-ctime -/+n 在 n 天以内/过去 n 天被修改过
-amin -/+n 在 n 天以内/过去 n 分钟被访问过
-cmin -/+n 在 n 天以内/过去 n 分钟被修改过
-size -/+n 文件大小小于/大于, b、 k、 M、 G
-maxdepth levels 目录层次显示的最大深度
-regex pattern 文件名匹配正则表达式模式
-inum 通过 inode 编号查找文件
动作:
-detele 删除文件
-exec command {} ; 执行命令,花括号代表当前文件
-ls 列出当前文件, ls -dils 格式
-print 完整的文件名并添加一个回车换行符
-print0 打印完整的文件名并不添加一个回车换行符
-printf format 打印格式
其他字符:
! 取反
-or/-o 逻辑或
-and 逻辑和
查找文件名:

# find / -name "*http*"
查找文件名并且文件类型:
# find /tmp -name core -type f -print
查找文件名并且文件类型删除:
# find /tmp -name core -type f -delete
查找当前目录常规文件并查看文件类型:
# find . -type f -exec file '{}' \;
查找文件权限是 664# find . -perm 664
查找大于 1024k 的文件:
# find . -size -1024k
查找 3 天内修改的文件:
# find /bin -ctime -3
查找 3 分钟前修改的文件:
# find /bin -cmin +3
排除多个类型的文件:
# find . ! -name "*.sql" ! -name "*.txt"
或条件查找多个类型的文件:
# find . -name '*.sh' -o -name '*.bak'
# find . -regex ".*\.sh\|.*\.bak"
# find . -regex ".*\.\(sh\|bak\)"
并且条件查找文件:
# find . -name "*.sql" -a -size +1024k
只显示第一级目录:
# find /etc -type d -maxdepth 1
通过 inode 编号删除文件:
# rm `find . -inum 671915`
# find . -inum 8651577 -exec rm -i {} \;

18 xargs

-a file 从指定文件读取数据作为标准输入
-0 处理包含空格的文件名,print0
-d delimiter 分隔符,默认是空格分隔显示
-i 标准输入的结果以{}代替
-I 标准输入的结果以指定的名字代替
-t 显示执行命令
-p 交互式提示是否执行命令
-n 最大命令行参数
–show-limits 查看系统命令行长度限制
删除/tmp 下名字是 core 的文件:

# find /tmp -name core -type f -print | xargs /bin/rm -f
# find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
列转行(去除换行符 ):
# cut -d: -f1 < /etc/passwd | sort | xargs echo
行转列:
# echo "1 2 3 4 5" |xargs -n1
最长两列显示:
# echo "1 2 3 4 5" |xargs -n2
创建未来十天时间:
# seq 1 10 |xargs -i date -d "{} days " +%Y-%m-%d
复制多个目录:
# echo dir1 dir2 |xargs -n1 cp a.txt
清空所有日志:
# find ./ -name "*.log" |xargs -i tee {} # echo ""> {} 这样不行, >把命令中断了
rm 在删除大量的文件时,会提示参数过长,那么可以使用 xargs 删除:
# ls |xargs rm – rf
或分配删除 rm [a-n]* -rf # getconf ARG_MAX 获取系统最大参数限制

19nl

功能: 打印文件行号
常用选项:
-b <a|t> 指定行号显示方式, a 表示所有行都打印行号, b 表示空行不显示行号,默认是 a
-n <ln|rn|rz> 行号显示方法, ln 左对齐, rn 右对齐, rz 右边显示,左边空白用 0 填充。
-w 行号栏位在左边占用的宽度

左对齐打印行号:
# nl -n ln a.txt
行号右移动五个空格:
# nl -w 5 a.txt

20 date

-d string 显示指定字符串所描述的时间,而非当前时间
-f datefile 从日期文件中按行读入时间描述
-I 输出 ISO 8601 格式的日期和时间
-r 显示文件的最后修改时间
-R 输出 RFC 2822 格式的日期和时间
-s string 设置时间所描述的字符串
-u 打印或设置 UTC 时间
控制输出格式:
%% 一个文字的 %
%a 当前 locale 的星期名缩写(例如: 日,代表星期日)
%A 当前 locale 的星期名全称 (如:星期日)
%b 当前 locale 的月名缩写 (如:一,代表一月)
%B 当前 locale 的月名全称 (如:一月)
%c 当前 locale 的日期和时间 (如: 2005 年 3 月 3 日 星期四 23:05:25)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如: 20)
%d 按月计的日期(例如: 01)
%D 按月计的日期;等于%m/%d/%y
%e 按月计的日期,添加空格,等于%_d
%F 完整日期格式,等价于 %Y-%m-%d
%g ISO-8601 格式年份的最后两位 (参见%G)
%G ISO-8601 格式年份 (参见%V), 一般只和 %V 结合使用
%h 等于%b
%H 小时(00-23)
%I 小时(00-12)
%j 按年计的日期(001-366)
%k 时(0-23)
%l 时(1-12)
%m 月份(01-12)
%M 分(00-59)
%n 换行
%N 纳秒(000000000-999999999)
%p 当前 locale 下的"上午"或者"下午",未知时输出为空
%P 与%p 类似,但是输出小写字母
%r 当前 locale 下的 12 小时时钟时间 (如: 11:11:04 下午)
%R 24 小时时间的时和分,等价于 %H:%M
%s 自 UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S 秒(00-60)
%t 输出制表符 Tab%T 时间,等于%H:%M:%S
%u 星期, 1 代表星期一
%U 一年中的第几周,以周日为每星期第一天(00-53)
%V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w 一星期中的第几日(0-6), 0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)
%x 当前 locale 下的日期描述 (如: 12/31/99)
%X 当前 locale 下的时间描述 (如: 23:13:48)
%y 年份最后两位数位 (00-99)
%Y 年份
设置系统日期和时间:

# date -s "2016-12-15 00:00:00"
查看当前系统时间戳:
# date +%s
查看当前系统时间:
# date +'%F %T'
把日期和时间转换成时间戳:
# date -d "2016-12-15 18:00:00" +%s
把时间戳转成时间:
# date -d '@1481842800' '+%F %T'
时间加减:
显示前 30 秒: date -d '-30 second' +'%F %T'
显示前一分钟: date -d '-1 minute' +'%F %T'
显示前一个时间: date -d '-1 hour' +'%F %T'
显示前一个天: date -d '-1 day' +'%F %T'
显示上一周: date -d '-1 week' +'%F %T'
显示上一个月日期: date -d '-1 month' +%F
显示上一年日期: date -d '-1 year' +%F
或
显示前一天日期: date -d yesterday +%F
显示后一天日期: date -d tomorrow +%F
时间比较:
NOW_DATE=$(date +%s)
AGO_DATE=$(date -d "2016-12-15 18:00:00" +%s)
[ $NOW_DATE -gt $AGO_DATE ] && echo yes || echo no

21 wget

功能: 非交互式网络下载,类似于 HTTP 客户端
常用选项:
-b, --background 后台运行
日志记录和输入文件:
-o, --output-file=FILE 日志写到文件
-a, --append-output=FILE 日志追加到文件
-d, --debug 打印 debug 信息,会包含头信息
-q, --quiet 退出,不输出
-i, --input-file=FILE 从文件中读取 URL 下载
下载选项:
-t, --tries=NUMBER 设置链接重试次数
-O, --output-document=FILE 写入内容到文件
-nc, --no-clobber 跳过下载现有的文件
-c, --continue 断点续传
–progress=TYPE 设置进度条(dot 和 bar)
-S, --server-response 打印服务器响应头信息
–spider 不下载任何内容
-T, --timeout=SECONDS 设置相应超时时间(还有–dns-timeout、 --connect-timeout 和
–read-timeout)
-w, --wait=SECONDS 两次重试间隔等待时间
–bind-address=ADDRESS 设置绑定地址
–limit-rate=RATE 限制下载速度
–user=USER 设置 ftp 和 http 用户名
–password=PASS 设置 ftp 和 http 密码
目录:
-P, --directory-prefix=PREFIX 保存文件目录
HTTP 选项:
–http-user=USER 设置 http 用户名
–http-password=PASS 设置 http 密码
–proxy-user=USER 设置代理用户名
–proxy-password=PASS 设置代理密码
–referer=URL 设置 Referer
–save-headers 保存头到文件
–default-page=NAME 改变默认页面名字,默认 index.html
-U,–user-agent=AGENT 设置客户端信息
–no-http-keep-alive 禁用 HTTP keep-alive(长连接)
–load-cookies=FILE 从文件加载 cookies
–save-cookies=FILE 保存 cookies 到文件
–post-data=STRING 使用 POST 方法,发送数据
FTP 选项:
–ftp-user=USER 设置 ftp 用户名
–ftp-password=PASS 设置 ftp 密码
–no-passive-ftp 禁用被动传输模式
递归下载:
-r, --recursive 指定递归下载
-l, --level=NUMBER 最大递归深度
-A, --accept=LIST 逗号分隔下载的扩展列表
-R, --reject=LIST 逗号分隔不被下载的扩展列表
-D, --domains=LIST 逗号分隔被下载域的列表
–exclude-domains=LIST 排除不被下载域的列表

22 curl

功能: 发送数据到 URL,类似于 HTTP 客户端
常用选项:
-k, --insecure 允许 HTTPS 连接网站
-C, --continue-at 断点续传
-b, --cookie STRING/FILE 从文件中读取 cookie
-c, --cookie-jar 把 cookie 保存到文件
-d, --data 使用 POST 方式发送数据
–data-urlencode POST 的数据 URL 编码
-F, --form 指定 POST 数据的表单
-D, --dump-header 保存头信息到文件
–ftp-pasv 指定 FTP 连接模式 PASV/EPSV
-P, --ftp-port 指定 FTP 端口
-L, --location 遵循 URL 重定向,默认不处理
-l, --list-only 指列出 FTP 目录名
-H, --header 自定义头信息发送给服务器
-I, --head 查看 HTTP 头信息
-o, --output FILE 输出到文件
-#, --progress-bar 显示 bar 进度条
-x, --proxy [PROTOCOL://]HOST[:PORT] 使用代理
-U, --proxy-user USER[:PASSWORD] 代理用户名和密码
-e, --referer 指定引用地址 referer
-O, --remote-name 使用远程服务器上名字写到本地
–connect-timeout 连接超时时间,单位秒
–retry NUM 连接重试次数
–retry-delay 两次重试间隔等待时间
-s, --silent 静默模式,不输出任何内容
-Y, --speed-limit 限制下载速率-u, --user USER[:PASSWORD] 指定 http 和 ftp 用户名和密码
-T, --upload-file 上传文件
-A, --user-agent 指定客户端信息
示例:
下载页面:

# curl -o badu.html http://www.baidu.com
不输出下载信息:
# curl -s -o baidu.html http://www.baidu.com
伪装客户端,指定 user-agent 和 referer 下载:
# curl -A "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/44.0.2403.157 Safari/537.36" -e "baike.baidu.com" http://127.0.0.1
模拟用户登录,并保存 cookies 到文件:
# curl -c ./cookies.txt -F NAME=user -F PWD=123 http://www.example.com/login.html
使用 cookie 访问:
# curl -b cookies.txt http://www.baidu.com
访问 HTTP 认证页面:
# curl -u user:pass http://www.example.com
FTP 上传文件:
# curl -T filename ftp://user:pass@ip/a.txt
# curl ftp://ip -u user:pass-T filename
FTP 下载文件:
# curl -O ftp://user:pass@ip/a.txt
# curl ftp://ip/filename -u user:pass -o filename
FTP 下载多个文件:
# curl ftp://ip/img/[1,3,5].jpg
查看 HTTP 头信息:
# curl -I http://www.baidu.com

23SCP

功能: 基于 SSH 的安全远程服务器文件拷贝
常用选项:
-i 指定私钥文件
-l 限制速率,单位 Kb/s, 1024Kb=1Mb
-P 指定远程主机 SSH 端口
-p 保存修改时间、访问时间和权限
-r 递归拷贝目录
-o SSH 选项,有以下几个比较常用的:
ConnectionAttempts=NUM 连接失败后重试次数
ConnectTimeout=SEC 连接超时时间
StrictHostKeyChecking=no 自动拉去主机 key 文件
PasswordAuthentication=no 禁止密码认证
本地目录推送到远程主机:

# scp -P 22 -r src_dir root@192.168.1.10:/dst_dir
远程主机目录拉取到本地:
# scp -P 22 -r root@192.168.1.10:dst_dir src_dir同步文件方式一样,不用加-r 参数

rsync

功能: 远程或本地文件同步工具
常用选项:
-v 显示复制信息
-q 不输出错误信息
-c 跳过基础效验,不判断修改时间和大小
-a 归档模式,等效-rlptgoD,保留权限、属组等
-r 递归目录
-l 拷贝软连接
-z 压缩传输数据
-e 指定远程 shell,比如 ssh、 rsh
–progress 进度条,等同-P
–bwlimit=KB/s 限制速率, 0 为没有限制
–delete 删除那些 DST 中 SRC 没有的文件
–exclude=PATTERN 排除匹配的文件或目录
–exclude-from=FILE 从文件中读取要排除的文件或目录
–password-file=FILE 从文件读取远程主机密码
–port=PORT 监听端口
本地复制目录:

# rsync -avz abc /opt
本地目录推送到远程主机:
# rsync -avz SRC root@192.168.1.120:DST
远程主机目录拉取到本地:
# rsync -avz root@192.168.1.10:SRC DST
保持远程主机目录与本地一样:
# rsync -avz --delete SRC root@192.168.1.120:DST
排除某个目录:
# rsync -avz --exclude=no_dir SRC root@192.168.1.120:DST
指定 SSH 端口:
# rsync -avz /etc/hosts -e "ssh -p22" root@192.168.1.120:/op

11.35 iconv

功能: 将文件内容字符集转成其他字符集
常用选项:
-l 列出所有已知的字符集
-f 原始文本编码
-t 输出编码
-o 输出到文件
-s 关闭警告
将文件内容转换 UTF8:

# iconv -f gbk -t utf8 old.txt -o new.txt
将 csv 文件转换 GBK:
# iconv -f utf8 -t gbk old.txt -o new.txt
解决邮件乱码:
# echo $(echo "content" | iconv -f utf8 -t gbk) | mail -s "$(echo "title" | iconv -f
utf8 -t gbk)" example@mail.com

sshpass

功能: 非交互 SSH 登录(需要安装)
常用选项:
-f 从文件中获取密码
-d 用文件描述符数字获取密码
-p 指定 SSH 密码
-e 密码作为环境变量传递,变量名是 SSHPASS
免交互 SSH 登录:

# sshpass -p 123456 ssh root@192.168.1.10
免交互传输文件:
# sshpass -p 123456 scp a.txt 192.168.1.10:/root
密码传入系统变量:
# SSHPASS=123456 rsync -avz /etc/hosts -e "sshpass -e ssh" root@192.168.1.221:/opt

logger

功能: 系统日志的 shell 命令行接口
常用选项:
-i 每行记录进程 ID
-f 指定输出日志到文件
-p 设置记录的优先级
-t 添加标签
示例:

# `logger -i -t "my_test" -p local3.notice "test_info"`

netstat & ss & lsof

看网络端口,打印网络连接、路由表、接口统计信息、伪装连接和多播成员

ip

功能: 查看/操作路由表、 设备、 路由策略和隧道
格式: ip [ OPTIONS ] OBJECT { COMMAND | help }
常用选项:
-b, -batch 从文件或标准输入读取命令并调用他们,第一次失败将终止
-force 批量模式有错误不终止,如果有错误则状态返回非 0
-s, -statistics 输出更多的统计信息
-l, -loops 指定最大的循环数
操作对象(OBEJECT) :
address 网络设备地址
12tp 以太网 IP 隧道
link 配置网络设备
maddress 多播地址
monitor 动态监控网络连接
mroute 多播路由缓存条目
mrule 角色在多播路由策略数据库
neighbour 管理 ARP 或 NDISC 缓存条目
netns 管理网络命名空间
ntable 管理 neighbour 缓存操作
route 路由表
rule 角色在路由策略数据库
tpc_metrics/tcpmetrics 管理 TCP 指标
tunnel IP 隧道
tuntap 管理 TUN/TAP 设备
xfrm 管理 IPSec 策略

nc

功能: TCP 和 UDP 连接和监听
-i interval 指定间隔时间发送和接受行文本
-l 监听模式,管理传入的连接
-n 不解析域名
-p 指定本地源端口
-s 指定本地源 IP 地址
-u 使用 udp 协议,默认是 tcp
-v 执行过程输出
-w timeout 连接超时时间
-x proxy_address[:port] 请求连接主机使用代理地址和端口
-z 指定扫描监听端口,不发送任何数据

vmstat

功能: 报告虚拟内存、 swap、 io、上下文和 CPU 统计信息。

sar dstat

查看系统资源综合方面利用率

eval

功能: 执行参数作为 shell 命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打开任务管理器的快捷键

打开任务管理器的快捷键通常是Ctrl Shift Esc。只需同时按下这三个键&#xff0c;任务管理器就会立即弹出&#xff0c;显示当前正在运行的进程和性能数据。 此外&#xff0c;还有以下方法可以打开任务管理器&#xff1a; 使用组合键“CtrlAltDelete”&#xff0c;在xp系统中…

Java实战:Redis高可用之主从复制:原理、实战与优化

在高并发、大数据量的场景下&#xff0c;Redis 作为一款高性能的 key-value 存储系统&#xff0c;被广泛应用于缓存、消息队列、分布式锁等领域。为了保证 Redis 的高可用性&#xff0c;我们需要对 Redis 进行主从复制&#xff0c;实现数据的多副本存储。本文将详细介绍 Redis …

阿里云2核4G服务器支持人数并发测试,2核4G主机测评

阿里云2核4G服务器多少钱一年&#xff1f;2核4G配置1个月多少钱&#xff1f;2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…

Vue教学15:组件间的通信:provide/inject与event bus的巧妙应用

大家好&#xff0c;欢迎回到我们的Vue教学系列博客&#xff01;在前十四篇博客中&#xff0c;我们学习了Vue.js的基础知识、安装Node.js与npm、使用Vue Devtools进行调试、Vue实例与生命周期钩子、数据绑定&#xff08;单向与双向&#xff09;、计算属性与侦听器、条件渲染和列…

进制之间的转换

文章目录 编译过程进制转换1、进制的概念1.1 二进制1.2 八进制1.3 十六进制 进制在程序中的表现方式十进制转二进制将十进制转换成二进制&#xff08;除2反序取余法&#xff09;二进制转十进制&#xff08;权值法&#xff09; 八进制转十进制将十进制转换成八进制(除8反序取余法…

医药行业五大难题深度剖析:CRM解决方案助力突围

医疗行业关系着民生、经济乃至战备&#xff0c;是国民经济的重要组成部分。虽然近20年来我国医疗行业年均增长率维持在15%之上&#xff0c;但行业发展仍存在诸多问题。引进CRM管理系统可能是一个行之有效的解决方法。文中将为您整理医疗行业目前的五大挑战&#xff0c;以及CRM如…

Android Termux系统安装openssh实现公网使用SFTP远程访问

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

Processing基本形状内容和实例

一、Processing的基本形状内容和实例 1.Processing有一组专门绘制基本图形得图案。像线条这样的基本图形可以被连接起来创建更为复杂得形状&#xff0c;例如一片叶子或者一张脸。 2.为了绘制一条直线&#xff0c;我们需要四个参数&#xff0c;两个用于确定初始位置&#xff0c;…

判断连续数据同意特征的方法:插旗法

bool isMonotonic(int* nums, int numsSize) {int flag 2;for (int i 1; i < numsSize; i) {if (nums[i-1] > nums[i]) {if (flag 0)return false;flag 1;}else if (nums[i-1] < nums[i]) {if (flag 1)return false;flag 0;}}return true; }此代码较为简单&…

Sora:AI视频生成的新机遇与挑战

随着科技的飞速进步&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;技术已经深入渗透到社会的各个领域。其中&#xff0c;Sora这类基于AI的视频生成工具因其高度逼真的生成能力而备受瞩目。然而&#xff0c;正如一枚硬币有两面&#xff0…

排队方式——栈

Description n个人手拿5元&#xff0c;n个人手拿10元&#xff0c;他们去排队买东西&#xff0c;东西价值5元&#xff0c;老板没有零钱&#xff08;老板必须用收取的5元钞票给支付10元的顾客找零钱&#xff09;&#xff0c;现给出一种排列方式&#xff0c;判断是否合理&#xf…

nVisual+AI实现综合布线智能化运维管理

传统的综合布线系统依据TIA-606规范在配线架、跳线、面板上都粘贴了标签&#xff0c;标签作为一个综合布线项目中元器件的唯一标识&#xff0c;对综合布线日常运维管理过程中查询连接关系、定位设备位置至关重要&#xff0c;但标签所能记录的信息毕竟有限&#xff0c;因此可视化…

docker的简单使用

在一些进行使用靶场或者工具的时候&#xff0c;我们可以用docker在线拉取&#xff0c;就可以省去手动搭建靶场的过程 一、docker的配置 因为docker是默认从docker的官网进行拉取&#xff0c;所以拉取经常速度很慢或者失败&#xff0c;我们先要进行一下配置&#xff0c;让他优…

让照片说话唱歌的软件,盘点这3款!

在数字时代&#xff0c;我们总是渴望找到新的方式来表达自我、分享生活。近年来&#xff0c;随着人工智能和图像处理技术的飞速发展&#xff0c;一种新型的软件应运而生&#xff0c;它们能够让照片“说话”甚至“唱歌”&#xff0c;给我们的生活带来了无限乐趣和创意空间。那么…

探索SRM软件:了解SRM在企业中的作用

作为供应商&#xff0c;对于SRM软件并不陌生&#xff0c;但对于刚刚进入采购行业的新手来说&#xff0c;就可能不太了解这个软件的作用了。现在让我们来科普一下&#xff1a;通常&#xff0c;我们将SRM称为供应商关系管理&#xff0c;其全称为Supplier Relationship Management…

ICVQUANTUMCHINA报告:《2024全球量子通信与安全产业发展展望》发布

2月26日&#xff0c;《2024全球量子通信与安全产业发展展望》的中文版报告通过光子盒官方平台发布&#xff0c;英文版报告通过ICV官方平台发布。 英文版报告获取地址&#xff1a; https://www.icvtank.com/newsinfo/898270.html 亮点 摘要 - 量子通信与安全产业报告呈现了2023…

zerotier局域网组建 笔记

背景 家里的windows电脑&#xff1a;home-win10-pc 家里的windows电脑上vmware运行的ubuntu虚拟机&#xff1a;home-ubuntu-vm 公司的mac电脑&#xff1a;company-mac-pc 由于xxx需求&#xff0c;需要组建一个局域网&#xff0c;前东家都是用的zerotier&#xff0c;出于路径依…

C++中GetPrivateProfileInt用法详解

GetPrivateProfileInt是C中一个用于读取INI文件中指定节(section)和键(key)的整型值的函数。 函数原型&#xff1a; UINT GetPrivateProfileInt( LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault, LPCTSTR lpFileName ); 参数说明&#xff1a; lpAppName&#xff1a;IN…

uniapp版微信小程序授权登录

请求接口code换取openid信息: wxlogin() {let that = thislet token = uni.getStorageSync(weToken)console.log(token)if (token) {wx.reLaunch({url: "/pages/tarbar"})} else {uni.login({provider: weixin, //使用微信登录success: function(res) {const code …

虾皮shopee API在库存管理中的重要性

虾皮&#xff08;Shopee&#xff09;API在库存管理中扮演着至关重要的角色。通过使用Shopee API&#xff0c;商家可以自动化地管理其在线商店的库存&#xff0c;确保库存数据的准确性和实时性。以下是一些虾皮API在库存管理中的重要性&#xff0c;并附有相关代码示例&#xff1…