导航:首页 > 编程系统 > linux双冒号

linux双冒号

发布时间:2023-03-19 06:44:45

㈠ C++ 双冒号开头的语法是什么意思

命名空间限定。毕困
std::string
表示std命名空间下的 string类。
直接::开始,表示顶层命名空间(全局变量)std::string -> ::std::string 这样也可以。
::和 文件路径的 / 可以对照理解。

linux下面没有盘符之分。 只有一个盘,所以手或念也就没有C,D,E,F这种了。
/usr/share/abc.txt abc.txt 位于 /usr/share目录下
/abc.txt abc.txt直团坦接位于硬盘下。第一个/就代表硬盘根目录。

㈡ linux shell 脚本 wak语句中 awk 'BEGIN { FS="'"'"'";RS="\n"} {for (i=2;i<=NF;i=i+

FS表示操作的时候以什么为分割符
RS表示记录分割符(Record Separator)
即RS表示的是awk操作回最小单答位的边界,而FS是这个最小单位中分割的符号
例如:
101,John Doe:102,Jason Smith:103,Raj Reddy
如果不指定RS,指定FS为“,”,那么awk将101作为第一列,剩下的全部为第二列,如果指定RS=":",那么awk就会将内容作为三“行”,第一列包括101,102和103,第二列包括John Doe,Jason Smith和Raj Reddy

㈢ 从一台linux传文件到另一台linux不被发现

方法如下。
在日常服务器租用中,有时需要将文件从一台服务器传到另一台服务器,下面给大家介绍四种linux服务器之间传输文件方式。
1.scpscp就是secure ,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。2.rcp目标主机需要事先打开rcp功能,并设置好rcp的权限:把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。3.wget,wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。4.rsync,rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。

㈣ lua语言的跳转指令怎么用

lua中的标签使用双冒号。print("abcd")

㈤ 2009.9三级网络技术笔试真题 发到[email protected]

