第1章 vim主要模式介绍,vim命令模式。

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

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

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

扩展:

问:vi和vim是同一个软件包安装的吗?

答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi

1.2 vim编辑器

1.2.1 模式切换

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

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

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

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

编辑模式->esc->命令模式->: ->命令行模式

B:字符操作(怎样进入编辑模式?)

进入编辑模式 a i o  A I O

说明:

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

I 行首插入  (行首)

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

A 行尾插入(行尾)

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

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

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

X 向前删除一个字符

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

r 替换

================================================

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

1、  光标定位

hjkl  左下上右

0 和 home键表示切换到行首, $和end键表示切换到行尾

gg 定位到首行 ,  G定位到未行

3gg 或者 3G  快速定位到第3行

/string(字符串)   -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用 :noh

/^d  ----^意思表示以什么开头 ,,查找以字母d开头的内容

/t$   -----$意思表示以什么结尾,,查找以字母t结尾的内容

vim + a.txt  打开文件后,光标会自动位于文件的最后一行

2、  如何对文本进行编辑

删除、复制、粘贴、撤销

y 复制(以字符为单位) :表示对单个字符进行复制,如果要复制整行,用yy(以行为单位)

ð  y$:从光标所在位置复制到行尾

ð  y^:从光标所在位置复制到行首

dd(删除,以行为单位,删除当前光标所在行)

ð  d0:删至行首

ð  d$:删至行尾

p 、P粘贴

x 删除光标所在位置的字符

D 从光标处删除到行尾

u  撤销操作

ctrl+r  还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样

r 替换,或者说用来修改一个字符

3、  如何进入其它模式

a A  o O  i I 都是可以进行插入,编辑模式

: 进入命令行模式

v 进入可视模式

ctrl+v 进入可视块模式

V 进入可视行模式

R 擦除、改写,进入替换模式

你进入以上模式后,想要退出 ,按esc

4、  插入模式中的操作

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

1.2.3 V模式(列)

进入v模式 移动光标选择区域、

编程的时候需要进行多行注释:
       1)、ctrl+v 进入列编辑模式

2)、向下或向上移动光标

3)、把需要注释、编辑的行的开头标记起来

4)、然后按大写的I

5)、再插入注释符或者你需要插入的符号,比如"#"

6)、再按Esc,就会全部注释或添加了

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

1.2.4 命令行模式操作

  • :w 保存 save
  • :w! 强制保存
  • :q 没有进行任何修改,退出 quit
  • :q! 修改了,不保存,强制退出
  • :wq 保存并退出
  • :wq! 强制保存并退出
  • :x 保存退出

1.2.5       
调用外部文件或命令

假设:我想要编辑写入我的网卡地址,但是我忘记了,我要查看一下,当前在vim编辑文档

怎么办呢? 要退出文档吗? 这样好麻烦.

在命令行模式下操作:

  • :!ifconfig  调用系统命令
  • !+命令

读取其他文件

:r /etc/hosts

1.2.7 命令行模式

格式 : 范围(其中%所有内容)   s分隔符
旧的内容 分隔符 新的内容  (分隔符可以自定义)

默认是每一行的第一个符合要求的词   (/g全部)

:1,3s/bin/xuegod    替换第1到3行中出现的第一个bin进行替换为xuegod

:1,3s/bin/xuegod/g  替换第1到3行中查找到所有的bin进行替换为xuegod

:3s/bin/xuegod 
--->注意特殊符号的使用

:%
s/do/xuegod/gi 将文本中所有的do替换成xuegod,并且忽略do的大小写

:%
s@a@b@g          将文本中所有的a替换成b

1.2.8 设置环境

临时设置

:set nu 
设置行号

:set ic 
不区分大小写

:set list 
显示控制字符

:set nonu 取消设置行号

:set noic  
取消

:set ai 自动缩进,比如换行操作,设置这个功能后,可以在下次操作时进行自动换行

:noh   取消高亮显示

永久设置环境

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

~/.vimrc  
只影响到某一个用户,没有自己建一个

1.2.9 vim打开多个文件

[root@panda ~]# vim -o /etc/passwd /etc/hosts

[root@panda ~]# vim -O /etc/passwd /etc/hosts

ctrl+ww 
在文件之间进行切换

大写O左右分屏,小写的o上下分屏

1.2.10 比较文件内容

[root@xuegod63 ~]# diff /etc/passwd mima

[root@panda mnt]# vimdiff /etc/passwd mima

1.3其它编辑器

1.3.1 nano编辑器

