linux shell学习

本文介绍了shell作为用户与内核交互接口的基本概念,并讲解了如何查看和管理系统的shell进程。此外,还介绍了shell脚本的基础知识及常用执行选项,通过实例展示了如何使用-f选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/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真的是博大精深,需要慢慢积累并体会其中的奥妙。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值