2009年9月全国计算机等级考试三级笔试试卷网络技术 (考试时间120分钟,满分100分) 一、选择题(每题1分,共60分) (1)我国研制成功第一台通用电子管103计算机是在 A) 1957年 B) 1958年 C) 1959年 D) 1960年 (2)关于计算机应用的描述中,正确的是 A) 事务处理的数据量小、实时性不强 B) 智能机器人不能从事繁重的体力劳动 C) 计算机可以模拟经济运行模式 D) 嵌入式装置不能用户过程控制 (3)关于客户端计算机的描述中,错误的是 A) 包括台式机、笔记本及工作站等 B) 大多数工作站属于图形工作站 C) 可分为RISC工作站和PC工作站 D) 笔记本类手持设备越来越收到欢迎 (4)关于处理芯片的描述中,正确的是 A) 奔腾芯片是32位的 B) 双核奔腾芯片是64位的 C) 超流水线技术内置多条流水线 D) 超标量技术可细化流水 (5)关于软件的描述中,错误的是 A) 可分为系统软件和应用软件 B) 系统软件的核心是操作系统 C) 共享软件的坐着不保留版权 D) 自由软件可自由复制和修改 (6)关于流每题的描述中,正确的是 A) 流媒体播放都没有启动延时 B) 流媒体内容都是线性组织的 C) 流媒体服务都采用客户/服务器模式 D) 流媒体数据流需要保持严格的时序关系 (7)对计算机网络发展具有重要影响的广域网是 A) ARPANET B) Ethernet C) Token Ring D) ALOHA (8)关于网络协议的描述中,错误的是 A) 为网络数据交换制定的规制与标准 B) 由语法、语义与时序三个要素组成 C) 采用层次结构模型 D) 语法是对事件实现顺序的详细说明 (9)如果网络系统发送1bit数据所用时间为10-7s,那么它的数据传输速率为 A) 10Mbps B) 100Mbps C) 1Gbps D) 10Gbps (10)在OSI参考模型中,负责实现路由选择功能的是 A) 物理层 B) 网络层 C) 会话层 D) 表示层 (11)关于万兆以太网的描述中,正确的是 A) 应考虑介质访问控制问题 B) 可以使用屏蔽双绞线 C) 只定义了局域网物理层标准 D) 没有改变以太网的帧格式 (12)在Internet中实现文件传输服务的协议是 A) FTP B) ICMP C) CMIP D) POP (13)具有括扑中心的网络结构是 A) 网状拓扑 B) 树状拓扑 C) 环型拓扑 D) 星型拓扑 (14)IEEE针对无线局域网制定的协议标准是 A) IEEE 802.3 B) IEEE 802.11 C) IEEE 802.15 D) IEEE 802.16 (15)1000BASE-LX标准支持的传输介质是 A) 单模光纤 B) 多模光纤 C) 屏蔽双绞线 D) 非屏蔽双绞线 (16)关于共享介质局域网的描述中,错误的是 A) 采用广播方式发送数据 B) 所有网络结点使用同一信道 C) 不需要介质访问控制方法 D) 数据在传输过程中可能冲突 (17)如果千兆以太网交换机的总带宽为24Gbps,其全双工千兆端口数量最多为 A) 12个 B) 24个 C) 36个 D) 48个 (18)在TCP/IP参考模型中,提供无连接服务的传输层协议是 A) UDP B) TCP C) ARP D) OSPF (19)关于网桥的描述中,正确的是 A) 网桥无法实现地址过来与帧转发能够 B) 网桥互联的网络在网络层都采用不同协议 C) 网桥是在数据链路层实现网络互联的设备 D) 透明网桥由源结点实现帧的路由选择功能 (20)以下不属于即时通信的是 A) DNS B) MSN C) ICQ D) QQ (21)OSI参考模型的网络层对于TCP/IP参考模型的 A) 主机-网络层 B) 互联网 C) 传输层 D) 应用层 (22)关于博客的描述中,错误的是 A) 以文章的形式实现信息发布 B) 在技术上属于网络共享空间 C) 在形式上属于网络个人出版 D) 内容只能包含文字与图片 (23)以太网帧的地址字段中保存的是 A) 主机名 B) 端口号 C) MAC地址 D) IP地址 (24)关于操作系统的描述中,正确的是 A) 只管理硬件资源。改善人机接口 B) 驱动程序直接控制各类硬件 C) 操作系统均为双内核结构 D) 进程地址空间是文件在磁盘的位置 (25)关于网络操作系统的描述中,错误的是 A) 文件与打印服务是基本服务 B) 通城支持对称处理技术 C) 通常是多用户、多任务的 D) 采用多进程方式以避免多线程出现问题 (26)关于Windows Server 2008 的描述中,正确的是 A) 虚拟化采用了Hyper-V技术 B) 主流CPU不支持软件虚拟技术 C) 精简版提高了安全性、降低了可靠性 D) 内置了Vmware模拟器 (27)关于Unix标准化的描述中,错误的是 A) Unix版本太多,标准化复杂 B) 出现了可移植操作系统接口标准 C) 曾分裂为POSIX和UI两个阵营 D) 统一后的Unix标准组织是COSE (28)关于操作系用产品的描述中,正确的是 A) AIX是HP公司的产品 B) NetWare是Sun公司的产品 C) Solaris是IBM公司的产品 D) SUSE Linux是Novell公司的产品 (29)在Internet中,不需运行IP协议的设备是 A) 路由器 B) 集线器 C) 服务器 D) 工作站 (30)HFC采用了以下哪个网络接入Intrenet? A) 有线电视网 B) 有线电话网 C) 无线局域网 D) 移动电话网 (31)以下哪个不是IP服务具有的特点? A) 不可靠 B) 无连接 C) 标记交换 D) 尽最大努力 (32)如果一台主机的IP地址为20.22.25.6,子网掩码255.255.255.0,那么该主机所属的网络(包括子网)为 A) 20.22.25.0 B) 20.22.0.0 C) 20.0.0.0 D) 0.0.0.0 (33)如果需要将主机域名转换为IP地址,那么可使用的协议是 A) MIME B) DNS C) PGP D) TELNET (34)在IP报头中设置“生存周期”域的目的是 A) 提高数据报的转发效率 B) 提高数据报转发过程中的安全性 C) 防止数据报在网络中无休止流动 D) 确保数据报可以正确分片 (35)在IP数据报分片后,通常负责IP数据报重组的设备是 A) 分片途径的路由器 B) 源主机 C) 分片途径的交换机 D) 目的主机 (36)某路由器收到了一个IP数据报,在对其报头进行校验后发现该数据报存在错误。路由器最有可能采用的动作是 A) 抛弃该数据报 B) 抑制该数据报源主机的发送 C) 转发该数据报 D) 纠正该数据报的错误 (37)下图为一个简单的互联网示意图。其中,路由器S的路由表中到达网络10.0.0.0的下一跳步IP地址为 A) 40.0.0.8 B) 30.0.0.7 C) 20.0.0.6 D) 10.0.0.5 (38)关于RIP协议的描述中,正确的是 A) 采用链路-状态算法 B) 距离通常用宽带表示 C) 向相邻路由器广播路由信息 D) 适合于特大型互联网使用 (39)当使用TCP进行数据传输时,如果接收方通知了一个800直接的窗口值,那么发送方可以发送 A) 长度为2000字节的TCP包 B) 长度为1500字节的TCP包 C) 长度为1000字节的TCP包 D) 长度为500 字节的TCP包 (40)在客户/服务器模式中,响应并请求可以采用的方案包括 A) 并发服务器和重复服务器 B) 递归服务器和反复服务器 C) 重复服务器和串行服务器 D) 并发服务器和递归服务器 (41)在Inteenet域名系统的资源记录中,表示主机地址的对象类型为 A) HINFO B) MX C) A D) H (42)关于POP3和SMTP的相应字符串,正确的是 A) POP3以数字开始,SMTP不是 B) SMTP以数字开始,POP3不是 C) POP3和SMTP都不以数字开始 D) POP3和SMTP都以数字开始 (43)WWW系统采用传输协议是 A) DHCP B) XML C) HTTP D) HTML (44)为了验证WWW服务器的真实性,防止假冒的WWW服务器欺骗,用户可以 A) 对下载的内容进行病毒扫描 B) 验证要访问的WWW服务器的CA证书 C) 将要访问的WWW度武器放入浏览器的可信站点区域 D) 严禁浏览器运行ActiveX控件 (45)下面哪个不是SNMP网络管理的工作方式? A) 轮询方式 B) 中断方式 C) 基于轮询的中断方式 D) 陷入制导论询方式 (46)根据计算机信息系统安全保护等级划分准则,安全要求最低的是 A) 指导保护级 B) 自主保护级 C) 监督保护级 D) 专控保护级 (47)下面属于被动攻击的是 A) 拒绝服务攻击 B) 电子邮件监听 C) 消息重放 D) 消息篡改 (48)Blowfish加密算法处理的分组长度是 A) 56位 B) 64位 C) 128位 D) 256位 (49)下面不属于公钥加密算法的是 A) RSA B) AES C) EIGamal D) 背包加密算法 (50)关于数字签名的描述中,错误的是 A) 通常能证实签名的时间 B) 通常能对内容进行鉴别 C) 必须采用DSS标准 D) 必须能被第三方验证 (51)在DES加密算法中,不使用的基本运算是 A) 逻辑与 B) 异或 C) 置换 D) 移位 (52)关于IPSec的描述中,错误的是 A) Kerberos是为Novell网络设计的 B) 用户须拥有数字证书 C) 加密算法使用RSA D) Kerberos提供会话密钥 (53)关于IPSec的描述中,错误的是 A) 主要协议是AH协议与ESP协议 B) AH协议保证数据完整性 C) 只使用TCP作为传输层协议 D) 将互联成改造为有逻辑连接的层 (54)下面哪个不是密集组播路由协议? A) DVMRP B) MOSPF C) PIM-DM D) CBT (55)下面哪种P2P网络拓扑属于混合式结构? A) Choeh B) Skype C) Pastry D) Tapestry (56)关于SIP协议的描述中,错误的是 A) 可以扩展为XMPP协议 B) 支持多种即时通信系统 C) 可以运行与TCP或UDP之上 D) 支持多种消息类型 (57)下面哪种业务属于IPTV通信类服务? A) 视频点播 B) 即时通信 C) 时移电视 D) 直播电视 (58)关于Skype特点的描述中,错误的是 A) 具有保密性 B) 高清晰音质 C) 多方通话 D) 只支持Windows平台 (59)数字版权管理主要采用数据加密、版权保护、认证和 A) 防病毒技术 B) 数字水印技术 C) 访问控制技术 D) 放篡改技术 (60)关于网络搜索技术的描述错误的是 A) 采用分布式爬行技术 B) 采用超文本匹配分析技术 C) 采用网络分类技术 D) 采用页面等级技术 二、填空题(每空2分,共40分) (1)地理信息系统的英文缩写是 【1】 。 (2)服务器运行的企业管理软件ERP称为 【2】 。 (3)IEEE 802 参考模型将 【3】 层分为逻辑链路控制子层与介质访问控制子层。 (4)红外无线局域网的数据传输技术包括: 【4】 红外传输、全方位红外传输与漫反射红外传输。 (5)虚拟局域网是简历在交换技术的基础上,以软件方式实现 【5】 工作组的计划分与管理。 (6)按网络覆盖范围分类, 【6】 用于实现几十公里范围内大量局域网的互联。 (7)以太网MAC地址的长度为 【7】 位。 (8)在Internet中,邮件服务器间传递邮件使用的协议是 【8】 。 (9)活动目录服务把域划分为OU,称为 【9】 。 (10)红帽Linux企业版提供了一个自动化的基础架构,包括 【10】 、身份管理、高可用性等功能。 (11)为了保证连接的可靠建立,TCP使用了 【11】 法。 (12)在路由表中,特定主机路由表项的子网掩码为 【12】 。 (13)一个IPv6地址为21DA:0000:0000:0000:12AA:2C5F:FE08:9C5A。如果采用双冒号表示法,那么该IPv6地址可以简写为 【13】 。 (14)在客户/服务器模式中,主动发出请求的是 【14】 。 (15)FTP协议规定:想服务器发送 【15】 命令可以进入被动模式。 (16)故障管理的主要任务是 【16】 故障和排除故障。 (17)对网络系统而言,信息安全主要包括二个方面:存储安全和 【17】 安全。 (18)进行唯密文攻击时,密码分析者已知的信息包括:要解密的密文和 【18】 。 (19)P2P网络的基本结构之一是 【19】 结构,其特点是由服务器负责记录共享的信息以及回答对这些信息的查询。 (20)QQ客户端间进行聊天有两种方式。一种是客户端直接建立连接进行聊天,另一种是用服务器 【20】 的方式实现消息的传送。

㈥ 如何自定义电脑快捷键,录制脚本

下载后解压即可,autohotkey会自动识别.ahk后缀的文档,所以新建一个txt文件,更改后缀为ahk即可作为您的快捷键包(绿色版需设置默认autohotkey打开).

以下是常见的使用场景:
场纤携笑景1:替换内容,点一两个按键就能替换任何常用内容
::xfx::感谢楼主分享!!!!!!
比如上面这个,双冒号+快捷键+双冒号+替换内容
::csdn::account{tab}12345678{ENTER}
上面的意思是:当你输入csdn时,内容自动替换为"account"+tab键+密码+回车键, 即实现了自动登录

4
场景2:快捷键,这个使用上和场景1类似,基本记住双冒号格式,就可以做任何替换操作了
下面是我经常用的一个功能,自动远毁含程登录linux服务器,这个对于做web后台开发的人员来说应该非常实隐悉用,我们经常需要远程ssh到服务器,结果没多久掉线又得重新找帐号密码输入;
下面的脚本可以一键登录,相信减少了很多工作量.

5
场景3:录制脚本(极其好用的功能)
我提供的绿色版里有一个AutoScriptWriter软件,是用来记录电脑操作,自动生成脚本的,使用方法:双击AutoScriptWriter.exe,如下图:

