`
444878909
  • 浏览: 641439 次
文章分类
社区版块
存档分类
最新评论

linux shell学习

 
阅读更多

1. shell是什么?
shell是用户与kernel进行交互的人机交互接口;
shell也是一个命令解释器,它解释并执行用户在shell下执行的命令、程序或脚本文件。
shell归根结底也是linux系统中运行的一个程序,我们可以发送SIGKILL这个signal给当前的shell来杀死它.
当shell被杀死后,我们就不能通过shell发送命令给linux kernel来实现人机交互了。
sh-# ps
PID TTY TIME CMD
409 ? 00:00:00 init
943 ? 00:00:00 sh
1213 ? 00:00:00 sh
4918 ? 00:00:00 ps
sh-# kill -9 943
Killed
INIT: Entering runlevel: 3

2. 如何查看当前系统正在运行的shell?
sh-# echo $SHELL
/bin/sh
sh-# echo $0
/bin/sh

3. 如何确认当前系统中有多少个shell?
sh-# cat /etc/shells
sh-# ls /bin/*sh /usr/bin/*sh
/bin/bash /bin/sh

4. shell有很多执行选项,有什么作用?
shell很强大,它有很多很多执行选项,了解了这些选项的作用对于写shell scripts会
很有帮助。
sh-# man /bin/sh
可以通过查看bash的命令手册来具体了解这些命令选项。

我在下面这篇博文中已经有大概介绍过shell
http://blog.csdn.net/boyxulin1986/article/details/11238783
后面我们会陆续的通过一些小案例来介绍一些常用的shell执行选项。

5. -f选项的应用。
-f这个选项用来关闭shell文件名产生功能。
在shell scripts中通过判定某个特定的档案是否存在来决定程序实际执行的流程。
sh-# touch /tmp/shell_test
sh-# ls -hl /tmp/shell_test
-rw-r--r-- 1 root root 97 Jan 1 01:14 /tmp/shell_test
sh-# chmod 755 /tmp/shell_test
sh-# cat /tmp/shell_test
if [ -f /proc/sys/kernel/core_pattern ]; then
cat /proc/sys/kernel/core_pattern
echo "/proc/sys/kernel/core_pattern exist"
else
echo "/proc/sys/kernel/core_pattern not exist"
fi

sh-# /tmp/shell_test
core
/proc/sys/kernel/core_pattern exist
sh-# cat /proc/sys/kernel/core_pattern
core
sh-#

shell真的是博大精深,需要慢慢积累并体会其中的奥妙。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics