Centos7.5 -Vim编辑器和恢复ext4下误删除的文件-Xmanager工具_centos 7.5 回滚删除今日的文件-程序员宅基地

技术标签: 学神  xmanager  Linux  linux  vim  centos7.5  ext4  MK  

本节所讲内容:

  • 5.1 vim的使用
  • 5.2 实战:恢复ext4文件系统下误删除的文件
  • 5.3 实战:使用xmanager等远程连接工具管理Linux

5.1 vim主要模式介绍,vim命令模式。

5.1.1 vim编辑器模式

  • 确保系统已经安装了VIM工具

    [root@panda ~]# rpm -qf which vim
    [root@panda ~]# rpm -qf which vi

扩展: 问:vi和vim是同一个软件包安装的吗?
答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi
VIM编辑器模式

  • 首次进入文件 ---- 命令模式

  • 出现 “Insert” ---- 编辑模式

  • 输入: ---- 命令行模式

  • A:从编辑模式到命令行模式怎样切换?
    编辑模式->esc->命令模式->: ->命令行模式

  • B:字符操作(怎样进入编辑模式?)
    进入编辑模式 a i o A I O

说明:

  • i 当前字符之前插入 (光标前)

  • I 行首插入 (行首)

  • a 当前字符之后插入 (光标后)

  • A 行尾插入(行尾)

  • o下一行插入 (另起一行)

  • O上一行插入(上一行插入)

  • x 向后删除一个字符 等同于delete

  • X 向前删除一个字符

  • u 撤销一步 每按一次就撤销一次

  • r 替换

5.1.2 在命令模式下做的操作:

  • 光标定位
  • hjkl 左下上右
  • 0 和 home键表示切换到行首, $和end键表示切换到行尾
  • gg 快速定位到文档的首行 , G定位到未行
  • 3gg 或者 3G 快速定位到第3行
  • /string(字符串) -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用 :noh
  • /^d ----^意思表示以什么开头 ,,查找以字母d开头的内容
  • /t$ -----$意思表示以什么结尾,,查找以字母t结尾的内容
  • vim + a.txt 打开文件后,光标会自动位于文件的最后一行

如何对文本进行编辑:

	1.删除、复制、粘贴、撤销
	2.y 复制(以字符为单位) :表示对单个字符进行复制,如果要复制整行,用yy(以行为单位)   
	3.复制N行: Nyy  ,比如: 2yy ,表示复制2行
	4.dd(删除,以行为单位,删除当前光标所在行)
	5.删除N行: Ndd  ,比如: 2dd ,表示删除2行
	6.p : P粘贴
	7.剪切: dd
	8.x 删除光标所在位置的字符
	9.D 从光标处删除到行尾
	10.u  撤销操作 
	11.ctrl+r  还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样
	12.r 替换,或者说用来修改一个字符

总结:vim如何进入其它模式

  • a A o O i I 都是可以进行插入,编辑模式
  • : 进入命令行模式
  • v 进入可视模式
  • ctrl+v 进入可视块模式
  • V 进入可视行模式
  • R 擦除、改写,进入替换模式
  • 你进入以上模式后,想要退出 ,按esc

扩展:插入模式中的操作
ctrl+p可以进行补全操作,所需要的内容必须是在当前打开的文件内存在的,它只针对当前文件

5.1.3 V模式(列)

  • 进入v模式 移动光标选择区域、
  • 编程的时候需要进行多行注释:
  • 1)、ctrl+v 进入列编辑模式
  • 2)、向下或向上移动光标,把需要注释、编辑的行的开头选中起来
  • 3)、然后按大写的I
  • 4)、再插入注释符或者你需要插入的符号,比如"#"
  • 5)、再按Esc,就会全部注释或添加了

删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d, 就会删除注释符号。

5.1.4 命令行模式操作

:w 保存 save
:w! 强制保存
:q 没有进行任何修改,退出 quit
:q! 修改了,不保存,强制退出
:wq 保存并退出 
:wq! 强制保存并退出
:x 保存退出
例: wq! 强制保存并退出
[root@xuegod63 ~]# ll /etc/shadow
----------. 1 root root 1179 9月  19 12:57 /etc/shadow
[root@xuegod63 ~]# vim /etc/shadow

