Linux Shell 学习(1)

1. 查看系统上可用的shell
cat /etc/shellsjava

2. 获得目前使用的shell类型
echo $SHELL
ps $$
ps -p $$python

3. 查看某个命令是不是是一个shell内部命令
type [-a] [command]c++

4. 显示shell command的全路径
which [command]
root@localhost :/home/James/mypro/shell# which pwd
/bin/pwd
root@localhost :/home/James/mypro/shell# which bash
/bin/bash
root@localhost :/home/James/mypro/shell# which gcc
/usr/bin/gcc
root@localhost :/home/James/mypro/shell# which emacs
/usr/bin/emacs
root@localhost :/home/James/mypro/shell# which history
root@localhost :/home/James/mypro/shell# (若是命令是shell内部命令,不显示任何路径)shell

5. Starting a Script With #! (shebang line, 组织行)
它告诉系统用哪一个interpreter来执行这个脚本。
e.g.
#!/usr/bin/python
print "hellO"bash

6. 一个语言的基本元素
data
和大部分脚本语言同样,动态类型的。编辑器

assignment
var=xxxx ##注意=左右不能有空格,不然系统认为var是命令,若是在if [ ]中,会认为是相等判断。(说实话,我以为这个真没有Tcl的set var xxxx好,简洁明白,还不容易出错)spa

statement
command [option] [args] ....net

branch
if-else-fi branch
case - ) - esac branch
(这里我再次出来吐槽。各类语言标识一块block的方法各不相同。有用{}的,如c/c++/java/Tcl等;有用强制缩进的,如python;还有就是如shell这种用关键词来标识的,在shell中[] () {}都有用处,而强制缩进显然不合适(你在闹哪样啊强制缩进!),因此用关键词来标识一个block比较合理。而后我要吐槽下强制缩进,你没有一个合适的编辑器真心闹不住啊!你直接开python写两个简单分支都要记得按tab键,DT不DT!)ip

iteration
for-do-done
while-do-done
until-do-doneget

input and output
read, printf, echo等。(对于输出,我推荐用printf)

7. 查看全部系统变量 set env printenv

相关文章
相关标签/搜索