默认安装的,使用方法:

nano
a.txt

注意:脱字符(^)表示Ctrl键,比如^X表示的就是ctrl+x;Alt-键被表示为一个M,因此Alt+W 被写成了M-W,后面跟的大小字母都没有问题

1.3.2 emacs编辑器

默认没有安装,它支持图形和控制台模式

[root@panda mnt]# yum list emacs

[root@panda mnt]# yum -y install emacs

[root@panda mnt]# which emacs

/usr/bin/emacs

在控制台使用

[root@panda mnt]# emacs a.txt

说明:

保存当前缓冲区到文件
C-x  C-s

退出emacs并停止程序 C-x  C-c

将新文件添加到缓冲区
C-x  C-f (如果你不知道文件名称,可以按下回车,会启动一个文件浏览器)

上面的命令需要键入两次

其它一些操作命令:

C-p    上移一行

C-b    左移一字符

C-f     右移一字符

C-n    下移一行

M-a    移到当前句首

M-e    移到当前句尾

M-v    上翻页

C-v     下翻页

M-<    移动到文本的首行

M->    移动到文本的尾行

M-d    剪切光标当前所在位置之后的单词

C-k    剪切光标当前所在位置至行尾的文本

M-k    剪切光标当前所在位置至句尾的文本

C+空格  选中你要的文本,可以连续选择一块区域。结束选择用C-w

C-y
  粘贴  (如果你做了多次的剪切,那么在粘贴时,可以通过M-y进行选择)

C-s    从缓存区域中从光标当前位置到尾部执行前向查找

C-r    从缓存区域中从光标当前位置到尾部执行后向查找

C-x
2  将窗口水平拆分成两个

C-x
3  将窗口竖向拆分成两个

C-x
o(字母o)  切换窗口

C-x
0(数字0) 关闭当前所在窗口

C-x
1(数字1) 关闭除当前所在窗口之外的所有窗口

1.3.3 GHOME编辑器gedit

[root@panda mnt]# gedit a.txt /mnt/a.txt

第2章 恢复Linux下误删除的文件

删除文件和文件夹

rm -rf  文件名或目录名


-r  递归删除(可以删除目录和目录里面的东西)


-f  强行删除

ext4文件系统上删除文件,可以恢复: extundelete

windows恢复误删除的文件:  final
data v2.0 汉化版  和  easyrecovery

Linux文件由三部分组成:文件名,inode(索引节点),block(块)

a.txt    à       inode          à    block

文件名    存放文件元数据信息       真正存放数据

inode表,包含的一些经常使用的重要信息:

Ÿ   inode编号

Ÿ   文件类型

Ÿ   文件的链接数量,有多少文件名指向这个INODE

Ÿ   属主的UID

Ÿ   属主的组ID

Ÿ   文件的大小

Ÿ   文件所使用的磁盘的块的实际数量

Ÿ   文件数据block的位置

Ÿ   最近一次修改的时间

Ÿ   最近一次访问的时间

Ÿ   最近一次更改的时间

在LINUX中,它内部不是通过文件名来识别文件的,而是通过inode号码,对于linux系统,文件名就是给inode号码起的一个绰号或乳名

我们操作一个文件/etc/passwd,比如打开一个文件,系统内部总的来说要经过三个过程:

1、  首先找到这个文件名对应的inode号码

2、  通过这个inode号码,获取inode信息

3、  根据inode信息,找到这个文件的数据在物理存储上的block的位置,并把它提取出来

2.1 查看inode号:

常识: 每个文件,最少有一个inode号。

[root@xuegod63 ~]# dumpe2fs  /dev/sda5

2.2 块-block

block块:真正存储数据的地方

块大小是可以改变的

假设我们的块大小为 2M,而我们现在的数据为101M ,那么我们需要多少个块呢?

101/2 需要50还是51个块

为什么删除比复制快?

创建一个文件a

删除的操作

又新建了一个文件

UMOUNT

如何避免误删除的文件内容被覆盖???

卸载需要恢复文件的分区:或以只读的方式挂载

2.3 实战:在RHEL6上恢复被误删除的文件

下载extundelete

http://sourceforge.net/   
开源软件发布中心

2.3.1 准备测试分区:

添加硬盘,并查看

分区硬盘

[root@xuegod63 ~]# fdisk /dev/sdb

Device contains neither a valid DOS
partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk
identifier 0xb8cb07c0.

Changes will remain in memory only,
until you decide to write them.

After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of
partition table 4 will be corrected by w(rite)

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): n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-652, default 1):

