https://www.bilibili.com/video/BV1dW411M7xL?from=search&seid=6818366384308552946
免费,开源,高效,稳定,处理高并发非常强悍
swap分区:交换分区,当系统内存不足时,会暂时使用swap分区
/bin:Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv: 该目录存放一些服务启动之后需要提取的数据。
/sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
XShell,XFtp
5yy 复制下面5行, p 粘贴
dd 删除行
https://www.linuxidc.com/Linux/2020-03/162522.htm
使用tab键进行自动完成
使用Tab键进行自动完成
也可以在完成命令时使用Tab键。
切换回上一个工作目录 cd -
返回主目录 cd ~
但是,您也可以仅使用cd返回主目录:cd
列出目录的内容 ll
在一个命令中运行多个命令
假设您必须一个接一个地运行几个命令。您是否在等待第一个命令完成运行,然后执行下一个命令?
那么,您可以使用;
分隔符。这样,您可以在一行中运行许多命令。无需等待先前的命令完成后再执行其他任务。
command_1; command_2; command_3
仅在上一个命令成功的情况下,才能在一个命令中运行多个命令
在上一个命令中,您了解了如何在一个命令中运行多个命令以节省时间。但很多时候你必须确保命令不会失败才能执行下一条命令,那怎么半?
比如您要构建代码,然后在构建成功的情况下才接着运行make。
在这种情况下,可以使用&&
分隔符。 &&确保下一条命令仅在上一条命令成功执行时运行。
command_1 && command_2
此命令的一个很好的例子是当您使用sudo apt update && sudo apt upgrade
升级系统时。
轻松搜索您使用过的命令
只需使用ctrl + r键即可启动反向搜索并键入命令的某些部分。它将查询历史记录,并向您显示与搜索词匹配的命令。
ctrl + r 搜索词
默认情况下,它将仅显示一个结果。要查看更多与您的搜索字词匹配的结果,您将不得不反复使用ctrl + r。要退出反向搜索,只需使用Ctrl + C。
在命令历史记录中进行反向搜索
解除Linux终端意外冻结的Ctrl + S
在很多类Unix 的系统上,Ctrl-S 都有特殊的含义:它会“冻结”终端(它曾经被用来暂停快速滚动)。因为“保存”一般也是用这个快捷键,所以经常会有人不假思索地按下这个快捷键,结果大多数人都会被搞糊涂(我也经常犯这个错误)。解冻终端是用Ctrl-Q,所以如果你忽然发觉终端看起来被冻结了,试一下Ctrl-Q,看能不能释放它。
移至行首或行尾
假设您正在键入一个长命令,并且在途中您意识到必须在开始时进行一些更改。 您将使用几次向左键击移动到行的开头。 并且类似地进行到该行的末尾。
当然,您可以在此处使用Home和End键,但是也可以使用Ctrl + A
转到行的开头,并使用Ctrl + E
转到结尾。
实时读取日志文件
在需要在应用程序运行时分析日志的情况下,可以将tail命令与-F选项一起使用。
tail -F linuxidc_log
等同于--follow=name --retry
,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪。
读取压缩日志而不解压缩
服务器日志通常被gzip压缩以节省磁盘空间。这给分析日志的开发人员或系统管理员带来了一个问题。您可能必须将其scp到本地,然后提取它来访问文件,因为有时您没有提取日志的写权限。
值得庆幸的是,在这种情况下,z命令可以帮助您。 z命令提供了用于处理日志文件(例如less,cat,grep等)的常规命令的替代方法。
这样您就可以使用zless,zcat,zgrep
等命令查看压缩包的内容,甚至不必显式提取压缩文件。
使用 less 读取文件
less -N linuxidc.txt
//按下v键来编辑文件
//退出编辑器后,你可以继续用less浏览了
您可以在更少的范围内搜索字词,按页移动,高亮与行号等。
使用!$
重新使用上一个命令中的最后一项
更好的方法您可以使用使用alt + . 。 在最后一个命令的选项之间来回移动的次数。
用!!
重用当前命令中的上一个命令。
您可以使用!!调用前面的整个命令。当您必须运行一个命令并意识到它需要root特权时,这一点特别有用。
一个快速 sudo !! 省去了很多击键。
使用别名来修正错别字
您可能已经知道Linux中的别名命令是什么。你能做的是,用它们来修正打字错误。
例如,您可能经常将grep输入为gerp。如果您以这种方式在您的bashrc中放置一个别名:
alias gerp=grep
这样,您无需再次输入命令。
在Linux终端中复制粘贴
这一点有点模棱两可,因为它取决于Linux和终端应用程序。但通常,您应该能够使用以下快捷键复制粘贴命令:
选择要复制的文本,然后右键单击以粘贴(在Putty和其他Windows SSH客户端中有效)
选择要复制的文本,然后单击鼠标中键(滚动按钮)以进行粘贴
Ctrl + Shift + C
表示复制,Ctrl + Shift + V
表示粘贴
终止正在运行的命令/进程
这可能太明显了。如果有一个命令正在运行运行,并且您想退出该命令,则可以按Ctrl + C
停止该正在运行的命令。
清空文件而不删除它
如果只想清空文本文件的内容而不删除文件本身,则可以使用类似于以下命令:
> 文件名
查找是否有包含特定文本的文件
在Linux命令行中有多种搜索和查找方法。但是,当您只想查看是否有包含特定文本的文件时,可以使用以下命令:
grep -Pri
要搜索的字符串 路径
精通find命令。《如何使用find命令在Linux中查找文件》 见 https://www.linuxidc.com/Linux/2018-07/153205.htm
对任何命令都可使用帮助命令(help)
比如bc命令的帮助:bc -help
useradd [-d 指定目录/ -g 用户组名] 新的用户名
(不指定目录则默认创建在/home/目录下)passwd 用户名
userdel [-r] 用户名
(-r 删除用户及用户家目录)id 用户名
su - 用户名
groupadd 组名
grouodel 组名
usermod -g 用户组 用户名
mkdir [-p] 目录
(-p创建多级目录)rmdir 目录
(只能删除空文件目录)(\)cp [-r] 文件 路径
(\ 表示强制覆盖,-r 复制整个目录)cat -n 文件名 | more
(-n 显示行号,"|" 管道符,more 分页显示)more 常用操作命令
指令 作用 Enter 向下n行,需要定义。默认为1行 Ctrl+F 向下滚动一屏 空格键 向下滚动一屏 Ctrl+B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 V 调用vi编辑器 !命令 调用Shell,并执行命令 q 退出more
> 指令和 >> 指令
head [-n 5] 文件
(输出文件前5行,默认10行)tail [-n 5] 文件
(输出文件后5行,默认10行)tail -f 文件
实时追踪该文档的所有更新 (常用)!数字
执行标号为 n 的指令
find 查找路径 -name/-user 名称
find / -size +20M
查找大于20M的文件(+n 大于n,-n 小于n,n 等于 n,大写M)grep [-n/-i] 查找内容 源文件
(-n 显示行号,-i 不区分大小写)参数 | 作用 |
---|---|
-type | f:常规文件,d:目录,l:符号链接,c:字符设备,b:块设备,p:命名管道(FIFO),s:套接字 |
gzip 文件名
(压缩后不会保留原文件)gunzip 文件名.gz
zip/unzip 指令
zip用于压缩文件,unzip 用于解压的,这个在项目打包发布中很有用的
zip [选项]XXX.zip 将要压缩的内容
(功能描述:压缩文件和目录的命令)
unzip [选项]XXX.zip
(功能描述:解压缩文件)
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz 的文件。
tar -zcvf XXX.tar.gz 打包的内容
(功能描述:打包目录,压缩后的文件格式.tar.gz)tar -zxvf XXX.tar.gz -C [解包的目录]
(-C的作用:解压到指定目录,否则会在当前目录下也解压)df -h
du [选项] /目录
选项 | 作用 |
---|---|
-s | 指定目录占用大小汇总 |
-h | 带计量单位 |
-a | 含文件 |
–max-depth=1 | 子目录深度 |
-c | 列出明细的同时,增加汇总值 |
统计/home文件夹下文件的个数:ls -l(R) /home | grep "^-" | wc -l
(-R 包括子目录)
统计/home文件夹下目录的个数:ls -l(R) /home | grep "^d" | wc -l
(-R 包括子目录)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
ps
ps -aux | less
ps -ef | grep ssh
kill [选项] 进程号
选项 | 作用 |
---|---|
-9 | 强制终止进程 |
killall 进程名
pstree -pu
选项 | 作用 |
---|---|
-p | 显示进程的 PID |
-u | 显示进程的所属用户 |
top
top [选项]
选项 | 作用 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令 |
-i | 使top不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程id来仅仅监控某个进程的状态 |
- 案例 1.监视特定用户 top:输入此命令,按回车键,查看执行的进程。 u:然后输入“u”回车,再输入用户名,即可
- 案例 2:终止指定的进程。 top:输入此命令,按回车键,查看执行的进程。 k:然后输入“k”回车,再输入要结束的进程 ID 号
- 案例 3:指定系统状态更新的时间(每隔 10 秒自动更新, 默认是 3 秒): bash> top -d 10
netstat -anp
-an 按一定顺序排列输出
-p 显示哪个进程在调用
tzselect
查看时区
更改每个用户的时区
Linux 用户一个多用户系统,每个用户都可以配置自己所需的时区,你可以为自己新增一个 TZ 环境变量:
export TZ='Asia/Shanghai'
执行完成之后需要重新登录系统或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系统时区
要更改 Linux 系统整个系统范围的时区可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具体时区请用自己获取到的 TZ 值进行替换。
使用Systemd更改Linux系统时区
如果你使用的 Linux 系统使用 Systemd,还可以使用 timedatectl 命令来更改 Linux 系统范围的时区。在 Systemd 下有一个名为 systemd-timedated 的系统服务负责调整系统时钟和时区,我们可以使用 timedatectl 命令对此系统服务进行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
参考链接 https://www.linuxprobe.com/linux-time.html
修改镜像
rpm
rpm -qa | grep firefox
rpm -q 软件包名
rpm -q firefox rpm -qi 软件包名
rpm -ql 软件包名
rpm -qf 文件全路径名
rpm -ivh rpm包全路径名称
yum localinstall wps-offcie-10.1.0.6634-1.i686.rpm
rpm -e [--nodeps] rpm包名称
(–nodeps 强制删除)yum
yum list | grep chrome
http://chinanet.mirrors.ustc.edu.cn/help/centos.html
https://blog.csdn.net/qq_43736514/article/details/100078901
#查看开放的端口号
firewall-cmd --list-all
#启用默认服务的(http)
firewall-cmd --add-service=http --permanent
#开放端口
firewall-cmd --add-port=8080/tcp --permanent
#重新加载一下设置,很关键~不然也不管用
firewall-cmd –-reload
service 服务名 [start | stop | restart | reload | status]
测试连接:telnet ip地址 端口号
查看服务名:setup
开机流程
修改运行级别:vim /etc/inittab
chkconfig --list | grep 服务名
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
找回丢失密码
CentOS 7.xx不同
开机->在引导时输入回车键~>看到-一个界面输入e->看到一个新的界面,选中第二行(编辑内核)在输入e-> 在这行最后输入 1,再输入回车键->再次输入b,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用passwd指令来修改root密码。
chown 用户名 文件名
chgrp [-R] 组名 文件名
(-R:如果是目录则使其下所有子文件或目录递归生效)chown newowner:newgroup file
usermod -g 组名 用户名
usermod -d 目录名 用户名
ls -l 中显示的内容如下:
-rwxrw-r--1 root root 1213 Feb 2 09:39 abc
0-9位说明
1)第0位确定文件类型(d,-,1,c,b)
2)第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
3)第4-6位确定所属组(同用户组的)拥有该文件的权限,–Group.
4)第7-9位确定其他用户拥有该文件的权限—Other
修改权限-chmod
基本说明:通过chmod指令,可以修改文件或者目录的权限10.10.2
第一种方式:+、-、=变更权限。u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
1)chmod u=rwx,g=rx,o=x 文件目录名
2)chmod o+w 文件目录名
(给其他组添加写)
3)chmod a-x文件目录名
(给所有人减少执行)
第二种方式:通过数字变更权限规则:r=4 w=2 x=1,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名
crontab [选项]
选项 | 作用 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查看crontab任务 |
-r | 删除当前用户所有的crontab任务 |
service crond restart | 重启任务调度 |
设置任务调度文件:
/etc/crontab 设置个人任务调度。
执行 crontab –e 命令。
接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
1)mbr 分区: 1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要占一个主分区 4.MBR 最大只支持 2TB,但拥有最好的兼容性
2)gtp 分区: 1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区) 2.最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB ) 3.windows7 64 位以后支持 gtp
主分区,逻辑分区
lsblk -f
查看分区
- 虚拟机添加硬盘
- 分区
fdisk /dev/sdb
- 格式化
mkfs -t ext4 /dev/sdb1
- 挂载 先创建一个 /home/newdisk , 挂载
mount /dev/sdb1 /home/newdisk
- 设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
vim /etc/fstab
添加:/dev/sdb1 /home/newdisk ext4 defaults 0 0
mkfs -t ext4 /dev/sdb1
mount /dev/sdb1 /newdisk
umount /dev/sdb1 或者 umount /newdisk
jdk,tomcat,mysql,eclipse
vim /etc/profile
,export JAVA_HOME=/usr/lib/jvm/jdk-8u301-linux-x64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
http://tomcat.apache.org/download-90.cgi
./startup.sh
,本地可访问firewall-cmd --zone=public --add-port=8080/tcp --permanent
service firewalld stop
–zone=public:表示作用域为公共的;
–add-port=8080/tcp:添加tcp协议的端口8080;
–permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
安装地址:https://dev.mysql.com/downloads/mysql/
参考:https://blog.csdn.net/weixin_44044929/article/details/101055453
https://www.cnblogs.com/Zhan-W/p/13162917.html(更详细)
mysql 8 以上 第一次登录需要修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES; #立即生效,这个最后执行。要执行
查看当前服务:netstat -anp | less
全局mysql: vim /etc/profile
,添加mysql的安装路径
退重新登陆或刷新文件:source /etc/profile
即可
mysql无法输入中文字符时,修改/etc/my.cnf,将 [mysql] 和 [client] 的
default-character-set=utf8 注释掉即可。。
https://maven.apache.org/download.cgi
解压,vim /etc/profile 文件,添加以下
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
通过 source /etc/profile 让文件立刻生效
mvn -v 查看
yum -y install git
参考文档:
https://help.aliyun.com/document_detail/60742.html?spm=a2c4g.11174283.6.548.24c14541ssYFIZ
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
service docker start
docker -v
vmstat
可以测量上下文切换的次数volatile
有volatile变量修饰的共享变量进行写操作的时候会多出第二行汇编代码,通过查IA-32架构软件开发者手册可知,Lock前缀的指令在多核处理器下会引发了两件事情。
1)将当前处理器缓存行的数据写回到系统内存。
2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效
synchronized用的锁是存在Java对象头里的。如果对象是数组类型,则虚拟机用3个字宽(Word)存储对象头,如果对象是非数组类型,则用2字宽存储对象头。在32位虚拟机中,1字宽等于4字节,即32bit
偏向锁
轻量锁
锁的优缺点的对比
处理器如何实现原子操作
第一个机制是通过总线锁保证原子性
第二个机制是通过缓存锁定来保证原子性
1)ABA问题
2)循环时间长开销大
3)只能保证一个共享变量的原子操作
在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递
指令重排序
JMM属于语言级的内存模型,它确保在不同的编译器和不同的处理器平台之上,通过禁止特定类型的编译器重排序和处理器重排序,为程序员提供一致的内存可见性保证
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland