全部博文(38)
分类: LINUX
2010-05-17 17:01:46
Shell基本命令
shell 不但是 Unix 的用户交互界面,还是一门程序设计语言,系统注册进入时就会执行一个shell命令文件 .profile ,下面对shell中的常用命令作简单介绍。
$n shell 程序命令行中的第n 个参数,n为0-9,当n 为0时表示命令名
$# 命令行中参数的个数
$$ 本shell 命令的进程号
$! 最后一个后台进程的代号
$* 所有命令行参数
$@ 与$*相似,但其值不同
$HOME 注册时进入的目录
$PATH 命令的搜索目录
$PS1 系统第一个提示符,一般为$
$PS2 系统第二个提示符,一般为>;
shift [n] 将命令行参数往左移一位,但$0不变
变量名=字符串 将字符串赋予变量名,以后可用$变量名引用该变量
export 变量名表 将变量名表所列变量传递给子进程
read 变量名表 从标准输入读字符串,传给指定变量
echo 变量名表 将变量名表指定的变量显示到标准输出
set 显示设置变量
env 显示目前所有变量
if 条件执行,语法是:
if 条件
then 指令
fi
case 分支执行,语法是:
case 字符串变量 in
值1) 指令...
值2) 指令...
...
esac
while 条件为真时循环,语法是:
while 条件
do
指令...
done
until 条件为假时循环,语法是:
until 条件
do
指令...
done
for 变量在表中时循环,语法是:
for 变量名 in 字组表
do
指令...
done
break 从循环中退出,语法:break n
n 表示跳出循环的层数
continue 继续循环,语法:continue n
n 表示退到包含continue 语句的第n 层继续循环
exit 退出shell
func shell内部可定义函数,语法:
func 函数名()
{
指令...
}
expr 将其后的串解释为表达式并计算其值,运算符前后需有空格
trap 捕获信号,语法 trap n ,捕获信号 n (信号说明参见kill)
test 条件测试,语法 test [选项] 参数
选项 -f 文件 若文件存在且可读则真
-w 文件 若文件存在且可写则真
-x 文件 若文件存在且可执行则真
-f 文件 若文件存在且为普通文件则真
-d 文件 若文件存在且为目录文件则真
-p 文件 若文件存在且为fifo文件则真
-s 文件 若文件存在且不空则真
-z 串 若串长度为0则真
-n 串 若串长度不为0则真
串 若串不是空串则真
串1=串2 若串1等于串2则真
串1!=串2 若串1不等于串2则真
n1 -eq n2 若n1与n2数值相当则真
n1 -ne n2 若n1与n2数值不相当则真
n1 -lt n2 若n1小于n2则真
n1 -le n2 若n1小于等于n2则真
n1 -gt n2 若n1大于n2则真
n1 -ge n2 若n1大于等于n2则真
可用 与 -a 或 -o 非 ! 将条件表达式连接起来
几个基本的shell命令,用ssh管理主机必备。
1.ls 列出目录下的文件,不同类型的文件颜色不同,例如蓝色是文件夹,白色是文件
[root@restoretmp steph]# ls
file.html public_html test
[root@restoretmp steph]#
参数:
ls -a 列出所有文件,包括隐藏文件
[root@restoretmp steph]# ls -a
. .. .bash_logout .bash_profile .bashrc file.html public_html test
[root@restoretmp steph]#
ls -l 列出所有者 size 文件权限 修改日期
ls -R 递归列出所有子目录的内容
2. cd 转移目录
cd /home/steph 将转移到/home/steph
cd .. 上移一个目录
cd 回到根目录
3. 建立新文件和文件夹
touch new-filename 建立新文件
mkdir new-directory 建立新目录
4.删除文件和目录
rm filename 删除名为 filename的文件
rmdir foldername 删除名为foldername的目录
5.修改文件夹权限
chmod 755 foldername 将把名为foldername的文件夹的权限修改为755
6.修改用户
chown steph:steph file.html 把file.html的用户修改为steph:steph
2. 压缩和解压缩文件
gzip 和 gunzip
压缩:
gzip filename
文件即会被压缩,并被保存为 filename.gz
解压缩:
gunzip filename.gz
filename.gz 会被删除,而继之以 filename
可以通过命令man gip 和man gunzip获得命令的详细说明.
zip 和 unzip
要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:
zip -r filename.zip filesdir
在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。
要解压缩 zip 文件的内容,键入以下命令:
unzip filename.zip
你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
zip -r filename.zip file1 file2 file3 /usr/work/school
上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。