扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
vi文本编辑器搜索
为新绛等地区用户提供了全套网页设计制作服务,及新绛网站建设行业解决方案。主营业务为做网站、成都做网站、新绛网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
简单搜索
"/string"用于向下搜索一个字符串,按n按照搜索相同的方向跳转到下一个匹配项,像一般的命令一样,前面加上数字,标示命令计数,比如"2n"代表第三个匹配的目标。按N会和之前命令想法的方向就像搜索下一个。
"?string"用于反向向上搜索字符转,n,N的用法同上。
搜索忽略大小写
:set ignorecase
设置大小写区分
:set noignorecase
命令记录
假设你做过三次的搜索
/one
/two
/there
现在你想再次的重复搜索one,不需要自己输入全部的字符串"/one"
利用命令的记录功能,只需要输入"/"按后通过方向键选择记录,如上,按三次向上方向键即可得到"/one",同样,你可以输入"/o"按后按向上方向键,即可自动匹配第一个以o开头的命令记录。(在:命令模式下,此方法相同使用,命令记录不相混淆)
当你要键入的单词太长时,你可以将光标移到你要搜索的单词上,在普通模式下,按下*键,即可以当前词为搜索向下搜索,#则向上搜索。这种方法上的单词完全匹配,如果你要搜素的字符串可能还包含在一个其他长字符串里面,可以使用g*,g#进行搜索。
在本行搜索某一个字符
fx 在当前行,向前将光标移动到字符x上
Fx 在当前行,向后将光标移动带字符x上
tx 在当前行,向前将光标移动到字符x之前的字符上
Tx 在当前行,向后将光标移动到字符x之后的字符上
, 按照上次搜索(f,F,t,T)的反向进行搜索
; 重复上次搜索
使用"/the"会搜索到there,soothe,the,athea
可以通过不同的方法匹配不同的搜索
"/the/" 得到结果there
"//the" 得到结果soothe
"//the/" 得到结果the
"/"是一特殊记法,只匹配一个Word的结束处
"/"是一特殊记法,只匹配一个Word的开始处
高亮显示搜索结果
将搜索的家国高亮显示,将十分的直观
开启:set hlsearch
关闭:set nohlsearch
调整搜索结果
:set incsearch 这使得你在键入目标字符的时候vim就开始搜索,使用这种方法,可以使你在未完全输入目标的情况下就可以找到一些结果
使用正则表达式
^字符匹配一行的开头
$字符匹配一行的结尾
eg:
将光标移动到下面一句话的第一个the上,输入*
the solder holding one of the chips melted and the
XXX XXX XXX(搜索高亮标记)
输入"/thetiny_mce_markerquot;得到以下匹配结果
the solder holding one of the chips melted and the
XXX(搜索高亮标记)
输入"/^the"则得到以下结果
the solder holding one of the chips melted and the
XXX (搜索高亮标记)
同理输入"/^thetiny_mce_markerquot;将匹配一行内容仅含the的行
/jo[ha]n 将搜索john或者joan
.字符可以匹配任意字符
eg:
"/t.e" 将搜索匹配the tee等
(如果你要搜索的字符串里包含特殊字符,比如.则适应转义字符/房子特殊字符前面)
"//..../" 将搜索任何四个字母的字符串
/d代表一个数字
//d 搜索数字 a1a
///d/ 搜索作为独立单词的一个数字 1
///d/d/ 搜索作为独立单词的两个数字 12
/^$ 搜索空白行
/^/n 同上
--------
指定重复的次数
--------
要制定重复的次数,可以使用"/{n,m}"这样的形式。"n"和"m"代表数字,其前的项目会被匹配"n"次到"m"次
/^/n/{3} 搜索三个空白行
/ab/{{3,5} 匹配"abbb","abbbb","abbbbb"
如果"n"被忽略,就默认它是0,如果"m"忽略,就默认它是无穷大,如果",m"被忽略,那么精确匹配"n"次重复
/{,4} 0,1,2,3,4次
/{3,} 大于等于3次
/{3,4} 3,4次
/{4} 4次
/= 0或者1
* 0或者多次
/+ 一次或者多次
--------
多选一
--------
在一个操作中的"或"操作符是"/|"。如:
/fred/|joe 将搜索fred或者joe
多个选项能继续串联在一起
/one/|two/|three
/end/(if/|while/|for/) 匹配的是"endif","endwhile","endfor"
--------
字符范围
--------
[a-z] a到z中的一个字符
[^a-z] 除了a到z中的一个字符
预定义字符集
//a 所有字母 /[a-zA-Z]
//d 数字 /[0-9]
//D 非数字 /[^0-9]
//x 十六进制数 /[0-9a-fA-F]
//X 非十六进制数 /[^0-9a-fA-F]
//s 空白字符 /[ ]
//S 非空白字符 /[^ ]
//l 小写字母 /[a-z]
//L 非小写字母 /[^a-z]
//u 大写字母 /[A-Z]
//U 非大写字母 /[^A-Z]
//h /[A-Za-z]
//w /[0-9A-Za-z]
Linux中常用命令是必须掌握的,它们与系统状态、目录、文件、网络等相关。本节讲解常用的Linux命令,为今后学习更复杂的命令打下良好基础。
系统工作命令
1. 查看系统信息
uname -a 显示当前系统相关信息
uname -r 显示系统内核版本
uname -m 显示计算机类型
cat /proc/version 查看当前操作系统相关信息
cat /etc/redhat-release 查看当前操作系统发行版信息
2. 查看当前主机名
hostname
3. 查看网卡信息
ifconfig
4. 查看系统时间
date
5. 查看进程状态
ps -aux
6. 动态显示进程状态
top
7. 以树状图显示进程间的关系
pstree
8. 结束正在运行的指定进程
kill -9 进程ID
9. 下载网络文件
wget 下载地址
磁盘操作命令
1. 显示系统磁盘的空间用量
df -h 显示磁盘分区信息
fdisk -l 查看磁盘分区
fdisk /dev/sdb 管理磁盘分区
du -sh 目录或文件 查看目录或文件占用的空间大小
2. 挂载或卸载设备
mount /dev/sdb2 /media/umnt 将设备/dev/sdb2挂载到/media/umnt目录
umount /media/umnt 卸载已挂载的设备
3. 文件系统修复
fsck -y /dev/sda1 修复的可以是分区,也可以是目录
用户与组操作命令
useradd xiaoqian 创建普通用户
passwd xiaoqian 设置用户密码
su – xiaoqian 切换用户
groupadd qf 创建用户组
gpasswd -a xiaoqian qf 将用户添加到组中
gpasswd -d xiaoqian qf 将用户从组中删除
groupdel qf 删除组
userdel xiaoqian 删除用户
目录与文件操作命令
mkdir abc 创建一个空目录
mkdir -p aba/abb/abc 创建多级目录
pwd 查看当前所在目录
ls -l 查看目录与文件的属性
ls -a 查看隐藏的目录与文件
cd qf/aba/ 切换目录
cd - 返回上次目录
rmdir abc 只能删除空目录
rmdir -p abc/abd 连同上层空目录一起删除
touch abc.txt 创建一个空白文件
echo hello word.txt 新建word.txt文件,并写入内容hello
ll abc.txt 查看文件信息
cat /etc/hosts 查看文件内容
more /etc/profile 逐页显示文件内容
head /etc/passwd 查看文件前几行的内容
tail /var/log/messages 查看文件后几行的内容
grep 'root' /etc/passwd 对文件内容进行过滤,搜索关键词
cp /tmp/file1.txt /opt 复制文件
cp -r /tmp/test01 /opt 复制目录
mv /opt/test01 /tmp 移动文件
rm linux.txt 删除文件
tar -cvf folder.tar file1.txt file2.txt 将多个文件打成一个包
tar -xvf folder.tar -C /home/xiaoqian 解包到指定目录
tar -zcvf file.tar.gz folder1 floder2 将多个文件打包并压缩
tar -zxvf /data3/data0.tar.gz -C /data2 将文件解包并解压缩到指定目录
前言
本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例
去除特定字符
目标:将 2017-01-01.jpg、2018-01-01.jpg 改为 20170101.jpg、20180101.jpg
方法:将所有 - 替换为空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
这里使用sed进行标准输出的字符串替换,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用于替换所有匹配项,而不仅仅替换第一个匹配项。
中间插入字符
目标:将 book01.txt、paper02.txt 改为 book-01.txt、paper-02.txt
方法:用分组匹配分别获取待插入位置两侧的字符串,再通过反向引用实现替换
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通过 ls 和 grep 命令得到待改名的文件列表,然后用 sed 命令进行字符串的替换,最后再使用 mv 命令来完成文件名的更改。
获取待改名文件列表的方法有很多,可以通过 find 命令,也可以直接给出字符串,我们将在下文中提到。
注意 for 循环后面的 ls | grep .txt,这条命令用两个反单引号括了起来,与 $(ls | grep .txt) 的作用相同,被包围的字符串会被当作命令执行,然后返回字符串结果。
文件名包含空格的解决方法
我们可以直接将文件列表写到 for 循环中,而不是通过命令来得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循环是通过空格来分割字符串,因此如果待更改的文件名中包含空格的话,就会被拆分成多个文件名,从而出错。
要解决这个问题,我们可以将 IFS(内部字段分隔符)设置为换行符 \n,这样一来,for 循环就会按行来获取变量的值,确保每次获取的确实是一个完整的文件名。
设置 IFS 变量的命令需要放在 for 循环之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次读取一行到变量 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 获取文件列表
之前的示例中,我们是通过 ls 命令来获取文件列表。该命令只能获取某个目录的文件,而且没法进行多种条件的筛选。
而一说到文件的查找,不得不提到功能强大的 find 命令。该命令可以在多个层次的目录中查找文件,并能够设定诸如创建时间、文件大小、所有者等多种条件,查找起文件来特别方便灵活。
用 find 命令来获取文件列表,再用 sed 命令配合正则表达式来修改文件名,这两个命令的结合几乎能完成所有常见的批量改名任务。
例如,将所有大于1M,且后缀为txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名为 20170101-book.txt、20170101-image.jpg,代码如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
一、填空
1、软件系统 驱动系统 2、一般文件 目录文件 特殊文件 符号链接文件
3、多用户 多任务 4、操作符 范围
5、批处理 实时 虚拟 异步性 6、根目录 当前目录
7、命令体 操作选项 命令参数 8、外部设备
9、mount mnt 10、root user-r root 系统管理员
11、文件名 子目录名及其指针(inode号码) 12、外围设备(输入/输出) I/O
13、shell script 用户定义 14、用户指示符
15、/dev/hdb 16、指令翻译器
17、/user/bin 18、管道 19、6 20、三
21、NFS 22、Samba 23、smbd 24、开启/关闭服务器
25、$ 26、外围设备 27、系统管理员
二、名词解释
1.LILO: LILO(LInux LOader),LILO代表Linux加载程序。LILO是一个在系统启动时运行的程序,它允许选择用于引导计算机的操作系统。
2.多重文件系统:LINUX系统都有一个固定不动的硬盘驱动器用以存储操作系统和部分用户数据,此文件系统称为根文件系统(root file system)。同时,LINUX也提供其他可移动的辅助设备供拥护存储大量数据,借助每个设备上个别产生的文件系统来强化和简化庞大的文件系统。由于每个辅助设备上都有自己的文件系统,因此,它们也都有自己的完整的含有“根目录”的分层式文件系统结构,且各文件系统彼此相互独立。LINUX中,可以通过mount指令将其他文件系统“挂”在根文件系统上,使之成为根文件系统的一部分,当不再使用该文件系统时,须使用umount指令将其从根文件系统上卸下。
3.成串指令:LINUX允许用户将多个指令组合在一起,从逻辑上将它们视为一个单一指令执行,组合是同过大括号或小括号实现,两种方法是有区别的。
①、利用大括号“{}”组合成串指令。用大括号将数个指令括起,个指令后紧跟分号“;”,以示指令结束。
②、利用小括号“()”组合成串指令。用小括号括起的指令被限制在新的子shell(child-shell)内执行,该指令串组成的子shell结束后,恢复到执行该子shell前的情况,其内的指令不会对原来的变量产生影响,也不会改变原工作目录。
4.Shell Script: shell script是放在文件中的一串Shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器。它接收用户命令,然后调用相应的应用程序。
5.响应:
6.RPM: RPM是Red Hat Package Manager的缩写,RPM是由Red Hat公司根据BOGUS(PMPMS)发展而来的软件包的安装与管理程序,类似Windows平台上的Uninstaller(反安装)和Cleansweep这些软件,是让用户用来自行安装和管理Linux上的应用软件包的管理程序。
7.shell的变量:变量是对内存中某一存贮单元的命名,当对变量进行存取时,如同对内存中相使用应存储单元的存取。Shell的变量分为:环境变量(environment variable)和暂时变量(provisional variable)。
8.系统调用:所有的操作系统在其内核里都有一些内建的函数,这些函数可以用来完成一些系统级别的功能。Linux系统使用的这样的函数叫做“系统调用”,英文是systemcall。这些函数代表了从用户空间到内核空间的一种转换。每个系统调用都有一个定义好的数字,这些数字是用来构造这些系统调用的。这些系统调用的对应的数字和一些参数都在调用的时候送到某些寄存器里面。系统调用的数字实际上是一个序列号,表示其在系统的一个数组sys_call_table[]中的位置
9.符号链接文件:(symbolic links),它也有一个文件名,但其内容只是一个指向某个文件或目录的指针。若要看其内容,看到的却是该指针所指向的文件或目录的内容。
10.TCP/IP:Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。
11.shell的引号:shell的引号有三种:单引号、双引号、倒单引号。
单引号:其内的数据完全被视为普通字符串,不做任何取代
双引号:其内数据若有$和单引号,则仍保留在shell中的特定功能。
倒单引号:使用指令结果取代其内的字符串。
12.指令取代:在LINUX 中允许用户将指令的标准输出视为字符串,为此,需要将指令用倒单引号括起,此时,shell先执行指令,再用其标准输出的结果取代指令名称字符串。
13.PAM(可插入认证模块):PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些 动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
14.位置参数:位置参数共有10个,它们使得用户可以在执行shellscript时使用参数(argument)。其名称为:$0,$1,$2,$3,$4,$5,$6,$7,$8,$9。执行指令时,指令名称后面跟的参数将分别被赋值给相应的位置参数。
15. TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。
16.DNS: DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。域名服务是运行域名系统的Internet工具。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。
17.CSMA/CD: CSMA/CD(Carrier Sense Multiple Access/Collision Detect)即载波监听多路访问/冲突检测方法 在以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。
18.HTTP: 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准
19.域名:域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
三、判断
××√√√×√√√××√√√××√×√××
四、问答
1. 请描述linux的ext3文件系统?
在EXT2格式中,每个逻辑磁盘被分成很多个区块(block),且数目非常大,而每个block有由1024单元组成,每个单元为一个字节(byte)。
每个字节存放a letter、 a number或a symbol。
2. 下面是使用$ls –l指令的文件信息,请指出:
该信息保存在文件系统的哪一部分?indoc-blocks
各部分的意义是什么?
“Total 1 /drw-rw-rw 1 Wang Wang 1565 Oct 24 12:40 cjbg”
total 1表示该文件夹(cjig的上层目录)下只有一个文件(即cjig)
/d表示这是一个目录,就是文件夹的意思
rw-rw-rw-表示各组权限,即所有者、同组成员、其他用户均拥有读、写权限,不拥有执行权限。
1表示该文件占用inode节点个数
Wang Wang 表示该文件(cjig)所有者是Wang,所在组为Wang。
1565表示文件大小
Oct 24 12:40最后修改时间为Oct 24 12:40。
Cjig是该文件名。
3.简述Linux操作系统文件用户、操作权限及其权限更改。
①、Linux操作系统文件用户有三种:所有者、同组人员、其他用户。
②、权限(permission)分为三组,第一组是owner的权限,第二组是同组人员的权限,第三组是其他用户的权限。
每组分别由:r—可读;w—可写;x—可执行,三种权限构成。其中子目录的x可执行权表示:可以使用该目录下的文件,即可以CD到该目录下。
整个文件的操作权或称为模式可以用三位八进制数表示。此种方法也称为绝对模式
③、改变一个或一组文件的操作权限采用CHMOD指令
格式1:chmod absolute-mode file1 [file2] [file3] … —— 绝对模式
argument:absolut-mode —即用三位八进制数表示操作权限。
filename之间以空格“ ”分隔。
格式2:chmod symbolic-mode file1 [file2] [file3] … —— 符号模式
argument:symbolic-mode—由三部分构成:
[who] op permission
who——用户的身份:u— owner ;
g— with owner in the same group
o— other users
a— all of the users
op—— the act of operation (设定权限的动作):
+ — add one of permissions加上一种权利
- — cancel one of permissions 取消一种权利
= — 设定具有某种权利
permission——操作权利:r—读取权利;
w—写入权利;
x—执行权利
filename之间以空格“ ”分隔。
4.解释“〔root@localhost /root〕#”的含义。
root代表当前的用户 也就是说你使用root的帐号登录的
localhost是系统的名字 没有设置系统名字的时候默认名称是localhost
/ 代表你当前所处的目录位置 你当前在根目录下
# 是用户提示符 代表你是根用户,普通用户是$提示符
5.简述LVM(逻辑卷管理)的工作原理。
LVM 在每个物理卷头部都维护了一个 metadata,每个 metadata 中都包含了整个 VG 的信息,包括每个 VG 的布局配置、PV 的编号、LV 的编号,以及每个 PE 到 LE 的映射关系。同一个 VG 中的每个 PV 头部的信息是相同的,这样有利于故障时进行数据恢复。
LVM 对上层文件系统提供 LV 层,隐藏了操作细节。对文件系统而言,对 LV 的操作与原先对 Partition 的操作没有差别。当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。
LVM 实现的关键在于在 PE 和 LE 间建立映射关系,不同的映射规则决定了不同的 LVM 存储模型。LVM 支持多个 PV 的 Stripe 和 Mirror,这点和软 Raid 的实现十分相似。
6.怎么实现linux主机与windows主机的资源共享?
Linux/Windows系统之间文件共享—Samba
1.Samba的组成:一个Samba服务器实际上包括两个守护进程:smbd和nmbd。
2.安装Samba服务器
3.Samba的配置
(1)图形化配置
(2)修改Samba配置文件:Samba服务器配置工具是用来管理Samba共享、用户以及基本服务器设置的图形化界面。
配置Samba服务器的第一步是配置服务器的基本设置和几个安全选项。
配置Samba服务器的第二步是添加Samba用户。
配置Samba服务器的第三步是添加共享。
连接Samba共享
要从Microsoft Windows机器上连接Linux Samba共享,可以使用“网上邻居”或图形化文件管理器。也可用以下DOS命令:
net use drive:\\ipaddress\service/user:username
7.Linux桌面系统从哪些方面保证了系统和信息有比Windows更高的安全?
开放源代码,有利于系统的安全和稳定
1、开放源码可以带来安全。一、开放代码有助于快速修改错误;二、开放代码有助于改善代码质量;三、开源有助于促进安全代码开发技术
2、没有恶意后门。由于源码的开放性,其安全隐患要比商业操作系统少得多,不存在开发者有意留下的秘密后门,使得Linux非常适合于安装到涉及国家机密和安全的计算机系统中。
五、选择
1 2 3 4 5 6 7 8 9 10
A ABC C B C A B D B C
11 12 13 14 15 16 17 18 19 20
B ACD B B A A B D D D
21 22 23 24 25 26 27 28 29 30
AC A B B C C D A B E
31 32 33 34 35 36 37 38 39 40
B B D B D A ACDE A ABC A
41 42 43 44 45 46 47 48 49 50
B CD ABCDE D A ABCD A D ? ABC
51 52 53 54 55 56 57 58 59 60
AC B ABDE D B D D B A B
61 62 63 64 65 66 67 68 69 70
C B A A C B D AD C B
71 72 73 74 75 76 77 78 79 80
B C B A B C D ABCD A A
81 82 83 84 85
A D B A B
六、填写指令的功能
LOGNAME:显示当前终端的当前登录用户名。
WHO:显示当前已登录的用户标识符及其使用的终端。arguments: 无参数时显示系统当前的所有用户;有参数时显示登录者本身的信息
DATE:显示当前系统的日期和时间。
CAL:可以用来显示公历日历。
cal命令不带参数只显示当前月份的日历。
-1 显示一个月的月历(Display single month output. This is the default.)
-3 显示系统前一个月,当前月,下一个月的月历(Display prev/current/next month output.)
-s 显示星期天为一个星期的第一天,默认的格式(Display Sunday as the first day of the week. This is the default.)
-m 显示星期一为一个星期的第一天(Display Monday as the first day of the week.)
-j 显示儒略日(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)(Display Julian dates (days one-based, numbered from January 1).)
-y 显示当前年份的日历(Display a calendar for the current year.)
ECHO:显示指令后参数的内容
WRITE:允许用户通过终端与别的用户交流信息。
说明:userid 是目标用户的标识符。
MESG:设定是否允许别的用户向你发送信息(message)。无选项时,查询当前状态。
MAN:连机帮助。:该指令的退出需要用户键入“q”。
TYPE:得到指令或文件的出处
PASSWD:允许用户修改 password。当用户执行该指令时,系统要求用户首先输入原来的password,然后两次输入新的password。对于用户的输入,屏幕上不会有任何的显示。
HOSTNAME:获得当前系统名字。每个系统都应该有一个名字,这个名字通常在系统安装时确定,可以使用hostname命令来获得当前系统的名字。同样设置计算机的名字也可以使用hostname命令,但这需要root权限。
IFCONFIG:显示或设置网络设备。ifconfig 命令被用来为一个网卡分配一个IP地址;设置本地环路界面;分配一个子网掩码。
IFCONFIG ETH0 DOWN:要暂停某个网络接口的工作。
IFUP命令用于启动指定的非活动网卡设备,该命令与ifconfig up命令相似。
IFDOWN命令用于停止指定的活动网卡设备,该命令与ifconfig down命令功能相似。
ROUTE:在本地IP路由表中显示和修改条目。
PING:网络测试命令,它通过向被测试的目的主机地址发送ICMP报文并收取回应报文,来测试当前主机到目的主机的网络连接状态。在Linux系统中,ping命令默认会不间断地发送ICMP报文直到用户使用“Ctr+C”键来终止该命令,使用“-c”参数可指定发送ICMP报文的数目。
TRACEROUTE:跟踪本地和远程两台主机间的UDP路由数据报。
KILL:删除执行中的程式或工作
SU:是用户可以不重新登录(login)而直接将自己以某个文件的拥有者的身份去获得该文件,之后以ctrl+D回到原来自己的登录者。此前,用户不必知道目标文件用户的UID和GID。但必须知道其passwd。(通过id指令可获得当前登录者的UID、GID)
3.LINUX的文件系统构成:
LINUX系统都有一个固定不动的硬盘驱动器用以存储操作系统和部分用户数据,此文件系统称为根文件系统(root file system)。同时,LINUX也提供其他(如:磁盘,磁带,光盘等)可移动的辅助设备供拥护存储大量数据,借助每个设备上个别产生的文件系统来强化和简化庞大的文件系统。由于每个辅助设备上都有自己的文件系统,因此,它们也都有自己的完整的含有“根目录”的分层式文件系统结构,且各文件系统彼此相互独立。
LINUX中,可以通过mount指令将其他文件系统“挂”在根文件系统上,使之成为根文件系统的一部分,当不再使用该文件系统时,须使用umount指令将其从根文件系统上卸下。
这两天在使用Ubuntu系统上进行开发软件的安装,一直遇到创建的Android Studio图标无法使用的问题,创建的图标提示「应用程序启动错误」。在网上也找了很多文章,都是说文件夹中包含空格。但是文件路径确实没包含空格,但是包含-,即"android-studio",所以准备重命名进行尝试,但是遇到"bareword not allowed"的问题。
Linux下对文件重命名有两种命令: mv ,rename
mv很简单,move文件移动
mv /dir/file1 /dir2/file1
两个参数,第一个是源文件,第二个是目的地,如果第二个参数文件名不一样,则会重命名。
当两个参数不带目录,只有文件名时,那就是重命名了。这是单个文件的重命名。
rename arg1 arg2 arg3
rename才是真正的批量重命名命令。而且他是3个参数,不是2个。
arg1:旧的字符串
arg2:新的字符串
arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char],*表示任意多个字符,?表示单个字符,[char]匹配char单个自定的精确字符,可以填写任意字符,foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。
值的注意的是,此命令在不同的Linux版本也有不同,Debian一系的操作系统别有用法。举例说明:
比如/home下有两个文件 abbcc.txt, addbb.txt , a.txt
我想把a替换为xxx,命令是这样的 : rename “a” “xxx” *.txt
那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配,如果改成?.txt则只会匹配到一个文件,那就是a.txt。然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a,有待再了解。
说到Debian一系的操作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:
Bareword “a” not allowed while “strict subs” in use at (eval 1) line 1.
经过Google之后发现有这样的说法:
On Debian-based distros it takes a perl expression and a list of files. you need to would need to use:
rename ‘s/foo/foox/’ *
这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式。
所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename ‘s/a/xxx/’ *.txt
Vim文本编辑让某些字符高亮设置为
:set hls 打开高亮
:set nohls 关闭高亮
其他知识点如下,
1,简单替换表达式
替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g
“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可
如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\” 来指定匹配单词开头:
:%s/\
显然,这样在处理 “fourty” 的时候还是会出错。用 “\” 来解决这个问题:
:%s/\/4/g
如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
:%s/\/4/gc
2,删除多余的空格
要删除这些每行后面多余的空格,可以执行如下命令:
:%s/\s\+$//
命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是
“\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。
3,匹配重复性模式
星号项 “*” 规定在它前面的项可以重复任意次。因此:
/a*
匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令:
/\(ab\)*
匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。
要避免匹配空字串,使用 “\+”。这表示前面一项可以被匹配一次或多次。
/ab\+
匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。
要匹配一个可选项,用 “\=”。 例如:
/folders\=
匹配 “folder” 和 “folders”。
4,指定重复次数
要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:
/ab\{3,5}
匹配 “abbb”,”abbbb” 以及 “abbbbb”。
当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:
模式 匹配次数
\{,4} 0,1,2,3 或 4
\{3,} 3,4,5,等等
\{0,1} 0 或 1,同 \=
\{0,} 0 或 更多,同 *
\{1,} 1 或 更多,同 \+
\{3} 3
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流