linux shell 脚本 supress,Linux指令和shell脚本

关于Shell

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

shell分类:

一:图形界面shell(Graphical User Interface shell 即 GUI shell)

例如:应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。

二:命令行式shell(Command Line Interface shell ,即CLI shell)

例如:

在Unix/linux中主要有:

Bourne shell (包括 sh,ksh,and bash)

Bourne shell ( sh)

Korn shell ( ksh)

Bourne Again shell ( bash)

POSIX shell ( sh)

C shell (包括 csh and tcsh)

TENEX/TOPS C shell ( tcsh)

MS-DOS系统:

cmd.exe/ 命令提示字符(Windows NT 系统)

Windows PowerShell(支持 .NET Framework 技术的 Windows NT 系统)

传统意义上的shell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell。

交互式与非交互式shell

shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

常用指令:

文件管理

用于连接文件并打印到标准输出设备上

cat [-AbeEnstTuv] [--help] [--version] fileName

ex:把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

类似的命令:echo仅用于输出命令后面的字符串到标准输出设备上。

用于比较文件的差异,以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

diff [-abBcdefHilnNpPqrstTuvwy][-][-C ][-D ][-I ][-S ][-W ][-x ][-X ][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

用来为文件或目录改名、或将文件或目录移入其它位置。

mv [options] source dest

mv [options] source... directory

参数说明:

-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;

-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

用于删除一个文件或者目录。

rm [options] name...

参数:

-r 将目录及以下之档案亦逐一删除。

直接删除当前目录下的所有文件及目录,命令行为:

rm -rf *

主要用于复制文件或目录。

cp [options] source dest

cp [options] source... directory

磁盘管理

用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。

cd [dirName]

dirName:要切换的目标目录。

用于显示目录或文件的大小。

du会显示指定的目录或文件所占用的磁盘空间。

ex:以以K,M,G为单位,显示test文件的大小(--human-readable)

du -h test

用于建立名称为 dirName 之子目录。

mkdir [-p] dirName

参数说明:

-p 确保目录名称存在,不存在的就建一个。

删除空的目录。

rmdir [-p] dirName

参数:

-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

用于以树状图列出目录的内容。

执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

tree [-aACdDfFgilnNpqstux][-I ][-P ][目录...]

用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

ls [-alrtAFR] [name...]

系统管理

可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。

使用权限:系统管理者。

shutdown [-t seconds] [-rkhncfF] time [message]

参数说明:

-t seconds : 设定在几秒钟之后进行关机程序。

-k : 并不会真的关机,只是将警告讯息传送给所有使用者。

-r : 关机后重新开机。

-h : 关机后停机。

-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。

-c : 取消目前已经进行中的关机动作。

-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。

-F : 关机时,强迫进行 fsck 动作。

time : 设定关机的时间。

message : 传送给所有使用者的警告讯息。

用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。

使用权限:所有使用者。

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参数说明:

-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh

-m -p 或 --preserve-environment 执行 su 时不改变环境变数

-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者

-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell

--help 显示说明文件

--version 显示版本资讯

- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root

USER 欲变更的使用者帐号

ARG 传入新的 shell 参数

变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)(不加 - 则不改变环境)

su - clsung

以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。

用于显示当前进程 (process) 的状态。

ps [options] [--help]

ex:显示当前全部进程

ps -A 显示进程信息

用于删除执行中的程序或工作。

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。

kill [-s ][程序] 或 kill [-l ]

系统设置

用来更改使用者的密码

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

必要参数:

-d 删除密码

-S 显示密码信息

修改用户信息

$ passwd runoob //设置runoob用户的密码

Enter new UNIX password: //输入新密码,输入的密码无回显

Retype new UNIX password: //确认密码

passwd: password updated successfully

#

用于设置或显示环境变量。

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

export [-fnp][变量名称]=[变量设置值]

参数说明:

-f  代表[变量名称]中为函数名称。

-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p  列出所有的shell赋予程序的环境变量。

set 用来显示本地变量

env 用来显示环境变量

export 用来显示和设置环境变量

备份压缩

用于压缩文件。

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][--best/fast][文件...]

gzip [-acdfhlLnNqrtvV][-S ][-<压缩效率>][--best/fast][目录]

参数:

-q 不显示指令执行过程。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-v 显示指令执行过程或显示版本信息。

-d或--decompress或----uncompress  解开压缩文件。

用于备份文件。

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b ][-C ][-f ][-F

参数:

-x或--extract或--get 从备份文件中还原文件。

-c或--create 建立新的备份文件。

-t或--list 列出备份文件的内容。

-z或--gzip或--ungzip 通过gzip指令处理备份文件。

-v或--verbose 显示指令执行过程。

-f<备份文件>或--file=<备份文件> 指定备份文件。

ex:

压缩文件 非打包

$ touch a.c

tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz

a.c

列出压缩文件内容

$ tar -tzvf test.tar.gz

-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c

解压文件

$ tar -xzvf test.tar.gz

a.c

用于压缩文件。

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]

用于解压缩zip文件

unzip为.zip压缩文件的解压缩程序。

unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

总结

本文仅简单解释shell和记录部分常见的交互式命令,详细信息请参考如下引文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值