调用外部文件或命令

假设:我想要写入我的网卡MAC地址,我要查看一下,当前在vim编辑文档,照着写。这样好麻烦。解决办法呢?

  • 在命令行模式下操作:
  • :!ifconfig 调用系统命令
  • !+命令
  • 读取其他文件。(把其他文件中的内容追加到当前文档中)
  • :r /etc/hosts

文本替换

格式 : 范围(其中%所有内容)   s分隔符 旧的内容 分隔符 新的内容  (分隔符可以自定义)
默认是每一行的第一个符合要求的词   (/g全部)
:1,3 s/bin/xuegod    替换第1到3行中出现的第一个bin进行替换为xuegod
:1,3 s/bin/xuegod/g  替换第1到3行中查找到所有的bin进行替换为xuegod
:3 s/xue/aaaaa     #只把第3行中内容替换了
:% s/do/xuegod/g  	将文本中所有的do替换成xuegod
:% s/do/xuegod/gi	将文本中所有的do替换成xuegod, 并且忽略do的大小写
:% s@a@b@g	   将文本中所有的a替换成b

5.1.5 自定义vim使用环境

  • 临时设置

  • :set nu 设置行号

  • :set nonu 取消设置行号

  • :noh 取消高亮显示

  • 永久设置环境

  • vim /etc/vimrc 设置后会影响到系统所有的用户

  • ~/.vimrc #在用户的家目录下,创建一个.vimrc。这样只影响到某一个用户,没有自己建一个

    例:
    [root@xuegod63 ~]# cat /root/.vimrc
    set nu
    [root@xuegod63 ~]# vim /root/.vimrc
    在这里插入图片描述

  • vim打开多个文件

  • 方法1:以上下形势,打开两个文档

  • [root@xuegod63 ~]# vim -o /etc/passwd /etc/hosts
    在这里插入图片描述
    方法2:以左右方式打开两个文档
    [root@xuegod63 ~]# vim -O /etc/passwd /etc/hosts
    注:ctrl+ww 在两文档之间进行切换编辑。大写O左右分屏,小写的o上下分屏

    比较两个文件内容
    [root@xuegod63 ~]# cp /etc/passwd mima.txt
    [root@xuegod63 ~]# echo aaa >> mima.txt
    [root@xuegod63 ~]# diff /etc/passwd mima.txt
    40a41

    aaa
    [root@xuegod63 ~]# vimdiff /etc/passwd mima.txt

5.1.6 其它编辑器

  • nano编辑器

  • emacs编辑器

  • GHOME编辑器gedit

  • 例:
    [root@xuegod63 ~]# gedit /etc/passwd

5.1.7 实战1:在windows中编辑好的汉字文本文档,上传到Linux下打开乱码。

  • 实验环境:centos7.4 现在系统默认使用的语言是汉语。(系统中必须安装好中文包)。

  • 将同目录下“a此文件在windows下打开正常-到linux下vim打开是乱码.txt”上传到Linux服务器上。使用ssh远程连接到Linux上,使用vim打开显示乱码。

  • 原因:编码的问题

  • 通过iconv命令转码 没有使用过:1
    参数:

  • -f, --from-code=名称 原始文本编码

  • -t, --to-code=输出编码

  • -o, --output=FILE 输出文件名

  • [root@xuegod63 ~]# mkdir test #创建一个测试目录

  • [root@xuegod63 ~]# cd test/

  • 将测试的文件上传到Linux服务器上:
    在这里插入图片描述
    [root@xuegod63 ~]# iconv -f gb2312 -t utf8 a此文件在windows下打开正常-到linux下vim打开是乱码.txt -o aa.txt
    [root@xuegod63 ~]# cat aa.txt
    #!/bin/bash
    echo “学神IT”
    信息:
    -l, --list 列举所有已知的字符集