Using default value 1

Last cylinder, +cylinders or
+size{K,M,G} (1-652, default 652):

Using default value 652

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652
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: 0xb8cb07c0

Device Boot      Start         End      Blocks  
Id  System

/dev/sdb1               1         652    
5237158+  83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition
table.

Syncing disks.

[root@xuegod63 ~]# ls /dev/sd*

/dev/sda 
/dev/sda1  /dev/sda2  /dev/sda3 
/dev/sda4  /dev/sda5  /dev/sdb 
/dev/sdb1

格式化硬盘

[root@xuegod63 ~]# mkfs.ext4 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

327680 inodes, 1309289 blocks

65464 blocks (5.00%) reserved for the
super user

First data block=0

Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768 fragments
per group

8192 inodes per group

Superblock backups stored on blocks:

32768,
98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem
accounting information: done

This filesystem will be automatically
checked every 38 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

创建挂载点,并进行挂载

[root@xuegod63 ~]# mkdir /sdb1

[root@xuegod63 ~]# mount /dev/sdb1 /sdb1/

[root@xuegod63 ~]# df |tail -1

/dev/sdb1        5154852 
141304   4751692   3% /sdb1

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

安装tree命令:

[root@localhost Packages]# rpm -ivh
tree-1.5.3-2.el6.x86_64.rpm

warning: tree-1.5.3-2.el6.x86_64.rpm:
Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...               
########################################### [100%]

1:tree                   ###########################################
[100%]

[root@xuegod63 b]# tree /sdb1/

/sdb1/

├── a

│   └── b

│       ├──
aa.txt   ---这是一个空文件

│       └── c

│           └── a.txt

├── a.txt

├── hosts

├── lost+found

└── passwd

3.3.4 删除文件并卸载分区:

如何避免误删除的文件内容被覆盖???

卸载需要恢复文件的分区(卸载当前目录必须退出当前才行):或以只读的方式挂载

3.3.5 上传extundelete到linux中:

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

[root@xuegod63 ~]# ls

anaconda-ks.cfg  Downloads                  mia.txt   Pictures  
xuegod.txt

c.txt            extundelete-0.2.4.tar.bz2  mima     
Public

Desktop          install.log                Music     Templates

Documents        install.log.syslog         new1.txt  Videos

[root@xuegod63 ~]# tar jxf
extundelete-0.2.4.tar.bz2

[root@xuegod63 ~]# ls

anaconda-ks.cfg  Documents          extundelete-0.2.4.tar.bz2  mia.txt 
new1.txt  Templates

c.txt            Downloads          install.log                mima     Pictures 
Videos

Desktop          extundelete-0.2.4  install.log.syslog         Music    Public   
xuegod.txt

[root@xuegod63 ~]# cd extundelete-0.2.4

[root@xuegod63 extundelete-0.2.4]# ls

acinclude.m4  autogen.sh  
configure     depcomp    
LICENSE      Makefile.in  README

aclocal.m4    config.h.in 
configure.ac  install-sh  Makefile.am 
missing      src

[root@localhost extundelete-0.2.4]# ./configure

Configuring extundelete 0.2.4

configure: error: Can't find ext2fs library

解决:

[root@localhost extundelete-0.2.4]# rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

warning: /media/RHEL_6.5 x86_64 Disc
1/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256
Signature, key ID fd431d51: NOKEY

Preparing...               
########################################### [100%]

1:e2fsprogs-devel       
########################################### [100%]

现在重新编译安装

[root@localhost extundelete-0.2.4]#
./configure

Configuring extundelete 0.2.4

Writing generated files to disk

[root@localhost extundelete-0.2.4]# make
&& make install


make:编译,把源代码编译成可执行的二进制文件


make install 安装

make -s all-recursive

Making all in src

extundelete.cc:571: 警告:未使用的参数‘flags’

Making install in src

/usr/bin/install -c extundelete '/usr/local/bin'

3.3.6 开始恢复

可以通过以下几种方法来进行恢复:


通过inode节点恢复


通过文件名恢复


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


恢复所有的文件

[root@localhost ~]# mkdir /test          #创建一个目录用来存放恢复的数据和目录

[root@localhost ~]# cd /test/

首先先查看一下删除文件的节点号

[root@xuegod63 test]# extundelete /dev/sdb1 --inode 2

由此可知,根目录的inode值为2

NOTICE: Extended attributes are not
restored.

Loading filesystem metadata ... 40
groups loaded.

Group: 0