㈦ 安装rsync

Red Hat

Debian

Arch Linux

rsync 是一个常用的 Linux 应用程序,用于文件同步。
它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代 cp 和 mv 命令。
它名称里面的 r 指的是 remote,rsync 其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。

本机使用 rsync 命令时,可以作为 cp 和 mv 命令的替代方法,将源目录同步到目标目录。

上面命令中, -r 表示递归,即包含子目录。注意, -r 是必须的,否则 rsync 运行不会成功。 source 目录表示源目录, destination 表示目标目录。

如果有多个文件或目录需要同步,可以写成下面这样。

上面命令中, source1 、 source2 都会被同步到 destination 目录。

-a 参数可以替代 -r ,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新世悄,所以 -a 比 -r 更有用。下面的用法才是常见的写法。

目标目录 destination 如果不存在,rsync 会自动创建。执行上面的命令后,源目录 source 被完整地复制到了目标目录 destination 下面,即形成了 destination/source 的目录结构。

如果只想同步源目录 source 里面的内容到目标目录 destination ,则需要在源目录后面加上斜杠。

上面命令执行后, source 目录里面的内容,就都被复制到了 destination 目录里面,并不会在 destination 下面创建一个 source 子目录。

如果不确定 rsync 执行后会产生什么结果,可以先用 -n 或 --dry-run 参数模拟执行的结果。

