unix快速入门指南
什么是Unix?
UNIX操作系统是一组充当计算机和用户之间的链接方案。
UNIX最初是于1969年在贝尔实验室,包括肯·汤普森,丹尼斯里奇,道格拉斯·麦克罗伊,乔Ossanna一组AT&T员工的发展。
有在市场上的各种Unix变种。Unix的的Solaris,AIX,HP Unix和BSD是几个例子。Linux是Unix的同样的味道这是免费提供。
几个人可以使用在同一时间UNIX计算机; 因此UNIX被称为多用户系统。
用户也可以运行在同一时间多个程序; 因此UNIX被称为多任务处理。
登录Unix的
您可以登录到使用系统登录命令如下-
login : amrood amrood's password: Last login: Sun Jun 14 09:32:32 2009 from 62.61.164.73 $
注销
当您完成您的会话,你需要退出系统,以确保没有其他人访问您的文件,而伪装成你。
要注销
只需键入注销在命令提示符下命令,系统会清理一切,断开连接
文件管理
在UNIX中有三种基本类型的文件 -
普通文件列表:一个普通的文件是包含数据,文本或程序指令在系统上的一个文件。在本教程中,你看与普通文件的工作。
目录:目录同时存储特殊和普通文件。对于熟悉Windows或Mac OS用户,UNIX目录等同于文件夹。
特殊文件:一些特殊文件提供访问硬件,如硬盘,CD-ROM驱动器,调制解调器和以太网适配器。其他特殊文件类似于别名或快捷方式,使您可以使用不同的名称来访问一个文件。
文件名替换
命令 | 描述 |
---|---|
ls - [L] | 列表文件在当前目录 |
ls - [L] | 列出隐藏文件 |
〜 | 主目录 |
〜user | 另一个用户的主目录 |
? | 外卡,匹配单个字符 |
* | 外卡,多个字符匹配 |
文件名操作
命令 | 描述 |
---|---|
cat 文件名 |
显示文件内容 |
cp 源文件路径 | 复制源文件到目的地 |
mv 旧名字 新名字 | 移动(重命名)使用oldName为newname。 |
rm文件名 | 删除(删除)文件名 |
chmod NNN文件名 | 更改权限 |
touch 文件名 | 更改修改时间 |
ln [-s] 旧文件名 新文件名 | 创建于使用oldName软链接 |
ls -F | 显示有关文件类型的信息。 |
目录管理
命令 | 描述 |
---|---|
mkdir 目录名 | 创建一个新的目录目录名 |
rmdir 目录名 | 删除现有的目录,只要它是空的。 |
cd 目录名 | 将目录更改为目录名 |
cd - | 切换到上次工作目录。 |
cd〜 | 切换到主目录 |
pwd | 显示当前的工作目录。 |
环境设置
当您在命令提示符下键入的任何命令,外壳具有定位命令可以执行前。在PATH变量指定在该外壳应该寻找命令的位置。
PS1和PS2变
该壳显示器作为命令提示被存储在变量PS1的字符。
当您发出一个命令,是不完整的,外壳会显示一个提示继发,等待你来完成命令和命中再次输入。默认的次级提示是>(大于号),但可以通过重新定义PS2 shell变量被改变 -
转义字符
转义序列 | 描述 |
---|---|
\t | 当前时间,表现为HH:MM:SS。 |
\d | 当前日期,表示为工作日月日 |
\n | 新队。 |
\s | 当前shell环境。 |
\W | 工作目录。 |
\w | 工作目录的完整路径。 |
\u | 当前user.s用户名。 |
\h | 目前该机的主机名。 |
\# | 当前命令的命令编号。随着每一个新的命令增加输入。 |
\$ | 如果有效UID是0(也就是,如果你以root身份登录),结束与#字符的提示; 否则,使用$。 |
环境变量
以下是重要的环境变量的部分列表。这些变量将被设置和如上所述访问 -
变量 | 描述 |
---|---|
DISPLAY | 包含针对X11程序应该是默认使用显示器的标识符。 |
HOME | 表示当前用户的主目录:对于内置命令光盘中的默认参数。 |
IFS | 指示所使用的解析器膨胀之后字分割内部字段分隔符。 |
LANG | LANG扩展到默认的系统区域设置; LC_ALL可用于覆盖。举例来说,如果它的值是PT_BR,然后将语言设置为(巴西),葡萄牙语和语言环境到巴西。 |
LD_LIBRARY_PATH | 在一个动态链接许多Unix系统,包含Exec之后建立的过程图像时,在任何其他目录中搜索前的动态链接程序应搜索共享对象目录的冒号分隔的列表。 |
PATH | 指示命令的搜索路径。这是目录中的外壳看起来的命令的冒号分隔的列表。 |
PWD | 指如设置由cd命令的当前工作目录。 |
RANDOM | 生成每次引用在时间0和32,767之间的随机整数。 |
SHLVL | 每个Bash的实例启动时递增之一。这个变量是用于确定内置退出命令是否结束当前会话有用。 |
TERM | 指的是显示类型 |
TZ | 指的时区。它可以像数值GMT,AST等。 |
UID | 扩展为当前用户的数字用户ID,在shell启动初始化。 |
过滤器和管道
命令 | 描述 |
---|---|
WC [-l] | 字/行计数 |
tail [-n] | 显示从文件最后n行 |
sort [-n] | 排序行 |
pr -t |
多列输出 |
grep “模式”文件名 | 搜索使用grep模式 |
pg or more | 分页文件内容显示。 |
特殊变量
变量 | 描述 |
---|---|
$0 | 当前脚本的文件名。 |
$n | 这些变量对应于与一个脚本被调用的参数。这里的n是对应于一个参数的位置(第一个参数是$ 1,第二个参数是$ 2,依此类推)的正十进制数。 |
$# | 供应给脚本的参数数目。 |
$* | 所有参数都是双引号。如果脚本接收到两个参数,$ *等于$ 1 $ 2。 |
$@ | 所有参数单独双引号。如果脚本接收到两个参数,$ @相当于$ 1 $ 2。 |
$? | 最后一个命令的退出状态执行。 |
$$ | 当前shell的进程号。对于shell脚本,这下,他们正在执行的进程ID。 |
$! | 最后一个后台命令的进程号。 |
壳牌运营的基本
算术运算符
假设变量包含10和变量b持有20话 -
操作者 | 描述 | 例 |
---|---|---|
+ | 此外 - 对运算符两边将值 | `$ EXPR A + $ B`会给30 |
- | 减法 - 减去从左手操作右手操作 | `expr的美元 - $ B`会给-10 |
* | 乘法 - 相乘操作员的任一侧值 | `EXPR $ A * $ B`将给予200 |
/ | 分部 - 由右手操作数除以左手操作 | `EXPR $ B / $了`会给2 |
% | 模 - 由右手操作数和剩余收益除以左手操作 | `EXPR $ B $%A`会给0 |
= | 分配 - 在分配左操作数右操作 | 一个= $ B将会分配的B值成 |
== | 平等 - 比较两个数字,如果两个相同则返回true。 | [$ A == $ B]将返回false。 |
!= | 没有平等 - 比较两个数字,如果两个不同,则返回true。 | [$ A!= $ B]会返回true。 |
关系运算符
假设变量包含10和变量b持有20话 -
操作者 | 描述 | 例 |
---|---|---|
-eq | 检查两个操作数的值相等与否,如果是,则条件为真。 | [$ A $ -eq B]是不正确的。 |
-ne | 检查,如果两个操作数的值相等与否,如果值不相等,则条件变为真。 | [$一个-ne $ B]是真实的。 |
-gt | 检查左操作数的值大于右操作数的值,如果是,则条件为真。 | [$ A $ -gt B]是不正确的。 |
-lt | 检查左操作数的值小于右操作数的值,如果是,则条件为真。 | [$一个-lt $ b]是真实的。 |
-ge | 检查左操作数的值大于或等于右边的操作数的值,如果是,则条件为真。 | [$ A $ -ge B]是不正确的。 |
-le | 检查左操作数的值小于或等于右边的操作数的值,如果是,则条件为真。 | [$一个-le $ B]是真实的。 |
布尔运算符
假设变量包含10和变量b持有20话 -
操作者 | 描述 | 例 |
---|---|---|
! | 这是合乎逻辑的否定。这种反转条件为真为假,反之亦然。 | [!假]是真实的。 |
-o | 这是逻辑或。如果一个操作数为真,那么情况会是真的。 | [$一个-lt 20 -o $ B -gt 100]是真实的。 |
-a | 这是逻辑与。如果两个操作数为真,那么情况将是真实的,否则那将是错误的。 | [$一个-lt 20 -a $ B -gt 100]是假的。 |
字符串运算符
假设变量持有“ABC”和变量b举办的“EFG”,那么 -
操作者 | 描述 | 例 |
---|---|---|
= | 检查两个操作数的值相等与否,如果是,则条件为真。 | [$一个= $ B]是不正确的。 |
!= | 检查,如果两个操作数的值相等与否,如果值不相等,则条件变为真。 | [$ A!= $ B]是真实的。 |
-z | 检查给定的字符串操作数大小为零。如果是长度为零则返回true。 | [-z $ A]是不正确的。 |
-n | 检查,如果给定的字符串的操作数大小是非零。如果它是非零长度则返回真。 | [-z $ A]是不是假的。 |
str | 检查str是不是空字符串。如果为空,则返回false。 | [$ A]是不是假的。 |
文件测试操作符
假设一个变量文件保存现有的文件名“测试”,其大小为100字节,具有读,写和执行权限-
操作者 | 描述 | 例 |
---|---|---|
-b fiel | 检查文件是一个块特殊文件,如果是,则条件为真。 | [-b $文件]是假的。 |
-c fiel | 检查文件是一个字符特殊文件,如果是,则条件为真。 | [-C $文件]是假的。 |
-d fiel | 检查文件是目录,如果是,则条件为真。 | [-d $文件]是不正确的。 |
-f fiel | 检查文件,而不是一个目录或特殊文件如果是然后条件变成真一个普通的文件。 | [-f $文件]是真实的。 |
-g fiel | 检查文件有其设置组ID(SGID)如果是然后条件变成真位设置。 | [-g $文件]是假的。 |
-k fiel | 检查如果是则条件为真,如果文件有其粘着位设置。 | [-k $文件]是假的。 |
-p fiel | 检查文件是一个命名管道,如果是,则条件为真。 | [-p $文件]是假的。 |
-t fiel | 检查是否文件描述符是开放的,如果是,则条件变为真与终端相关联。 | [-t $文件]是假的。 |
-u fiel | 如果文件有其设置用户ID(SUID)检查是然后条件变成真位设置。 | [-u $文件]是假的。 |
-r fiel | 检查文件如果是然后条件变成真可读。 | [-r $文件]是真实的。 |
-w fiel | 检查文件如果是然后条件变成真写。 | [-w $文件]是真实的。 |
-x fiel | 检查文件如果是则条件变为真执行。 | [-x $文件]是真实的。 |
-s fiel | 检查文件有大小大于0,如果是,则条件为真。 | [-s $文件]是真实的。 |
-e fiel | 检查文件是否存在。实上,即使文件是一个目录,但存在的。 | [-e $文件]是真实的。 |
Shell 判断语句
if...fi 语句
if [ expression ] then Statement(s) to be executed if expression is true fi
if...else...fi 语句
if [ expression ] then Statement(s) to be executed if expression is true else Statement(s) to be executed if expression is not true fi
if...elif...fi 语句
if [ expression 1 ] then Statement(s) to be executed if expression 1 is true elif [ expression 2 ] then Statement(s) to be executed if expression 2 is true elif [ expression 3 ] then Statement(s) to be executed if expression 3 is true else Statement(s) to be executed if no expression is true fi
case...esac语句
case word in pattern1) Statement(s) to be executed if pattern1 matches ;; pattern2) Statement(s) to be executed if pattern2 matches ;; pattern3) Statement(s) to be executed if pattern3 matches ;; esac
Shell循环语句
while循环
while command do Statement(s) to be executed if command is true done
for循环
for var in word1 word2 ... wordN do Statement(s) to be executed for every word. done
until循环
until command do Statement(s) to be executed until command is true done
select循环
select var in word1 word2 ... wordN do Statement(s) to be executed for every word. done
shell 循环控制
break语句
break [n]
continue语句
continue [n]
shell替换
当它遇到包含一个或多个特殊字符的表达式外壳进行替换。
命令替换
当命令给出执行命令替换 -
`command`
变量替换
这里是对所有可能的替换如下表 -
形成 | 描述 |
---|---|
$ {VAR} | 顶替的值变种。 |
$ {VAR:-word} | 如果VAR为null或取消,字代替变种。的值VAR不改变。 |
$ {VAR:=词} | 如果VAR为null或取消,VAR设置为价值字。 |
$ {VAR:消息} | 如果VAR为null或取消,消息被打印到标准错误。这将检查变量设置正确。 |
$ {VAR:+词} | 如果变种被设置,字代替变种 的值VAR不改变。 |
重定向命令
以下是您可以使用重定向命令的完整列表 -
命令 | 描述 |
---|---|
pgm > file | 铂族金属的输出重定向到文件 |
pgm < file | 计划PGM读取文件的输入。 |
pgm >>file | 铂族金属的输出追加到文件。 |
n > file | 从文件描述符n流输出重定向到文件。 |
n >> file | 从流输出文件描述符n附加到文件。 |
n >&m | 合并从流n与流m的输出。 |
n <&m | 从流n与流M将输入。 |
<< tag | 标准输入是从这里通过在行开始下一个标签。 |
| | 需要从一个节目,或过程输出,并把它发送到另一个。 |
Shell帮助页面
本快速指南列出的命令,包括语法和简要说明。更多详细信息,使用unix 常用命令
$man command