Contents of inode 2:

0000 | ed 41 00 00 00 10 00 00 cd b5 1e
58 cc b5 1e 58 | .A.........X...X

0010 | cc b5 1e 58 00 00 00 00 00 00 03
00 08 00 00 00 | ...X............

0020 | 00 00 00 00 08 00 00 00 61 21 00
00 00 00 00 00 | ........a!......

0030 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

0040 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

0050 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

0060 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

0070 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

0080 | 1c 00 00 00 80 d5 79 00 80 d5 79
00 2c e7 b2 5d | ......y...y.,..]

0090 | 74 b4 1e 58 00 00 00 00 00 00 00
00 00 00 00 00 | t..X............

00a0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

00b0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

00c0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

00d0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

00e0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

00f0 | 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 | ................

Inode is Allocated

File mode: 16877

Low 16 bits of Owner Uid: 0

Size in bytes: 4096

Access time: 1478407629

Creation time: 1478407628

Modification time: 1478407628

Deletion Time: 0

Low 16 bits of Group Id: 0

Links count: 3

Blocks count: 8

File flags: 0

File version (for NFS): 0

File ACL: 0

Directory ACL: 0

Fragment address: 0

Direct blocks: 8545, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0

Indirect block: 0

Double indirect block: 0

Triple indirect block: 0

File name                                       | Inode
number | Deleted status

.                                                
2

..                                                2

lost+found                                        11

passwd                                           
12             Deleted

hosts                                            
13             Deleted

a.txt                                             14             Deleted

a                                                
131073         Deleted

方法1:通过inode节点恢复

[root@xuegod63 test]# extundelete
--restore-inode 12 /dev/sdb1

NOTICE: Extended attributes are not
restored.

Loading filesystem metadata ... 40
groups loaded.

Loading journal descriptors ... 66
descriptors loaded.

[root@xuegod63 test]# ls

RECOVERED_FILES

[root@xuegod63 test]# cd RECOVERED_FILES/

[root@xuegod63 RECOVERED_FILES]# ls

file.12

[root@xuegod63 RECOVERED_FILES]# ll

total 4

-rw-r--r-- 1 root root 1664 Nov  6 13:00 file.12

[root@xuegod63 RECOVERED_FILES]# diff file.12
/etc/passwd

# 没有任何输出,说明结果一样

[root@xuegod63 RECOVERED_FILES]# vi file.12

[root@xuegod63 RECOVERED_FILES]# mv file.12
passwd

[root@xuegod63 RECOVERED_FILES]# ls

passwd

方法二,通过文件名恢复

[root@xuegod63 test]# extundelete
--restore-file hosts /dev/sdb1

NOTICE: Extended attributes are not
restored.

Loading filesystem metadata ... 40
groups loaded.

Loading journal descriptors ... 66
descriptors loaded.

Successfully restored file hosts

[root@xuegod63 test]# cd RECOVERED_FILES/

[root@xuegod63 RECOVERED_FILES]# ls

hosts 
passwd

[root@xuegod63 RECOVERED_FILES]# diff hosts
/etc/hosts

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

[root@xuegod63 test]# extundelete
--restore-directory a /dev/sdb1

NOTICE: Extended attributes are not
restored.

Loading filesystem metadata ... 40
groups loaded.

Loading journal descriptors ... 66
descriptors loaded.

Searching for recoverable inodes in
directory a ...

7 recoverable inodes found.

Looking through the directory structure
for deleted files ...

4 recoverable inodes still lost.

[root@xuegod63 test]# ls

RECOVERED_FILES

[root@xuegod63 test]# cd RECOVERED_FILES/

[root@xuegod63 RECOVERED_FILES]# ls


hosts  passwd

[root@xuegod63 RECOVERED_FILES]# tree a

a

└── b

└── c

└── a.txt

2          
directories, 1 file

注意:不支持恢复空文件

方法四:恢复所有的文件

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

NOTICE: Extended attributes are not restored.

Loading filesystem metadata ... 40
groups loaded.

Loading journal descriptors ... 66
descriptors loaded.

Searching for recoverable inodes in
directory / ...

7 recoverable inodes found.

Looking through the directory structure
for deleted files ...

0 recoverable inodes still lost.

[root@xuegod63 test]# ls

RECOVERED_FILES

[root@xuegod63 test]# cd RECOVERED_FILES/

[root@xuegod63 RECOVERED_FILES]# ls


a.txt  hosts  passwd

删除前后的数据:

extundelete在恢复文件的时候能不能自动创建空文件和目录?