上面命令中, -n 参数模拟命令执行的结果,并不真的执行命令。 -v 参数则是将结果输出到终端,这样就可以看到哪些内容会被同步。

默认情况下,rsync 只确保源目录的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持相同,并且备返尘不会删除文件。如果要使得目标目录成为源目录的镜像副本,则必须使用 --delete 参数,这将删除只存在于目标目录、不存在于源目录的文件。

上面命令中, --delete 参数会使得 destination 成为 source 的一个镜像。仿禅

有时,我们希望同步时排除某些文件或目录,这时可以用 --exclude 参数指定排除模式。

上面命令排除了所有 TXT 文件。

注意,rsync 会同步以"点"开头的隐藏文件,如果要排除隐藏文件,可以这样写 --exclude=".*" 。
如果要排除某个目录里面的所有文件,但不希望排除目录本身,可以写成下面这样。

多个排除模式,可以用多个 --exclude 参数。

多个排除模式也可以利用 Bash 的大扩号的扩展功能,只用一个 --exclude 参数。

如果排除模式很多,可以将它们写入一个文件,每个模式一行,然后用 --exclude-from 参数指定这个文件。

--include 参数用来指定必须同步的文件模式,往往与 --exclude 结合使用。

上面命令指定同步时,排除所有文件,但是会包括 TXT 文件。

rsync 除了支持本地两个目录之间的同步,也支持远程同步。它可以将本地内容,同步到远程服务器。

也可以将远程内容同步到本地。

rsync 默认使用 SSH 进行远程登录和数据传输。
由于早期 rsync 不使用 SSH 协议,需要用 -e 参数指定协议,后来才改的。所以,下面 -e ssh 可以省略。

但是,如果 ssh 命令有附加的参数,则必须使用 -e 参数指定所要执行的 SSH 命令。

上面命令中, -e 参数指定 SSH 使用2234端口。

除了使用 SSH,如果另一台服务器安装并运行了 rsync 守护程序,则也可以用 rsync:// 协议(默认端口873)进行传输。具体写法是服务器与目标目录之间使用双冒号分隔 :: 。

注意,上面地址中的 mole 并不是实际路径名,而是 rsync 守护程序指定的一个资源名,由管理员分配。

如果想知道 rsync 守护程序分配的所有 mole 列表,可以执行下面命令。

rsync 协议除了使用双冒号,也可以直接用 rsync:// 协议指定地址。

六、增量备份
rsync 的最大特点就是它可以完成增量备份,也就是默认只复制有变动的文件。

除了源目录与目标目录直接比较,rsync 还支持使用基准目录,即将源目录与基准目录之间变动的部分,同步到目标目录。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest参数用来指定同步时的基准目录。

上面命令中,--link-dest参数指定基准目录/compare/path,然后源目录/source/path跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录/target/path。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

下面是一个脚本示例,备份用户的主目录。

上面脚本中,每一次同步都会生成一个新目录 ${BACKUP_DIR}/${DATETIME} ,并将软链接 ${BACKUP_DIR}/latest 指向这个目录。下一次备份时,就将 ${BACKUP_DIR}/latest 作为基准目录,生成新的备份目录。最后,再将软链接 ${BACKUP_DIR}/latest 指向新的备份目录。

转自 阮一峰的网络日志:rsync 用法教程

㈧ Linux下数据备份命令scp、rsync和后台运行

scp和rsync 均可实现文件的复制,但相比较,scp占用系统资源较小,rsync速度较快。当小文件众多时,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。可根据需要这俩选其一实现文件复制。

