`
zoubo1231
  • 浏览: 2867 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

shell

阅读更多
第一章 目录及文件操作
1、ls
语法:ls   [选项]  路径名称
说明:文件、目录列表命令
常用选项说明:
             -a  列出所有文件,包括第一个字符为“.”的隐藏文件
-F     目录加/,执行文件加*,符号连接后加@
              -l  长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:
                      文件存取模式  链接数  文件主  文件组  文件字节数   上次修改时间
其中文件存取模式用10个字母表示,从左至右的意义如下:
第一个字母表示文件种类,可以是以下几种情况:
d 为目录文件
l 为链接
b 为块文件
c 为字符型文件
p 为命名管道(FIFO)
- 为普通文件
后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w 表示可写,x 表示可执行。如果是设备文件,则在文件字节数处显示:主设备  从设备。
举例:
ls  查看当前目录下的文件
ls -l 详细查看当前目录下的文件
ls -al  /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件
2、pwd
语法:pwd
说明:本命令用于显示当前的工作目录
举例:
pwd    显示出当前的工作目录
3、cd
使用:cd    路径名称
说明:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数($HOME一般为注册时进入的路径)。
举例: cd   回到注册进入时的目录
             cd   /tmp    进入 /tmp 目录
             cd  ..      进入上级目录(“..”代表上一级目录,“.”代码当前目录)
4、mkdir
使用:mkdir  目录名称
说明:新建目录
举例:mkdir  log 在当前目录下建立log目录
mkdir   log/record    在log目录下建立record目录
5、more
使用:more   [选项]   文件名
说明: 将文件显示在终端上,每次一屏,在左下部显示 --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more 命令中的子命令。
6、cp
使用:cp   文件  目标
说明:将文件拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
举例: cp   file1   file2 将文件 file1 拷贝到文件 file2
cp   file1   file2  /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
7、mv
使用:mv   文件  目标
说明:将文件移动至目标,若目标是文件名,则相当于文件改名
举例: mv  file1   file2         将文件 file1 改名为 file2
mv  file1   file2  /tmp 将文件 file1 和文件 file2  移动到目录 /tmp 下
8、rm
使用:rm   文件 /  rm -r   目录
说明:删除文件或目录
举例: rm  file1 删除文件 file1
rm  -r   /mytmp 递归地删除目录 /mytmp,及其子目录
9、chmod
使用:chmod  [-R]  模式   文件...
       或 chmod  [ugoa]  {+|-|=}  [rwxst]  文件...
说明:改变文件的存取模式,存取模式可表示为数字或符号串,例如:
             chmod    nnnn   file ,  n为0-7的数字,意义如下:
4000 运行时可改变UID
2000 运行时可改变GID
1000 置粘着位
0400 文件主可读
0200 文件主可写
0100 文件主可执行
0040 同组用户可读
0020 同组用户可写
0010 同组用户可执行
0004 其他用户可读
0002 其他用户可写
0001 其他用户可执行
     nnnn 就是上列数字相加得到的,例如 chmod 0777   file  是指将文件 file 存取权限置为所有用户可读可写可执行。
-R 递归地改变所有子目录下所有文件的存取模式
u 文件主
g 同组用户
o 其他用户
a 所有用户
+ 增加后列权限
- 取消后列权限
= 置成后列权限
r 可读
w 可写
x 可执行
s 运行时可置UID
t 运行时可置GID
举例:
chmod   0666  file1  file2  将文件 file1 及 file2 置为所有用户可读可写
chmod   u+x   file         对文件 file 增加文件主可执行权限
chmod   o-rwx  对文件file 取消其他用户的所有权限
10、chown
使用:chown  [-R]  owner:[group]   文件...
说明:修改文件的文件主,文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。
-R 递归地改变所有子目录下所有文件的存取模式
owner    用户(使用用户名或ID均可)
group     用户组(使用用户组名或ID均可)
举例:
  chown   mary  file 将文件 file  的文件主改为 mary
  chown   150   file       将文件 file 的UID改为150 ls   [选项]  路径名称
  chown   dualbase:informix  tdfs  将tdfs文件修改为dualbase用户,informix用户组
11、diff
使用:diff   文件1    文件2
说明:比较两个文本文件,将不同的行列出来
举例:
diff   scf0.log  scf1.log      比较scf0.log和scf1.log的不同
12、wc
使用:wc   文件 ...
说明:统计文件的行、字、字符数
举例:
wc scf0.log  scf1.log      统计scf0.log和scf1.log两个文件的行、字和字符数
13、touch
使用:touch  [-amc]  [mmddhhmm[yy]]  文件...
说明:将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。
   -a 只改变访问时间
-m 只改变修改时间
-c 若文件不存在,不创建它且不作提示
mmddhhmm[yy]     两位表示 月日时分[年]
举例:
touch  file     更新文件file的时间为当前时间
touch  0701000097  HongKong   将文件HongKong的时间改为97年7月1日0时0分
14、find
使用:find    路径名...    表达式
说明:find 命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下 n 代表一个十进制整数,+n 代表打印 n , -n 代表小于 n ,下面是合法表达式说明:
-name  模式   文件名与模式匹配则为真,(\ 为转意符)
-size  n[c] 文件块长度为 n 则真(一块为512字节),若
有c 选项,则文件字节长度为 n 则真
-atime n 若文件的最近访问时间为 n 天前则为真,
find 命令将改变其访问的目录的访问时间
-mtime n 若文件的最近修改时间为 n 天前则为真
-ctime n 若文件状态为 n 天前改变则为真
-exec 命令  { }\; 若命令返回值为0则真,{ }内为命令参数,
此命令必须以 \; 为结束
-ok 命令    { }\; 与 exec 相同,只是在命令执行前先提示,若
回答 y 则执行命令
-print 显示输出使表达式为真的文件名
-newer 文件 若文件的访问时间比newer 指定的文件新则真
举例:
find / -name find* -print
从根目录开始搜索文件名如 find* 的文件并显示之
find ./ -exec sleep{1}\; -print
  每秒显示一个当前目录下的文件
find $HOME \(-name a.out -o -name '*.o' \) -atime +7  -exec   rm {} \;
从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件 ls   [选项]  路径名称
15、grep
使用:grep  [选项] 模式  [文件...]
说明:在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(') 中,若指定文件为缺省,则使用标准输入,正规表达式可以是:
.  匹配任意一个字符
* 匹配0个或多个*前的字符
^ 匹配行开头
$ 匹配行结尾
[] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,
例如[a-z]表示字母a 至z 中的任意一个
\ 转意字符
命令中的选项为:
-i 模式中字母不区分大小写
-n 显示模式所在行的行号
-v 显示所有不包含模式的行
举例:
grep   'good'  * 在所有文件中搜索含有字符串 good  的行
grep   '^myline'  mytext 在文件mytext中搜索行首出现myline字符串的行
16、vi
使用:vi 文件名...
说明:vi 是一个全屏幕编辑器,在命令后跟多个文件时,在第一个文件关闭后,会自动打开第二个文件,依次类推。使用UNIX开发,vi是必须掌握的。
vi 工作模式分为命令模式和输入模式。在输入模式下,输入的一切作为文本插入到当前编辑的缓冲区。在命令模式下,输入的字符都将被翻译成命令。
在输入模式下按“ESC”键进入命令模式。
在命令模式下,进入输入方式的命令:
a 在当前光标的后面插入文本
A 在当前光标的所在的行末插入文本
C 修改当前行光标后面的文本
cw 修改当前词光标后面的字符
i 在当前光标处添加新文本
I 在当前行开头插入新文本
o 在当前行后插入一行
O 在当前行前插入一行
s 用一串字符替换当前字符
光标移动命令:
h, 左行键, backspace 光标左移
j, 下行键 光标下移
k, 上行键 光标上移
l, 右行键, space 光标右移
0(数字0) 移光标到当前行首
$ 移光标到当前行末
b, B 光标前移一个词,光标落在第一个字符(B忽略标点)
w, W 光标下移一个词,光标落在第一个字符(C忽略标点)
( 移光标到上一句开头
) 移光标到下一句开头
{ 移光标到上一段(段一般以空行为依据)开头
} 移光标到下一段(段一般以空行为依据)开头
[[ 移光标到上一节(节一般以{为依据)开头
]] 移光标到下一节(节一般以{为依据)开头
H 移动光标到当前缓冲区的第一行
L 移动光标到当缓冲区的最后一行
M 移动光标到当缓冲区的中间行
编辑区移动命令(^表示Ctrl键):
^B 上移(回退)一屏
^U 上移(回退)半屏
^F 下移(前移)一屏
^D 下移(前移)半屏
到一个行号:
: n 到第n行
nG 到第n行
1G 到文件第1行
G 到文件尾
vi编辑命令(包括上面提到的进入输入方式的所以命令)还有下面一些常用的:
修改命令:
r 替换一个字符但不进入输入模式
~ 大小写替换
取消和重复改变:
. 重复上次命令来修改缓冲区
u 取消上次最后一条命令
删除文本:
dd 删除当前行
d n d 删除当前下面的n行
dG 删除到文件尾
D 删除到行末
x 删除当前的字符
:line1, line2d 删除line1到line2之间的行
:line1, $ d 删除line1到文件末的所有行($代表文件末)
复制和移动(拷贝时,一般是存储到缺省缓冲区,可以采用“"缓冲区名”的方式指定存储的缓冲区名称,缓冲区名可以是“a~z”的字符,如“"a”指定a缓冲取,“"g”指定g缓冲区;缺省缓冲区不能在文件间使用,但命名缓冲区可以在不同的文件间切换使用,此处的切换是指的不退出vi,而调入新文件的切换;当在不同的文件间进行拷贝时,就可以采用这种命名缓冲区,命名缓冲区的引用采用“"缓冲区名”的方式;可以使用命令“m标记名”方式定义某字符标记当前行,标记名可以是“a~z”的字符,如mj,使用j标记当前行,标记的引用采用“'字符”的方式):
yy 复制当前行(到缺省缓冲区)
"ayy 复制当前行(到a缓冲区)
yny 复制当前n行(到缺省缓冲区)
"ayny 复制当前n行(到a缓冲区)
y'j 复制当前行到字符j所标记行之间的行到缺省缓冲区
"ay'j 复制当前行到字符j所标记行之间的行到a缓冲区
p 粘贴当前缓冲区内容到光标位置之后
P 粘贴当前缓冲区内容到光标位置之前
"ap 粘贴a缓冲区内容到光标位置之后
"aP 粘贴a缓冲区内容到光标位置之后
查找字符串:
/ 模式 向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式
? 模式 向后搜索模式,将光标移动到模式出现处,模式是一个正规表达式
n 重复上次搜索

下面是vi的命令集列表:
^B 退回前一页,前面加数字表示重复次数,每次换页时
             保留上一页的两行
^D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至
                     左边的自动缩进处
^E 显示屏幕底线之下的一行
^F 前进一页,前面加数字表示重复次数,每次换页时
                     保留上一页的两行
^G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在
                     整个文件中的位置
^H(退格) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符
^I(TAB) 在输入模式下,产生一串空格
^J(LF) 光标下移一行
^L 刷新屏幕,即将屏幕重新显示
^M(回车) 在命令模式下,光标移动至下行开头
在输入模式下,开辟一新行
^N 光标下移一行
^P 光标上移一行
^Q 在输入模式下,将其后的非打印字符作为正文插入
^R 刷新屏幕
^U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对
  以后的^D ^U 命令有效
^V 在输入模式下,将其后的非打印字符作为正文插入
^W 在输入模式下,使光标回退一个字
^Y 显示屏幕底线之上的一行
^Z 暂停编辑,退回上层Shell
^[(ESC) 退出输入模式,回到命令模式
! 暂时退出编辑,执行Shell命令
"(双引号) 用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字
母名缓冲区a-z供用户存放自定义的正文
$ 将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动
到下一行行尾
% 将光标移动到配对的小括号()或大括号{}上去
( 退回句子开头
) 前移到句子开头
- 退到上一行第一个非空格字符
. 重复上一次改变缓冲区内容的命令
/ 模式 向前搜索模式,将光标移动到模式出现处,模式是一个正规
表达式,(参看 grep)
: 在屏幕底部提示:,其后可使用ex命令
? 功能同 / ,但方向是向前查找
[[ 光标回退至前一节分界处
\ 转意符
]] 光标前移至节分界处
^(不是CTRL) 光标移至当前行第一个非空字符上
' 连续两个''表示将光标移至其移动前的位置,'后跟字母表示光标字
母标记的行首(参看 m 命令)
A 在行尾插入正文,进入输入模式
B 光标回退一个字
C 替换光标后的内容
D 删除光标后的内容
E 光标前移到字尾
F 字符 在当前行向左查找指定字符
G 光标移动到其前面数字指定的行,若未指定则移动到最后一行
H 光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字
指定的行
I 在行开头插入正文
J 连接两行,若前面有数字则连接数字指定的行
L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该
数字指定的行
M 光标移动到屏幕中线
N 使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相
反,其功能同 n ,但方向相反
O 在当前行上开辟一新行
P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编
号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定
义的正文
Q 从vi 推出进入ex命令状态
R 替换字符串
S 替换整行
T 字符 向左查找字符
U 将当前行恢复至第一次修改前的状态
W 光标移至下一个字首
X 删除光标前的字符
Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有
名缓冲区来保存,以后可用命令p或P将其取出
ZZ 存盘退出vi
a 光标后插入正文
b 光标回退至上一个字首
cw 替换当前字
c) 替换当前句子
dw 删除一个字
dd 删除一行
e 光标移到下一个字末
f  字符 在当前行向前查找字符
h 光标左移一格
i 在光标前插入正文
j 光标下移一行
k 光标上移一行
l 光标右移一格
m 字母 用字母标记当前行,以后可用 '字母使光标移动到当前行,
(参看'命令)
n 重复上次 / 或 ? 命令
o 在当前行下开辟一新行
p 将用户缓冲区内容放到光标位置(参看P命令)
r 替换当前字符
s 用一串字符替换当前字符
t 字符 光标移动至字符前
u 取消上次操作
w 光标移至下一字首
x 删除当前字符
yw 将当前字存入无名缓冲区,前面可加"x,表示存入名字为x的有名
缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p命
令取出
yy 将当前行存入无名缓冲区,用法参看yw
{ 光标移动至前一段开头
| 光标移至行首,若前面加数字,则移到数字指定行的行首
} 光标移至下一段开头
在“:”提示符下,常用命令如下:
:w 当前文件存盘
:w! 强制存盘
:w  文件 将内容写入指定文件
:w! 文件 强制写入指定文件
:x,y w 文件 将 x至 y 行写入指定文件中
:r  文件 将文件读到光标位置
:r  ! 命令 将系统命令的输出读到光标位置
:q 退出编辑
:q! 强制退出
:x 与命令ZZ相同
:e 文件名 编辑另一文件
:e ! 重新编辑文件,放弃任何改变
:sh 执行sh,结束后回到编辑
:! 命令 执行命令后回到编辑
:n 编辑下一文件
:n  文件表 重新定义待编辑文件表
:set   设置 vi 的选项,例如 set nu 表示每行前显示行号,在选项前
  加no则表示清除该选项,例如 set  nonu  表示每行前不显示行
  号,下面是一些常用的选项:
ai 自动缩进
aw 编辑下一文件前自动存盘
ic 查找字符串时不区分大小写
nu 每行前显示行号
sm 输入)及}时显示与之配对的( 或 {
slow 插入时延迟屏幕刷新
ws 使查找能绕过文件尾从头进行
wa 写文件之前不作对文件的检查
分享到:
评论

相关推荐

    B shell与 C shell的区别

    B shell与 C shell的区别 B shell和C shell都是Linux操作系统中的shell类型,它们之间存在一些关键的区别。 首先,让我们从B shell开始。B shell,全称为Bourne shell,是UNIX最初使用的shell。它在每种UNIX上都...

    Shell编程中文手册.pdf

    本手册涵盖了 Shell 编程的基础知识,包括 Shell 概述、Shell 解析器、Shell 脚本入门、Shell 中的变量等。 Shell 概述 Shell 是一种命令行接口,允许用户与操作系统进行交互。学习 Shell 编程可以让开发者更好地...

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    C语言中文网shell脚本教程

    **C语言中文网shell脚本教程** 这是一份关于Shell脚本编程的离线学习资料,包含了一系列HTML文件,旨在帮助用户深入理解并掌握Linux Shell脚本编程技术。以下是其中涉及的一些关键知识点: 1. **Shell命令的本质**...

    Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...

    Windows Shell 编程.pdf

    Windows Shell 编程.pdf 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对...

    SHELL十三问,PDF

    此外,Shell并非固定不变的,用户可以根据个人需求选择不同的Shell类型,常见的Shell包括Bourne Shell (`sh`)、Bourne-Again Shell (`bash`)、C Shell (`csh`)、T C Shell (`tcsh`) 和 Korn Shell (`ksh`)等。...

    shell.efi 启动

    【shell.efi 启动】是一种在UEFI(统一可扩展固件接口)系统中启动计算机的方法。在现代计算机上,UEFI替代了传统的BIOS,提供了更高效、功能更丰富的固件接口。shell.efi文件是UEFI环境中的一种可执行文件,它充当...

    大数据技术之Shell.docx

    "大数据技术之Shell" 本资源是关于大数据技术中的 Shell 技术的详细文档,涵盖了 Shell 的概述、Shell 脚本入门、变量等方面的知识点。 章节 1:Shell 概述 Linux 提供的 Shell 解析器有多种,包括 /bin/sh、/bin...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...

    linux_shell实例精解

    Linux Shell是Linux操作系统中的一种命令解释器,它提供了一个用户与操作系统内核交互的界面,使得用户可以通过文本命令行执行各种操作。Shell脚本则是一种编程语言,它允许用户编写包含一系列命令的程序,实现自动...

    Visual Studio 2013 Shell 下载

    ### Visual Studio 2013 Shell 知识点解析 #### 一、Visual Studio Shell 概述 在软件开发领域,Visual Studio Shell 是一个极为重要的工具。它由微软推出,旨在为开发者提供一个灵活且可扩展的基础平台。通过这个...

    在MCU上运行的简单控制台shell

    为了方便地与这些设备交互并进行调试,开发人员常常会实现一个控制台shell,它允许通过串口或其他通信接口发送命令到MCU并接收响应。本文将深入探讨如何在MCU上运行的简单控制台shell及其相关知识点。 **控制台...

    shell脚本与Makefile区别.docx

    "shell脚本与Makefile区别" shell 脚本和 Makefile 是两个不同的工具,它们都用于自动化构建和编译过程,但是它们有很大的不同之处。本文将详细介绍 shell 脚本和 Makefile 的区别。 首先,shell 脚本和 Makefile ...

    Linux 下 Shell的工作原理

    Linux中的Shell是一个至关重要的组成部分,它是用户与操作系统交互的接口,扮演着命令解释器的角色。在Linux系统中,默认的Shell通常是Bash(Bourne-Again SHell),它继承了Bourne shell的功能并增加了许多扩展特性...

    shell 13问 简体中文版.pdf

    ### shell 13问知识点详解 #### 一、Shell是什么? **知识点1:Shell的定义与作用** - **定义**:Shell是一种用户与计算机系统之间的交互界面,它充当了一个命令解释器的角色,能够将用户的命令转化为系统能识别的...

    Shell源码(Shell源码)

    Shell是Unix和Linux操作系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面,允许用户通过输入命令来执行系统功能。Shell不仅是一个命令行接口,还是一个强大的编程语言,用户可以编写脚本来自动化一...

    Interop.Shell32 操作类库DLL

    `Shell32.dll`是Windows Shell的主要组件,提供了对桌面环境、文件管理、快捷方式、文件属性以及各种系统级功能的访问接口。通过`Interop.Shell32`,开发者可以方便地在应用程序中实现诸如打开文件、创建快捷方式、...

Global site tag (gtag.js) - Google Analytics