landmark常用 Linux 命令和技巧viWord格式.docx
《landmark常用 Linux 命令和技巧viWord格式.docx》由会员分享,可在线阅读,更多相关《landmark常用 Linux 命令和技巧viWord格式.docx(28页珍藏版)》请在冰点文库上搜索。
1.1.2Linux
下快速键入命令有以下几种方:
1、命令补全功能(制表
Tab
键)
如果你键入了文件名、命令、或路径名的一部分,然后按
[Tab]键,
bash要么会把文件或路径名的剩余部分补全,要么会给你一个响铃(如果你的系统中启用了声效的话)。
如果你得到的是响铃,只需再按一次[Tab]键来获取与你已键入的部分匹配的文件或路径名的列表。
譬如,在
root用户下忘记了命令
updatedb怎么写,但是记得这个命令的一部分,可在shell提示下键入up,连按两次
[Tab]键,你便会看到一个可用来补全命令的列表,包括updatedb和
uptime
。
键入部分命令
upd
,然后再按
[Tab]
键,你的命令就会被自动补全。
或者,某个目录下有
complicated_filename1、complicated_filename2和
confused_file1等文本文件,如何使用命令打开他们呢,输入
vi□con,再按
tab,系统自动补全为vi□confused_file1;
输入
vi□com,系统自动补全为vi□complicated_file,然后根据需要输入
1或者
2
即可。
至于vi是什么东西,我们后面集中讲解。
2、使用历史命令
1)
通过使用
[向上箭头]
和
[向下箭头]
键来上下滚动,会发现许多前面已经键入过的命令。
2)使用
history
命令查看历史命令,bash命令行历史文件中可以默认贮存500个命令。
命令行历史实际上被保存在一个文件中,它是我们的家目录中叫做.bash_history的文件。
我们可以用几种方法来读取:
使用
vi、
cat、
less、
more、以及其它命令。
如何快速地寻找一个前面已用过的命令:
假设你在搜寻一个类似于
catsneak的命令。
你用过了那个命令,你以为它可能还在你的历史文件中。
在
shell提示下键入:
history|grepsneak。
快速调用历史命令:
(1)!
命令历史序号,解释:
列出历史命令的同时,还有对应的历史序号,使用“感叹号+命令历史序号”(无空格),就代表重新运行该序号所指的命令;
(2)!
历史命令首字母,解释:
使用“感叹号+历史命令首字母”(无空格),系统会重新运行以该首字母开始的最后一条命令,比如,你先运行了more□file1查看
file1,又运行了man□vi查看了
vi的帮助,当使用!
m时,系统会重新运行
man□vi。
1.1.3Linux
下常用的特殊字符及含义
1、管道符“|”(shift+反斜杠键)
管道“|”可将命令的结果输出给另一个命令作为输入之用。
例如:
ps□-ef□|□grep□root
该命令查看指定
root用户进程的所有进程,ps查询到的进程结果输入到
grep中,过滤出只属于
root
用户的进程。
我们在软件的安装过程中经常利用这个命令看进程是否启动。
2、重定向符“>
”(大于号键)
重定向就是使命令改变它所认定的标准输出。
“>
”可将结果输出到文件中,该文件原有内容会被删除;
>
”则将结果附加到文件中,原文件内容不会被删除。
如果文件不存在,那么就创建它;
如果存在,那么就追加到文件后边。
ls□*.dat□>
datafile;
ls□*.txt□>
datafile
该命令将该目录下所有以
dat结尾的文件名输出到
datafile这个文件中;
通过连接符“;
”,又执行下一个命令,把该目录下所有以
txt结尾的文件名追加到
datafile中。
这个符号很有用的,与cat命令结合,可以把分割的文件重新拼接到一起。
3、当前目录符“.”(句号键)
“.”表示当前目录。
为啥能表示当前目录呢?
OpenWorks用户的权限下,使用
which□.查看一下说啥呢?
它说“.:
aliasedtoecho$cwd”。
意思是这个句号代表输出当前工作目录(cwd,
currentworkingdirectory)。
cp□/tmp/file□.;
或者:
./executable_file
第一个是将
tmp文件夹下的
file拷贝到当前目录;
第二个是执行当前目录下名为executable_file的可执行文件。
4、上级目录符“..”(两个句号键)
“..”表示当前目录的上一级目录。
cp□../file□.
将上级目录的
file拷贝到当前目录。
5、家目录“~”(制表键上的键)
下,每个用户都有与之对应家目录,在
shell
变量中是$HOME,启动
terminal、连接ftp
等等时,默认目录就在家目录下,“~”也是一个相对路径,目的就是为了输入命令时,简化输入。
家目录是
Linux上很重要的一个概念,一定要牢记!
more□~/launcher.dat
查看家目录下的
launcher.dat文件。
6、最后访问目录“-”(减号键)
下,还有一个相对路径的变量,称之为最后访问的目录,用“-”表示。
相当于windows
下的回退键,可以快速的回到上次访问的目录,避免目录绝对路径过长导致的繁琐输入。
该符号一般只能用于变更工作目录用,不可与其他操作同用。
cd□-
(切换到上次访问的目录)
cp□-/file□/tmp
(不可行!
)
7、优先执行命令符“`”(制表键上方的键)
当需要执行一系列命令,又需要改变执行顺序时,这个符号非常有用。
kill□`ps□-ef□|□grep□oracle□|awk□'
{print□$2}'
`
这是多个命令的组合,逻辑上分为两套,kill杀进程和查找
oracle进程。
执行顺序为:
先执行后半截蓝色部分查找进程并输出进程号,然后
kill。
这其中有管道符的应用和
awk的应用。
8、后台执行命令“&
”(数字键
7)
用户有时候执行命令要花很长时间,可能会影响做其他事情。
最好的方法是将它放在后台执行。
后台运行的程序在用户注销后系统还可以继续执行。
当要把命令放在后台执行时,在命令的后面加上“&
”。
例如
Hampson-Russell的反演软件,会独立占用一个
terminal,如果使用:
geoview&
命令,那么该
terminal
还可以接收我们其他的命令。
如果用户在使用一个程序未加“&
”时,可以在程序执行过程中使用“Ctrl+z”组合键,将该命令挂起,然后再输入:
bg,将该程序放入后台,效果等同于加“&
9、变量指示符“$”(数字键
4)
下有很多变量,查看或者使用变量时,需要加上“$”。
变量可以在家目录下的.login
里设置,也可以在
terminal中临时设置,csh用户使用:
setenv□VAR_NAME□VAR_VALUE;
bash用户使用:
export□VAR_NAME=VAR_VALUE。
env
(输出很多变量)
env□|□grepHOME
相当于:
echo□$HOME(查看家目录在哪)
10、通配符“*”、“?
”(星号键和问号键)
DOS下一样,当我们不知道确切的文件名时,可以用通配符来进行模糊操作。
“*”可以代表任意长度的任意字符,“?
”代表一个任意字符。
11、转义字符“\”(反斜杠键)
DOS的命名规则不同的是,通配符“*”、“?
”是可以在文件名中使用的。
如果要操作的文件名中包含有这些特殊符号,我们可以结合“\”来表达。
下面是通配符和正则表达式的一个简短列表:
*
匹配所有字符
?
匹配字串中的一个字符
\*
匹配“*”字符
\?
匹配“?
”字符
\)
匹配“)”字符
转义字符在能使用正则表达式的工具中很有用,比如
sed工具。
例如一个文件中有大量的“**abc”
和“***abc”行,只想删除“**abc”行的话,可以使用:
sed□”/\*\*abc/d”□filename,可以快速删除含有“**abc”行,并且避免删除含有“***abc”的。
12、连接符号“;
”(分号键)
当有几个命令要连续执行时,我们可以把它们放在一行内,中间用“;
”分开。
mkdir□my_dir;
cp□/tmp/myfile.txt□my_dir
先建立一个目录
myfile,然后把
myfile.txt拷贝到新建的目录中。
1.1.4Linux
下的快捷键
下,windows
上可用的快捷键一般不可用,因为
win
键属于专利键,Linux
无权使用。
Ctrl+c,终止一个程序的运行。
Ctrl+d,在需要等待输入的命令中,该组合键作为输入结束使用,比如
cat,grep
等。
Ctrl+l,(字母
L
的小写)清屏,相当于
clear
命令。
Ctrl+z,将程序挂到后台暂停运行,一般配合
bg
命令使用。
1.1.5Linux
下权限和用户组的概念
Permissiondenied!
这是很多人使用
经常遇到的问题,是为啥呢,权限不对!
为此我们需要清楚什么是
Linux下的权限问题。
1、文件和目录权限概述
Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
通过设定权限可以从以下三种访问方式限制访问权限:
只允许用户自己访问;
允许一个预先指定的用户组中的用户访问;
允许系统中的任何用户访问。
同时,用户能够控制一个给定的文件或目录的访问程度。
一个文件活目录可能有读、写及执行权限。
当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。
文件所有者可以将这些权限改变为任何他想指定的权限。
一个文件也许只有读权限,禁止任何修改。
文件也可能只有执行权限,允许它想一个程序一样执行。
三种不同的用户类型能够访问一个目录或者文件:
所有者、用户组或其他用户。
所有者就是创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问用户的文件。
通常,用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员。
归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
最后,用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。
在这种意义上,系统内的其他所有用户就是
other用户类。
每一个用户都有它自身的读、写和执行权限。
第一套权限控制访问自己的文件权限,即所有者权限。
第二套权限控制用户组访问其中一个用户的文件的权限。
第三套权限控制其他所有用户访问一个用户的文件的权限,这三套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有
9种类型的权限组。
我们可以用-l参数的
ls命令显示文件的详细信息,其中包括权限。
如图
1-1-1。
图
1-1-1Linux文件权限示意图
当执行
ls-l或
ls-al命令后显示的结果中,最前面的第
2~10个字符是用来表示权限。
第一个字符一般用来区分文件和目录:
d:
表示是一个目录,事实上在
ext2fs
中,目录是一个特殊的文件。
-:
表示这是一个普通的文件。
l:
表示这是一个符号链接文件,实际上它指向另一个文件。
b、c:
分别表示区块设备和其他的外围设备,是特殊类型的文件。
s、p:
这些文件关系到系统的数据结构和管道,通常很少见到。
2、权限的种类
第
2~10个字符当中的每
3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边
3个字符是其他用户的权限。
这三个一组共
9个字符,代表的意义如下:
r(Read,读取):
对文件而言,具有读取文件内容的权限;
对目录来说,具有浏览目录的权限。
w(Write,写入):
对文件而言,具有新增、修改文件内容的权限;
对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):
对文件而言,具有执行文件的权限;
对目录了来说该用户具有进入目录的权限。
下面举例说明:
-rwx------:
文件所有者对文件具有读取、写入和执行的权限。
-rwxr--r--:
文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x:
文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x:
目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
drwx------:
除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。
修改文件或目录的所有者,请参见
1.2.20及
1.2.21。
1.1.6Linux
路径的概念
是以文件管理的系统,任何命令、文档、数据和设备均是以文件的形式存放于硬盘的。
下所谓命令就是一个程序,作为文件存放于特定的位置。
文件系统,是一个呈树形结构,是从“/”做为入口,“/”(也被称为根目录)下有子目录,比如
etc、usr、lib等,在每个子目录下又有文件或子目录,这样就形成了一个树形结构,这种树形结构比较单一。
而
Windows文件系统呢?
它引入了
C盘、D盘类似的磁盘概念,使得习惯
Windows
操作的用户在转向
时,会发现
根本就有
C
盘、D
盘的概念,有时甚至不知所措。
下任何操作、命令或者文件,都必须是能定位的,也就是说要能找到路径。
引入路径概念目的最终是找到我们所需要的目录或文件。
比如我们想要编辑
file.txt文件,我们首先要知道他存放在哪里,也就是说我们要指出他所在的位置,这时就要用到路径了。
路径是由目录或目录和文件名构成的。
比如/etc/X11就是一个路径,而/etc/X11/xorg.conf也是一个路径。
也就是说路径可以是目录的组合,分级深入进去,也可以是文录+文件构成。
1.1.3中提到的一些代表目录的特殊字符,实际上这种表达式是指的相对路径,相对于当前目录来说;
与之相对应的是绝对路径,绝对路径是从/(也被称为根目录)开始的,比如
/apps/landmark/OpenWorks/bin/startow,这种称之为绝对路径。
如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了。
2、vi
的基本操作
a)
进入
vi
在系统提示符号输入
vi及文件名称后,就进入
vi全屏幕编辑画面:
$vi□myfile
不过有一点要特别注意,就是您进入
vi之后,是处于命令行模式(commandmode),您要切换到插入模式(Insertmode)才能够输入文字。
初次使用
vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入
vi后,先不要乱动,转换到插入模式(Insertmode)再说吧!
b)
切换至插入模式(Insertmode)编辑文件
在命令行模式(commandmode)下按一下字母
i或者
a就可以进入插入模式(Insertmode),这时候你就可以开始输入文字了。
c)Insertmode
的切换
您目前处于插入模式(Insertmode),您就只能一直输入文字,如果您发现输错了字!
想用光标键往回移动,将该字删除,就要先按一下“ESC”键转到命令行模式(commandmode)再删除文字。
d)
退出
vi
及保存文件
在命令行模式(commandmode)下,按一下“:
”冒号键进入“Lastlinemode”,例如:
:
w□filename
(输入“w□filename”将文章以指定的文件名
filename
保存)
wq
(输入
wq,存盘并退出
vi)
q!
,不存盘强制退出
3、命令行模式(commandmode)功能键
附一张XX
vi的命令图解。
1).
插入模式
按i
切换进入插入模式(insertmode),从光标当前位置开始输入文件;
按a
进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按o
进入插入模式后,是插入新的一行,从行首开始输入文字。
2).
从插入模式切换为命令行模式
按
ESC键,非常重要,经常使用。
3).
移动光标
可以直接用键盘上的光标来上下左右移动,但正规的
是用小写英文字母
h、j、k、l,分别控制光标左、下、上、右移一格。
按ctrl+b:
屏幕往“后”移动一页。
按ctrl+f:
屏幕往“前”移动一页。
按ctrl+u:
屏幕往“后”移动半页。
按ctrl+d:
屏幕往“前”移动半页。
按数字
0:
移到文章的开头。
按G:
移动到文章的最后。
按$:
移动到光标所在行的“行尾”。
按^:
移动到光标所在行的“行首”按w:
光标跳到下个字的开头。
按e:
光标跳到下个字的字尾。
按b:
光标回到上个字的开头
按#l:
光标移到该行的第#个位置,如:
5l,56l。
4).
删除文字
x:
每按一次,删除光标所在位置的"
后面"
一个字符。
#x:
例如,”6x」表示删除光标所在位置的"
6
个字符。
X:
大写的
X,每按一次,删除光标所在位置的"
前面"
#X:
例如,”20X」表示删除光标所在位置的"
20
dd:
删除光标所在行。
#dd:
从光标所在行开始删除#行
5).
复制
yw:
将光标所在之处到字尾的字符复制到缓冲区中。
#yw:
复制#个字到缓冲区。
yy:
复制光标所在行到缓冲区。
#yy:
例如,
6yy
表示拷贝从光标所在的该行“往下数”6
行文字。
p:
将缓冲区内的字符贴到光标所在位置。
注意:
所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
6).
替换
r:
替换光标所在处的字符。
R:
(Shift+r)替换光标所到之处的字符,直到按下
ESC
键为止。
7).
回复上一次操作
u:
如果您误执行一个命令,可以马上按下
u,回到上一个操作。
按多次“u”可以执行多次回复。
8).
更改
cw:
更改光标所在处的字到字尾处。
c#w:
c3w
表示更改
3
个字
9).
跳至指定的行
ctrl+g
列出光标所在行的行号。
#G:
15G,表示移动光标至文章的第
15
行行首。
4、Lastlinemode
下命令简介
在使用
lastlinemode之前,请记住先按
ESC键确定您已经处于
commandmode下后,再按“:
”冒号即可进入lastlinemode。
列出行号
setnu:
输入“setnu”后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
#:
#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第
15行。
查找字符
“/”关键字:
先按“/”键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按“n”会往后寻找到您要的关键字为止。
“?
”关键字:
先按“?
”键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按“n”会往前寻找到您要的关键字为止。
保存文件
w:
在冒号输入字母
w
就可以将文件保存起来。
离开
q:
q
就是退出,如果无法离开
vi,可以在
后跟一个“!
”强制离开
vi。
wq:
一般建议离开时,搭配
一起使用,这样在退出的时候还可以保存文件。
wq!
恢复编辑时被中断的文件
在