5.1.8 实战2:解决将公司Linux服务器上脚本导到windows上打开串行的问题
原因:因为windows和linux处理回车方法不同。

上传” b在Linux编辑的文档到windows下没有换行.sh” 到Linux上,打开后正常显示
[root@localhost test]# sz b在Linux编辑的文档到windows下没有换行.sh   #发送到本地
在window 上打开显示:

在这里插入图片描述
解决方法:
[root@xuegod63 ~]# rpm -ivh /mnt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
注: 在centos7上,unix2dos这个命令已经被集成到dos2unix-6.0.3-7.el7.x86_64.rpm包中。在centos6下需要安装unix2dos.xxx.rpm。
[root@localhost test]# unix2dos b在Linux编辑的文档到windows下没有换行.sh
[root@localhost test]# sz b在Linux编辑的文档到windows下没有换行.sh #发送到windows本地 显示正常。
在这里插入图片描述
注:dos2unix 这个命令是把windows下的回车转成linux类型。
Linux架构师高薪入口:

1.学神IT教育官方网站:http://xuegod.ke.qq.com

2.10年行业资深老鸟MK:QQ2659153446

3.加入Linux技术交流QQ群:722287089,即可获得以下福利:

①定期分享免费学习资料与视频(工具+笔记+拓展实战)
②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
③有机会免费领取Linux云计算集群架构师4册书籍

5.2 实战:在Centos6/RHEL6上恢复ext4文件系统下误删除的文件
在这里插入图片描述

[root@xuegod63 ~]# rm -Rf /    #执行不成功的,
rm: 在"/" 进行递归操作十分危险
rm: 使用 --no-preserve-root 选项跳过安全模式
[root@xuegod63 ~]# rm -rf /*    #这个可以执行成功。 呵呵。。。

ext4文件系统上删除文件,可以恢复: extundelete ,ext3恢复使用:ext3grep
windows恢复误删除的文件:  final data v2.0 汉化版  和  easyrecovery  

扩展:
Linux文件系统由三部分组成:文件名,inode,block
windows也由这三部分组成。
a.txt -->inode --> block
文件名 存放文件元数据信息 真正存放数据

查看文件文件名:

[root@xuegod63 ~]# cp /etc/passwd a.txt 
[root@xuegod63 ~]# ls a.txt 
a.txt

查看inode号:

常识: 每个文件,有一个inode号。
[root@xuegod63 ~]# ls -i a.txt
440266 a.txt

查看inode中的文件属性; 通过stat命令查看inode中包含的内容

[root@xuegod63 ~]# stat a.txt   #查看inode信息:
[root@xuegod63 ~]# ls -l a.txt 
-rw-r--r-- 1 root root 1720 Oct 25 10:21 a.txt

block块:真正存储数据的地方
逻辑删除:
为什么删除比复制快?

在这里插入图片描述
在这里插入图片描述
误删除文件后,第一件事要做什么??? 你不心删除把存了几十年的大片删除了。怎么办?

  • 避免误删除的文件内容被覆盖。 如何避免?
  • 卸载需要恢复文件的分区或以只读的方式挂载

5.2.2 实战:在ext4文件系统上恢复被误删除的文件
下载extundelete
http://sourceforge.net/ 开源软件发布中心
准备测试分区:

[root@xuegod63 /]# fdisk /dev/sda  #创建一个sda4分区
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
     switch off the mode (command 'c') and change display units to
     sectors (command 'u').

Command (m for help): p #查看现有分区表

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35

Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 1301 10240000 83 Linux
/dev/sda3 1301 1428 1024000 82 Linux swap / Solaris

Command (m for help): n #创建一个新分区

Command action
   e   extended
   p   primary partition (1-4)
p  #创建一个主分区
Selected partition 4
First cylinder (1428-2610, default 1428): 
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428-2610, default 2610): +1G  #指定分区大小

Command (m for help): w #保存

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@xuegod63 ~]#reboot
[root@xuegod63 ~]# partx -a /dev/sda #获得新分区表

扩展:

  • 如果在根下删除文件了,想恢复,怎么办?
    方法1: 立即断电,然后把磁盘以只读方式,挂载到另一个电脑中进行恢复
    方法2:把extundelete在虚拟机上(虚拟机系统要和服务器版本一样),提前安装好后再复制到U盘中,把U盘插入服务器,恢复时,恢复的文件要保存到U盘中,(不要让恢复的数据写到/下,那样会覆盖之前删除的文件)

使用新的分区表:

[root@xuegod63 /]# mkdir /tmp/sda4     #创建挂载点
[root@xuegod63 ~]# mkfs.ext4 /dev/sda4    #格式化
[root@xuegod63 ~]# mount /dev/sda4 /tmp/sda4/   #挂载

5.2.3 复制一些测试文件,然后把这些文件再删除,然后演示恢复:

[root@xuegod63 ~]# cp /etc/passwd /tmp/sda4/
[root@xuegod63 ~]# cp /etc/hosts /tmp/sda4/
[root@xuegod63 ~]# echo aaa > a.txt
[root@xuegod63 ~]# mkdir -p /tmp/sda4/a/b/c
[root@xuegod63 ~]# cp a.txt /tmp/sda4/a/
[root@xuegod63 ~]# cp a.txt /tmp/sda4/a/b/
[root@xuegod63 ~]# touch /tmp/sda4/a/b/kong.txt
安装tree命令:
[root@xuegod63 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm
[root@xuegod63 ~]# tree /tmp/sda4/
/tmp/sda4/
├── a
│   ├── a.txt
│   └── b
│       ├── a.txt
│       ├── c  #空目录
│       └── kong.txt  #空文件
├── hosts
├── lost+found
└── passwd

删除文件:

[root@xuegod63 ~]# cd /tmp/sda4/
[root@xuegod63 sda4]# ls
a  hosts  lost+found  passwd
[root@xuegod63 sda4]# rm -rf a hosts passwd 

误删除文件后,第一件事要做什么???
如何避免误删除的文件内容被覆盖???
卸载需要恢复文件的分区:或以只读的方式挂载

[root@localhost ~]#cd /root
[root@localhost ~]# umount /tmp/sda4

5.2.4 安装extundelet
上传extundelete到linux中:

  • 从windows上传extundelete文件到linux,安装xmanager v5 或者CRT

    [root@xuegod63 ~]# rpm -ivh /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

安装后,就有了rz命令和sz命令

  • rz : 上传windows中的文件到linux
  • sz :下载,将linux中的文件传到windows

解压并安装extundelet

[root@xuegod63 extundelete-0.2.4]# tar jxvf extundelete-0.2.4.tar.bz2 
[root@xuegod63 ~]# cd extundelete-0.2.4
[root@xuegod63]# yum install e2fsprogs-devel
[root@xuegod63 extundelete-0.2.4]# ./configure   #检查系统安装环境
[root@xuegod63 extundelete-0.2.4]# make  -j 4  #编译,把源代码编译成可执行的二进制文件。 

-j 4 使用4进程同时编译,提升编译速度 或 使用4核CPU同时编译。

[root@xuegod63 extundelete-0.2.4]# make install  #安装

install 和cp 有什么区别?
install 复制时可以指定权限 cp不可以
例:

[root@xuegod63 ~]# install -m 777 /bin/find /opt/a.sh
[root@xuegod63 ~]# ll /opt/

5.2.5 开始恢复:

  • 方法1:通过inode结点恢复

  • 方法二:通过文件名恢复

  • 方法三:恢复某个目录,如目录a下的所有文件

  • 方法四:恢复所有的文件

    [root@xuegod63 ~]# umount /tmp/sda4/
    [root@xuegod63 ~]# mkdir test #创建一个目录使用于存放恢复的数据
    [root@xuegod63 ~]# cd test/

方法1:

  • 通过inode结点查看被删除的文件名字:

    [root@xuegod63 test]# extundelete /dev/sda4 --inode 2
    lost+found 11
    passwd 12 Deleted
    hosts 13 Deleted
    a 7313 Deleted

扩展:ext4文件系统的分区根目录的inode值为2,xfs分区根目录的inode值为64

[root@xuegod63 test]# ls -id /boot/   #xfs文件系统
64 /boot/
[root@xuegod63 test]# mount /dev/sda4 /tmp/sda4/
[root@xuegod63 test]# ls -id /tmp/sda4/
2 /tmp/sda4/
[root@xuegod63 test]# umount /tmp/sda4/

方法1:通过inode结点恢复

[root@xuegod63 test]# extundelete /dev/sda4 --restore-inode 12
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 9 groups loaded.
Loading journal descriptors ... 63 descriptors loaded.
[root@xuegod63 test]# ls 
RECOVERED_FILES
[root@xuegod63 test]# diff /etc/passwd RECOVERED_FILES/file.12# 没有任何输出,说明一样

方法二,通过文件名恢复

[root@xuegod63 test]# extundelete /dev/sda4 --restore-file passwd
[root@xuegod63 test]# diff /etc/passwd RECOVERED_FILES/passwd  # 没有任何输出,说明一样

方法三:恢复某个目录,如目录a下的所有文件:

[root@xuegod63 test]# extundelete /dev/sda4 --restore-directory a
[root@xuegod63 test]# tree RECOVERED_FILES/a/
RECOVERED_FILES/a/
├── a.txt
└── b
└── a.txt
下面是原来的目录结构:
[root@xuegod63 ~]# tree /root/sda4-back/a/
/root/sda4-back/a/
├── a.txt
└── b
    ├── a.txt
    ├── c
└── kong.txt

方法四:恢复所有的文件

[root@xuegod63 test]# extundelete /dev/sda4 --restore-all

删除前后的数据:
在这里插入图片描述
extundelete在恢复文件的时候能不能自动创建空文件和目录?
答:不能。

联系方式:

Linux架构师高薪入口:

1.学神IT教育官方网站:http://xuegod.ke.qq.com

2.10年行业资深老鸟MK:QQ2659153446

3.加入Linux技术交流QQ群:722287089,即可获得以下福利:

①定期分享免费学习资料与视频(工具+笔记+拓展实战)
②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
③有机会免费领取Linux云计算集群架构师4册书籍

5.3 实战:使用xmanager等远程连接工具管理Linux

5.3.1 Linux下常用远程连接工具介绍
在这里插入图片描述
5.3.2 xmanager 使用方法
1、xshell使用方法

  • 例1:连接一台新的服务器
    在这里插入图片描述
  • 例2:调整xshell字体大小
    在这里插入图片描述
  • 例3:调整rz和sz命令的默认路径
    在这里插入图片描述
    2、xftp使用方法
  • 例1:上传一个文件夹到Linux服务器上
    在这里插入图片描述
    3、xstart使用方法
  • 方法1:使用xshell直接运行图形界面的程序
  • 例1:[root@xuegod63 ~]# gnome-terminal
  • 例2:[root@xuegod63 ~]# firefox &
  • 方法2:使用xstart调用桌面
    在这里插入图片描述
    Linux架构师高薪入口:

1.学神IT教育官方网站:http://xuegod.ke.qq.com

2.10年行业资深老鸟MK:QQ2659153446

3.加入Linux技术交流QQ群:722287089,即可获得以下福利:

①定期分享免费学习资料与视频(工具+笔记+拓展实战)
②10年行业资深老鸟在线答疑:技能+实战+项目分享+高薪就业
③有机会免费领取Linux云计算集群架构师4册书籍

微信公众号:
在这里插入图片描述
MK老师微信号
在这里插入图片描述
总结:

  • 5.1 vim的使用
  • 5.2 实战:恢复ext4文件系统下误删除的文件
  • 5.3 实战:使用xmanager等远程连接工具管理Linux
  • 注:更多学习资源,可以加MK讲师QQ: 3175492114
  • MK在最后,祝你:早日成为Linux牛人!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43275475/article/details/82908818

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读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_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读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个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签