答:不能。

REHL7  xfs系统  可以的

版本6不支持xfs,只有ext4,所以用extundelet

 版本7用xfsdump备份,用xfsrestore恢复

1-5-vim编辑器的使用的更多相关文章

  1. 玩转Vim 编辑器

    一:VIM快速入门 1.vim模式介绍 以下介绍内容来自维基百科Vim 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆.几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数 ...

  2. Linux vim编辑器使用详解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...

  3. REDHAT一总复习1 vim编辑器的使用 删除所有者列 删除指定行

    将文件/home/student/vimfile.txt 复制到server 上的/home/student/longlisting.txt . 根据下列要求,使用vim编辑器更改 /home/stu ...

  4. Linux笔记:使用Vim编辑器

    Vi编辑器是Unix系统上早先的编辑器,在GNU项目将Vi编辑器移植到开源世界时,他们决定对其作一些改进. 于它不再是以前Unix中的那个原始的Vi编辑器了,开发人员也就将它重命名为Vi improv ...

  5. VIM编辑器简单总结

    第一讲小结  1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键.         h (左移)       j (下行)       k (上行)     l (右移)  2. ...

  6. Linux Vim编辑器使用简单讲解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明:Linux默认自带vi(vim)编辑器,其程序包为:[root@linuxidc.com ~]# rpm -qf `whic ...

  7. linux学习笔记--vi与vim编辑器

    vi编辑器全名为Visual Interface,即为可视化接口,类似于Windows中的记事本 vim相当于是vi的一个升级版本,包含vi的一切操作命令,vim相对于vi做了哪些提升: 1.vim支 ...

  8. 初探VIM编辑器

    初探VIM 引言---什么是Vim? 接触Linux这么久,想必对于一切皆文件的哲学思想已经不陌生了.因此,学习并掌握用一款Linux文本编辑器,对于玩转LInux来说,是很有必要的. vi编辑器是U ...

  9. vim编辑器详解

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率. vi是“visual interface”的 ...

  10. 如何让vim编辑器永久显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

随机推荐

  1. [React Unit Testing] React unit testing demo

    import React from 'react' const Release = React.createClass({ render() { const { title, artist, outO ...

  2. 枚举系统磁盘驱动器(使用GetLogicalDriveStrings API函数,system("pause"); 很实用,还用到wcslen等函数)

    代码如下: #include "stdafx.h" #include <vector> #include <string> #include <Win ...

  3. php课程 4-17 数组键值操作函数有哪些

    php课程 4-17  数组键值操作函数有哪些 一.总结 一句话总结:多看学习视频 1.php中数组的键值操作函数有哪6个? • array_values();获取数组中的值• array_keys( ...

  4. php实现二叉树遍历

    php实现二叉树遍历 一.总结 关注输入输出 二.php实现二叉树遍历 题目描述 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储). 例如如下的先序遍历字符串 ...

  5. udp网络程序-发送、接收数据

    1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8from socket im ...

  6. 授人玫瑰 手留余香 --纪念python3.2.3官方文档翻译结束

    当你点击看到这篇文章的时候.你已经得到了祝福. 一个来自夜深人静的码农,在2014年5月19号的01:18分.默默为你献上祝福. 希望你.我和他,每个在IT行业中奋斗的人.能找到属于自己一片天空. 在 ...

  7. $.ajax 请求 拦截器 重定向 无效 解决办法

    在ajax 异步请求下 拦截器过滤器中使用 重定向 页面响应无效 我这里用的是springboot框架,用拦截器实现 对请求的拦截 ,session超时直接跳转到login.html页面. 后台代码: ...

  8. JS前端图形化插件之利器Gojs组件(php中文网)

    JS前端图形化插件之利器Gojs组件(php中文网) 一.总结 一句话总结:php中文网我可以好好走一波 二.JS前端图形化插件之利器Gojs组件 参考: JS前端图形化插件之利器Gojs组件-js教 ...

  9. C++ 类包含关系Demo 笔记

    is-a关系  类包含关系 构造 拷贝构造函数 重载福值运营商 析构函数 动态内存分配和释放 new delete操作 static 数据成员 好友功能 重载输入>>输出<<操 ...

  10. SQL基础问题整理

    在程序中,数据库操作是必不可少的部分,所以我们要备足数据库相关知识才能去应付程序中出现的种种问题.基于此,我特地在国外网站.博客上整理了一些问题,并附带了答案和解释.参考.为了保证“原汁原味”,我就保 ...