技术标签: linux
# uname -a # 查看内核/操作系统/CPU信息
# cat /proc/version # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# dmesg | grep IDE # 查看启动时IDE设备检测状况网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置(centos7版本以下)
# firewall-cmd --list-all # 查看防火墙规则(centos7版本及以上)
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态用户(q键退出当前状态)
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务服务
# chkconfig –list # 列出所有系统服务(centos7版本以下)
# systemctl list-unit-files # 列出所有系统服务(centos7版本及以上)
# chkconfig –list | grep on # 列出所有启动的系统服务程序(centos7版本以下)
# systemctl list-units --type=service #列出所有启动的系统服务程序(centos7版本及以上)
# rpm -qa # 查看所有安装的软件包
# rpm -qa | grep <软件包名> # 查看是否安装了某rpm包软件
# Pwd # 该命令用于显示用户当前所在的工作目录位置
# Cd # 该命令用于切换工作目录
# Ls # 列表显示目录
-l # 以长格式显示文件或目录的详细信息
-a # 显示所有文件,包括隐藏文件
-d # 显示目录本身的属性而不是显示目录的内容
-h # 以K,M,G等单位显示文件大小提高可读性
# Mkdir # 创建目录 -p创建多个目录
# Touch # 建立空文件或修改时间戳
# rm # 删除文件或目录
-r # 删除目录时必须使用此选项表示递归删除整个目录
-f # 强制删除,不需要用户确认
# cp # 复制文件或目录
-r # 复制目录必须使用此选项表示递归复制所有文件及子目录
# mv # 移动文件或目录
# cat # 显示文件内容
-n :-n或 --number # 由 1 开始对所有输出的行数编号
# more/less # 分页显示文件内容
# head/tail # 查看文件开头或末尾的部分内容
# wc # 文件内容统计
-l # 统计行数
# find #文件或目录查找
-name # 按名称查找
-type # 按类型查找
-size # 按大小查找
# grep #文件内容查询命令
-v # 反转查找即输出与查找条件不相符的行
-I # 忽略大小写
# which # 查找外部命令所对应的程序文件
# ln # 为文件或目录建立链接
-s # 创建软链接
# alias # 设置命令别名
# history # 查看历史命令
# man/help # 查看命令帮助手册
63 lrwxrwxrwx 1 hawkeye users 6 Jul 18 09:41 nurse2 -> nurse1
问题一:要完整显示如上文件列表信息,应该使用什么命令。请写出完整的命令行。
问题二:上述文件列表内容的第一列内容“63”是什么含义?
问题三:上述文件列表内容的第二列内容“lrwxrwxrwx”中的“l”是什么含义?对于其它类型的文件或目录等还可能会出现什么字符,它们分别表示什么含义?
问题四:上述文件列表内容的第二列内容“lrwxrwxrwx”中的第一、二、三个“rwx”分别代表什么含义?其中的“r”、“w”、“x”分别表示什么含义?
问题五:上述文件列表内容的第三列内容“1”是什么含义?
问题六:上述文件列表内容的第四列内容“hawkeye”是什么含义?
问题七:上述文件列表内容的第五列内容“users”是什么含义?
问题八:上述文件列表内容的第六列内容“6”是什么含义?
问题九:上述文件列表内容中的“Jul 18 09:41”是什么含义?
问题十:上述文件列表内容的最后一列内容“nurse2>nurse1”是什么含义?
答:
问题一 |
ls –il nurse2 |
问题二 |
为文件nurse2的索引节点号 |
问题三 |
表示文件类型,该文件为符号链接文件 |
其他文件类型有:-普通文件,d目录,b特殊块文件,c特殊字符文件 |
|
问题四 |
分别表示对文件nurse2的所有者、同组成员、其他人员都具有读/写/执行权限 |
r/w/x分别表示读/写/执行权限 |
|
问题五 |
表示文件nurse2的链接数 |
问题六 |
表示文件nurse2的所有者 |
问题七 |
表示文件nurse2的属组 |
问题八 |
表示文件nurse2的字节数 |
问题九 |
表示文件nurse2被创建的日期和时间 |
问题十 |
表示nurse2文件被符号链接到nurse1文件 |
答:a.LUNIX是一个分时、多用户、多任务的系统;
b、内核和核外程序的有机结合;
c、良好的用户界面;
d、树形结构的文件系统;
e、文件和设备的统一处理;
f、丰富的应用程序;
g、系统用C语言写成,具有良好的可移植性。
答:可以从软盘或硬盘引导Linux。用GRUB引导。
也可以回答为:命令行启动模式和图形界面启动模式。
答:命令模式,插入模式,末行模式。不论任何模式按下ESC即进入命令模式 在命令模式下i,o,a或insert健就可以切换到插入模式 在命令模式下按:即可以进入末行模式。
答:图形安装或文本终端安装。
答:管道就是把一个程序(进程)的输出连接到另一个程序(进程)的输入。
答:linux下有7个运行级(Linux7版本以下)
# 0 - 停机 ,机器关闭。
# 1 - 单用户模式 。就像Win9x下的安全模式类似
# 2 - 多用户,但是没有NFS 进入无网络服务的多用户模式
# 3 - 完全多用户模式 ,是标准的运行级。
# 4 - 没有用到 ,一般不用。
# 5 - X11 ,进到X Window系统了。
# 6 - 重新启动 ,运行init 6机器就会重启
这些运行级别是通过init调用不同的脚本来切换的。
CentOS 7 运行级别的切换
由命令行级别切换到窗口级别的命令未变:init 5或startx
由窗口级别切换到命令行级别的命令未变:init 3
新版本的运行级别都定义在 /lib/systemd/system下:
运行级别 |
systemctl target |
0 |
poweroff.target |
1 |
rescure.target |
2 |
multi-user.target |
3 |
multi-user.target |
4 |
multi-user.target |
5 |
graphical.target |
6 |
reboot.target |
答:在Linux系统安装中,GRUB 已经在 MBR 中写入引导代码,使得 RHEL 获得系统的控制权
引导代码加载启动分区 boot 或在 / 分区中加载boot 目录,读取第二阶段引导代码
第二阶段引导代码加载系统内核
内核在引导过程中加载系统所需的模块
内核最后执行/sbin/init程序(系统根进程)
init根据/etc/inittab文件,运行系统进行初始化程序(/etc/rc.d/rc.sysinit)
rc.sysinit根据/etc/inittab决定操作系统运行的级别,并且根据运行级别启动相应的服务,然后根据/etc/fstab加载系统分区
标准运行级别通长在最后运行本地初始化脚本 (/etc/rc.d/rc.local)
显示登录信息
答:利用vi编辑器修改/etc/fstab文件 在最下面一行增加所挂载文件、所要挂载到的目录、文件类型,使用mount -a自动挂载
答:Shell是人机交互用的一个程序。其实就是字面意思--壳. 一个系统有内核(Kernel)自然就有外壳(Shell). 在 Linux 上广义的 Shell 就是与用户交互的界面, 图形化界面是 Shell, 命令行界面也是 Shell. 狭义上的 Shell 就是 Linux 上的命令行界面. 一般发行版上的命令行界面是 bash, 而 debian 的是 dash. 下面的讨论基于侠义的 Shell.
Shell 是用来执行计算机程序的. 例如执行 mkdir 就是创建一个文件夹, 执行 touch 就是创建一个文件. 执行 ps 就是查看进程信息. 其中 mkdir, touch, ps 都是用 C 语言编写编译后的程序
答:当系统执行的任务临时要求大内存而得不到满足时,将部分不活跃的内存内容移到硬盘上的一个缓存区域,这个专门预留的区域就是swap分区(相当于Windows的页面文件)。内存够用的情况下,如果不用睡眠功能,则swap分区可以小一点,甚至没有;如果要使用睡眠功能,则swap分区尽量不要比内存小。
Linux通过i节点表将文件的逻辑结构和物理结构进行转换。i节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息,在i节点表中最主要的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查询该文件名对应的项,由于此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
在Linux中启动一个进程有手工启动和调度启动两种方式:
(1)手工启动用户在输入端发出命令,直接启动一个进程的启动方式。可以分为: ①前台启动:直接在SHELL中输入命令进行启动。 ②后台启动:启动一个目前并不紧急的进程,如打印进程。
(2)调度启动系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
经常使用的进程调度命令为:at、batch、crontab。
有三种方法:源代码安装,rpm包安装,yum安装
源码安装:通过源码安装,用户可以获得最新的应用程序,可以定制灵活,丰富的功能,而且使软件可以跨越计算机平台,在所有版本的Linux系统中都能使用。但是这种安装方式过于复杂,耗时又长,对用户的软件开发能力要求也比较高。
rpm软件包只能在RPM机制的Linux操作系统中使用,如RHEL,Fdeora,Suse等,RPM安装包现在基本成为Linux系统中软件安装包事实上的标准但是RPM也有一个很大的缺点,即RPM软件包之间存在复杂的依赖关系。在多数情况下,一个软件都是由多个相互依赖的RPM软件包组成,也就是安装一个软件需要使用到许多软件包,而大部分的RPM又有相互之间的依赖关系。例如安装A软件包需要B软件包的支持,安装B需要C的支持
yum是一个基于RPM却胜于RPM的软件管理工具,它的最大优点是可以自动解决RPM软件包的依赖性问题,从而可以更轻松的管理Linux系统中的软件。
利用rpm安装首先必须进入存放rpm软件包的目录.
rpm -ivh 软件包名(-i安装软件包,-v显示安装过程,-h显示安装进度,rpm每2%就会显示一个#号)
rpm -e 软件名(删除一个已安装的软件,当删除成功时,没有任何提示;当再次删除时,会提示软件包没有安装)
准备RHEL6镜像从光盘引导在引导界面选择第一项“Install or upgrade an existing system”然后检查光盘兼容性这里选择Skip跳过安装语言选择中文简体键盘选择美国英语式存储设备选择基本存储设备弹出存储设备警告提示是否要将整个硬盘重新分区格式化这里选择是定义主机名和时间为用户设置密码将硬盘分区然后进行软件包的定制最后完成安装。
如果是合法的RHEL用户会自动使用RHN作为默认yum源,也就是说安装的所有软件都可以直接来自红帽官网。但这要缴纳一定的费用,所以更多的情况下需要自己来配置yum源,由于在RHEL6的系统光盘中已经集成了绝大多数应用软件的rpm包因此一般可以指定系统光盘作为yum源,或者是指定网络中的某台ftp或web服务器作为yum源
yum list 列出软件清单
yum info 查看软件包的信息
yum install 安装软件
yum remove 卸载软件
yum clean all 清除yum缓存
RHEL、Centos、ubuntu, Debian, suse、目前中国企业用的比较多的linux操作系统。
首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。
系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。
(1)对硬盘重新分区。
(2)启动Linux系统(用光盘、软盘等)。
(3)建立Linux主分区和交换分区。
(4)用setup命令安装Linux系统。
(5)格式化Linux主分区和交换分区
(6)安装Linux软件包
(7)安装完毕,建立从硬盘启动Linux系统的LILO启动程序,或者制作一张启动Linux系统的软盘。重新启动Linux系统。
静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。
动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。
进程查看的命令是ps和top。
进程调度的命令有at,crontab,batch,kill。
分类:超级用户、普通用户、虚拟用户
区别:超级用户:对本主机有至高无上的完全权限
普通用户:由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只有在用户自己的宿主目录中有完全权限
虚拟用户:不能登陆系统,主要是为了方便系统管理,用于维持系统或某个程序的正常运行,大多是在安装系统及部分应用程序时自动添加的。
成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
使用命令fsck对受到破坏的文件系统进行修复。fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。
在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。i节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。
链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。
磁盘簇(或i节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。
网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。
/dev/had5 /mnt/dosdata msdos defaults, usrquota 1 2
请解释其含义。
(1)第一列:将被加载的文件系统名;
(2)第二列:该文件系统的安装点;
(3)第三列:文件系统的类型;
(4)第四列:设置参数;
(5)第五列:供备份程序确定上次备份距现在的天数;
(6)第六列:在系统引导时检测文件系统的顺序。
(1)MaxKeepAliveRequests 200
(2)UserDir public_html
(3)DefaultType text/plain
(4)AddLanguare en.en
(5)DocumentRoot“/usr/local/httpd/htdocs”
(6)AddType application/x-httpd-php.php.php.php4
答:
(1)允许每次连接的最大请求数目,此为200;
(2)设定用户放置网页的目录;
(3)设置服务器对于不认识的文件类型的预设格式;
(4)设置可传送语言的文件给浏览器;
(5)该目录为Apache放置网页的地方;
(6)服务器选择使用php4。
/etc/rc.d/rc.inet1:
……
ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1
ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1
(1)ROUTE应改为小写:route;
(2)netmask 255.255.0.0应改为:netmask 255.255.255.0;
(3)缺省路由的子网掩码应改为:netmask 0.0.0.0;
(4)缺省路由必须在最后设定,否则其后的路由将无效。
解释内容:
(1)route:建立静态路由表的命令;
(2)add:增加一条新路由;
(3)-net 192.168.1.0:到达一个目标网络的网络地址;
(4)default:建立一条缺省路由;
(5)gw 192.168.0.101:网关地址;
(6)metric 1:到达目标网络经过的路由器数(跳数)。
(1)port 1080 (2)UserDir userdoc
(3)DocumentRoot “/home/htdocs”
(4) Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
allow from 192.168.1.5
(5)Server Type Standlone
Apache服务器配置行含义如下:
(1)将apache服务器的端口号设定为1080;
(2)设定用户网页目录为userdoc;
(3)设定apache服务器的网页根目录:/home/htdocs;
(4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问;
(5)定义apache服务器以独立进程的方式运行。
(1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。
(2)常用的ftp文件传输命令为:put、get、bye等
(1)Linux文件的基本权限分别是owner/group/others三种身份各有的read/write/execute权限的组合。如文件的权限字符为[-rwxrwxrwx],这九个权限是每三个一组构成,可以使用数字来代表各个权限,各权限对应的分数如下:
1)r:4
2)w:2
3)x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如,当权限为[-rwxrwx---],分数如下:
1)owner = rwx = 4+2+1 = 7
2)group = rwx = 4+2+1 = 7
3)others= --- = 0+0+0 = 0
因此根据上述权限,设定权限的变更时,该文件的权限数字就是770
(2)
1)采用数字法更改文件属性。
例如,执行chmod 765 .bashrc,则文件.bashrc的权限字符为[-rwxrw-r-x]。
2)采用符号法更改文件属性
a.u表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
b.+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
例如,chmod ugo+rw .bashrc, chmod a+rw .bashrc, chmod a+r file1.txt
RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写。它作为一个软件包管理工具,它管理着系统已安装的所有RPM程序组件的资料。我们也可以使用RPM来卸载相关的应用程序。在Linux系统中使用RPM管理软件包安装最为简便。
rpm常用选项的说明见下表。
rpm常用选项的说明
选项 |
说明 |
a |
查询所有的软件包 |
e |
删除指定的软件包 |
h |
软件包安装时列出标记 |
i |
显示软件包的相关信息 |
l |
显示软件包的文件列表 |
q |
使用询问模式,当遇到任何问题时,rpm指令会先询问用户 |
v |
显示指令执行过程 |
使用rpm命令直接安装软件包mypackage。命令如下:
# rpm -ivh mypackage
使用rpm命令强制安装软件包mypackage(忽略报错)。命令如下:
# rpm --force -ivh mypackage
使用rpm命令查询是否安装mypackage。命令如下:
# rpm -ql mypackage
使用rpm命令删除mypackage(如果存在mypackage)。命令如下:
# rpm -e mypackage
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
Yum常用命令如下:
安装软件(以foo-x.x.x.rpm为例):yum install foo-x.x.x.rpm
删除软件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升级软件:yum upgrade foo或者yum update foo
查询信息:yum info foo
搜索软件(以包含foo字段为例):yum search foo
显示软件包依赖关系:yum deplist foo
(1)下载MySQL安装包文件。
(2)卸载CentOS-7中MySQL相关的依赖。
(3)分别安装MySQL服务端和客户端,命令如下:
# rpm -ivh MySQL-server-5.1.73-1.glibc23.x86_64.rpm
# rpm -ivh MySQL-client-5.1.73-1.glibc23.x86_64.rpm
(4)启动MySQL服务,命令如下:
# service mysql start
(5)登录MySQL,命令如下(初次使用时MySQL是没有密码的):
# mysql –u root
(6)修改root账号的密码为“123456”,命令如下:
set password for ‘root’@’localhost’ =password(‘123456’);
(7)支持root用户允许远程连接MySQL数据库,命令如下:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
(1)启动Tomcat:service Tomcat start
(2)停止Tomcat:service Tomcat stop
(3)重启Tomcat:service Tomcat restart
1、贮藏在切换分支时,要确保该分支已经提交。如果当前develop分支可以提交,无疑是最好的选择,但是,如果当前不能提交呢?此时我们可以使用贮藏功能。贮藏功能就是对现在的更改进行备份,注意仅仅是对更改进行备份。使用贮藏功能后,会让当前分支的工作区恢复到上一次提交的时候,从而使当前工作区变得干净。这叫做贮藏现场。现在我们来使用一下这个功能,首先切换到develop分支,然后修改文件内容,并添加一个新文件。贮藏成功之后发现新建的文件还在,说明新文件没有被贮藏,贮藏成功的只是被修改的文件。出现这种情_sourcetree贮藏的作用
JSON格式:JSONObject jsonObject = new JSONObject(); jsonObject.put("Action", "action"); jsonObject.put("UserId","11"); jsonObject.put("MsgID", "msgid");private static Stri_postmethod.getresponsebody
echarts,柱状图,数据为0时,不显示0 1: 数据传入时判断如果为0替换成“”。2: series->label–>formatter里可以配置(回调函数)formatter: function(params) {if (params.value > 0) {return params.value;} else {return ‘’;}},亲测有效,第二...
Shawn之前做过桌面客户端,使用过:Delphi、C++ Builder、Visual C++ MFC、Qt等开发工具,后来转做手机游戏开发,对桌面开发也就越来越少。最..._cocos creator eleectron
React中的高阶组件创建方式:创建一个容器组件并把源组件作为参数传入,给容器组件增加一点通用功能后在容器组件中使用源组件本质是减少代码重复,缺点是给阅读者增加了一点复杂性高阶组件很容易让人联想到高阶函数的概念,一个是以组件作为参数返回组件,一个是以函数作为参数返回函数高阶组件的实现不像是装饰器模式,因为装饰器会修改源组件高阶组件的实现是一种工厂模式,依据不同的参数返回不同的组件由于..._react高阶组件是装饰器模式吗
【华人学者风采】李飞飞,美国斯坦福大学红杉讲席教授,美国国家工程院院士 ,以人为本人工智能研究院(HAI)院长,AI4ALL联合创始人及主席,Twitter公司董事会独立董事。主要研究方向为机器学习、计算机视觉、认知计算神经学。在顶级期刊和会议上发表了多篇文章,包括Nature,PNAS,Journal of Neuroscience,CVPR,ICCV,NIPS,ECCV,ICRA,IROS,RSS,IJCV,IEEE-PAMI等。2020年发表论文:18发表论文:401论文引用数:106567_红衫讲席教授
上一篇介绍了一个小的测试用例,这一篇来讲一讲Web页面中元素定位的问题。1.name和id其中使用到了name和id定位。但有时候由于开发人员的疏忽或者开发习惯的问题,会漏写name或者id属性。或者有时候如果页面很庞大,元素很多,也有可能出现两个一不小心定义了两个重复的id的情况。这样就无法进行唯一定位了。2.xpath前面所说的id和name属性就相当于是一个人的姓名。你可以通过姓名找到他。但是
Java并发编程:并发容器之CopyOnWriteArrayList(转载) 原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后
实验于Win101.首先双击安装包,下一步。2.公共JRE根据需求可选可不选3.点击下一步后,等待安装即可。4.jdk1.9目录结构说明:没有名为jre的子目录bin 目录包含所有命令conf 目录包含用户可编辑的配置文件,例如以前位于jre\lib目录中的.properties和.policy文件include 目录包含要在以前编译本地代码时使用的C/C++头文件..._jdk1.9
在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。 宏定义中允许包含两行以上命令的情形,此时必须在最右边加上"\"且该行"\"后不能再有任何字符,连注释部分都不能有,下面的每行最后的一定要是"\","\"后面加一个空格都会报错,更不能跟注释。 我们来看一个例_应输入单行注释或行尾
ECSHOP的后台有时会提醒示:“no_license点击查看”,如下图。点击打开ecshop官方论坛。通过以下方法可以删除提示:打开 admin/templates/start.htm 文件,删除以下代码:
一:安全角色Microsoft Dynamics 365中的安全角色是各种实体的特权和访问级别矩阵。 它们根据其功能分组在不同的选项卡下。 这些组包括:核心记录,营销,销售,服务,业务管理,服务管理,定制和自定义实体。特权权限是描述用户可以在CRM系统中执行的操作的基本安全单元。 这些不能添加或删除,只能修改。Microsoft Dynamics 365中每个实体的共同权限如下:Create — Allows the user to add a new recordRead — Allo.._dynamic crm的权和限