scp 是secure 的缩写,scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。
可以实现本地文件复制到远程服务器,也可以将远程文件复制到本地。

rsync 是remote sync的缩写。使用rsync备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已存在的数据和新数据的差异(默认规则是文件大小或修改时间有差异),只有数据不相同时才会把不相同的部分覆盖。在仅作增量数据的时比scp灵活。

一般CentOS默认安装rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安装。

单个冒号和双冒号的区别 :使用rsync在远程传输数据前,是需要进行登陆认证的,这个过程可使用ssh协议也可以使用rsync协议完成。单冒号(:)使用的是ssh协议;双冒号(::)使用的是rsync协议。

默认情况下,rsync只确保源文件的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持不同,并且不会删除文件。如果要使目标目录成为源目录的镜像副本,则使用--delete选项。可删除只存在目标目录,不存在于源目录的文件。

增量备份算是一个经常使用的场景了。两台服务器之间进行文件定期备份,无需所有文件都一遍,仅复制有变动的文件。

具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。

--link-dest 参数用来指定同步时的基准目录。

上面命令中, --link-dest 参数指定基准目录 /compare/path ,然后源目录 /source/path 跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录 /target/path 。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。

一般服务器之间复制文件都比较大,为防止误操作,最好在后台运行。但因为需要和远程服务器之间的ssh通讯多是需要密码的,所以不能直接使用nohup 放置于后台。无论是scp还是rsync都可操作如下:

后台和前台任务的切换

scp不支持断点续传,挂起scp进程可能导致数据缺失。倾向于使用rsync。

如果有其他任务需要使用nohup后台运行,但执行时却忘记了使用nohup,也可参照此方法进行设置。

参考:1. Linux之scp命令及后台运行scp

㈨ 树莓派A➕为什么没有网络接口可以用网络吗在线等急

你好,为纯答了减轻重量,树莓派A+只保留了一个USB接口。但是他其实是可以上网的,而且是无线网络配置。首先你要购买硬件无线网卡。然后配置无线网卡。进入Linux命令行之后,直接输入sudo nano /etc/network/interfaces打开树莓派网络配置文件。进入interface文件,我们可以看到默认配置为dh cp方式。然后你就要根据你的网络环并返境设置网络地址。把原来内容全部删掉。输入auto ethiface eth0 inet static。再输入静态ip地址address。网络掩码net mask。做蔽慧和网关gateway这个具体格式,你可以在网络上搜一下。然后输入双冒号wq保存。都可以连接无线网络了。

㈩ 如何获取PHP命令行参数

如何获取PHP命令行参数

使用 PHP 开发的同学多少都会接触段并过 CLI 命令行。经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET 、 POST 一样为这些命令行脚本提供参数。比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据。这类需求应该非常常见,那么,我们都是如何来接收这些命令行的参数的呢?今天,就来介绍一下这方面的内容。

$argv 获得所有空格分隔的参数列表

这个变量估计是大家用得比较多的一个接参变量了。它是 PHP 为我们准备好的一个固定变量,目的就是获取传递给脚本的参数数组。

print_r($argv); // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd // Array // ( // [0] => 如何获取PHP命令行参数.php // [1] => --a=1 // [2] => -b=2 // [3] => -c=3 // [4] => -d=4 // [5] => --e=5 // [6] => ccc // [7] => ddd // )

这个数组是以参数间隔的空格进行分隔的。第1个元素是当前运行的脚本文件名,也就是说,不管有没有参数,这个变量一定会有一个 $argv[0] 表段燃颤示的是当前的脚本文件名。

在日常的开发需求中,其实使用这个变量就已经够用了。但是这明显不会是我们今天的主题,大家注意到上面的代码中我们有很多参数是 -x=xxx 的形式,这种形式的参数是不是和 Linux 的命令选项非常像,没错,这就是我们今天要重点介绍的:从命令行参数列表中获取选项。

getopt() 从命令行参数列表中获取选项

其实就是这样一个简单的函数,我们就可以像 Linux 的命令选项一样获取指定的命令值。而且不是像 $argv 按空格进行分隔,命令选项函数会将这些命令选项封装成数组,组成以选项名为键,以等号后面的内容为值的数组,更加方便我们的使用。

// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:')); // Array // ( // [b] => 2 // [c] => 3 // [d] => 4 // )

是不是很神奇,而且非常直观吧,我们直接就拿到了 b 、 c 、d 的内容并且是格式非常清晰的键值数组形式。有同学要问了,a 和 e 呢?还有后面的 ccc 、 ddd 呢?

首先要说明的是,ccc 和 ddd 不是标准的选项参数,也就是说,这个函数接收的内容是以 - 开头的选项,所以 ccc 和 ddd 不会在这里输出,并且需要注意的是,非选项参数会中断选项参数的获取,在 ccc 之后如果继续添加 - 开头的选项也是无法获取到的,这个我们后面还会看到。而 -- 开头的选项参数呢?我们直接看下面的长选项功能。

长选项 // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [e] => 5 // )

没错,getopt() 函数的第二个参数就是定义这种 -- 开握败头的长选项的,而且需要注意的是,第一个参数是字符串类型,第二个长选项参数是数组类型的。那么我们把它们结合起来,就当然可以获取到全部的参数信息啦!

// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('a:b:c:d:e:f:', ['a:','b:','c:','d:','e:','f:'])); // Array // ( // [a] => 1 // [b] => 2 // [c] => 3 // [d] => 4 // [e] => 5 // )

OK,参数选项获取没问题了吧,细心的同学肯定又发现了一个问题,这个 getopt() 函数的参数中定义的选项名称后面为啥都要加个冒号?这就涉及到我们的冒号规则了,请直接往下看。

冒号规则

getopt() 的前两个参数都支持一套关于选项获取的规则:

单独的字符(不接受值) 后面跟随冒号的字符(此选项需要值) 后面跟随两个冒号的字符(此选项的值可选)

我们还是直接通过代码来看一下。

// 一 // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd print_r(getopt('abcdef')); // Array // ( // [b] => // [c] => // [d] => // ) // 二 // php 如何获取PHP命令行参数.php -f print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // ) // 三 // php 如何获取PHP命令行参数.php -f 22 print_r(getopt('f::')); // Array // ( // [f] => // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // ) // 四 // php 如何获取PHP命令行参数.php -f=22 print_r(getopt('f::')); // Array // ( // [f] => 22 // ) print_r(getopt('f:')); // Array // ( // [f] => 22 // )

这一段比较长,我们一块一块来看。首先是不带冒号的 abcdef 写法,返回的数组中都包含键,但没有值,对应上面的规则就是不接受这些参数选项的值,你传了这些参数选项也是只有键名而内容是空的。

第二段是定义了一个参数,但是不给值,这时,双冒号 :: 会有键名,而单冒号 : 则什么都没有。

第三段是空格形式的选项值,双冒号 :: 有键名但没有值,单冒号 : 键值正常。

第四段是等号 = 形式的选项值,单双冒号都正常接收到键值。

选项参数中断

上文中我们提到过参数中断的问题,就是在选项参数之后如果有一个非选项参数的参数出现,getopt() 就无法再获取到这个非选项参数后面的所有内容了。

// php 如何获取PHP命令行参数.php -f=22 aa -b=33 // 选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃。 // Array // ( // [f] => 22 // )

通过这个测试可以清晰的看出后面的 b 选项无法获取。这时,如果我们想知道选项参数在什么地方或者因为哪个参数而中断的话,就可以使用 getopt() 函数的第三个参数了。

// php 如何获取PHP命令行参数.php -f=22 aa -b=33 $optind = null; getopt('f:b:', [], $optind); echo $optind, PHP_EOL; // 返回中断位置的索引值,2 echo $argv[$optind], PHP_EOL; // 等同于 $argv 的索引顺序,aa

注释已经写得很清晰了,第三个参数会回调一个参数选项中断位置的索引,并且这个索引是和 $argv 的索引顺序位置一致的。

总结

说实话,在没看文档前真的只知道有一个 $argv 变量可以用来获取命令行脚本的参数,通过这次学习才发现原来还有一个这么强大的选项参数函数。学习的过程非常简单,如何运用到真实的项目中才是关键所在,加油学习,努力实践吧!

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96PHP%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0.php

阅读全文

与linux双冒号相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接