the basic shell skills.
 
  • Bourne shell
    • sh
    • ksh
    • Bash
    • psh
    • zsh
  • C shell
    • csh
    • tcsh
 
[root@bogon temp]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
 
 
1.echo
 
[root@bogon temp]# echo "hello world!"
-bash: !": event not found
[root@bogon temp]# echo 'hello world!'
hello world!
 
 
2.sh
 
sh script must declare #!/bin/bash at the begining
you'd better show note 
 
[root@bogon sh]# cat -A hello.sh
#!/bin/bash$
#Ryan$
$
echo "Hello World"$
 
 
cat -A will print all character include \n. You can see, my script hava a $, this is the \n in linux, if in windows, it will be ^M$, you have to run dos2unix to convert it.
 
 
3.Basis
 
 
3.1.history
 
show the history command you had typed
history
!n --execute the num n
!!  --execute the laste , acturelly, we use ↑
 
3.2.alias
 
[root@bogon sh]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 
 
3.3 shortcuts
 
ctrl+A     move to line start
ctrl+E     move to line end
ctrl+C     stop
ctrl+L     clean
ctrl+U   delete the command before the cursor
ctrl+K    delete the command after the cursor
ctrl+Y     paste the command that you ctrl+U/K
ctrl+R     search from history
ctrl+D     exit
ctrl+Z     suspend and background
 
 
 
4.command
 
ls -a /etc/ | more
 
grep 
-i ingnore case
-n show linenum
-v negate
 
var
  • =bothends can't be space
  • $var_name, ${varname}
  • `` ==$()
 
envrionment
parent-shell->sub-shell
export var_name=var_value
env
unset var_name
source profile, . ./profile
  • /etc/profile
  • /etc/profile.d/*.sh
  • ~/.bash_profile
  • ~/.bashrc
  • /etc/bashrc
 
 
 
 
? one
* any
[] the char inside[]
[-] the char in the range of [-]
[^] the  opposite char
'' anything is char
"" double quotation, specific char like "$"、"`"、"\"
`` ==$()
$() command to be var
# note
\ transfferred meaning
 
 
var position
 
$n $0-command itselt; $1-$9 the attr after command; beyond 10 ${10}
$* all attrs as a attr
$@ all attrs as attrs
$# the sum of attrs
$? the status of the last command : 0? correct:error
$$ current PID
$! last PID in backgroud
 
 
read -t 30 -p "please input somethind :"  sm
echo $sm
 
 
caculate num
  • declare -i cc=$aa+$bb
  • dd=$(expr $aa + $bb)
  • ff=$(($aa+$bb))
 
 
regular
 
* behind char any times
. one char
^ begin
$ end
[] any inside char
[^] can be inside char
\ transfer
\{n\} n times behind. [0-9]\{4\}  ~ 1234; [1][3-8][0-9]\{9\} ~ tel
\{n,\} at least n times
\{n,m\} at least n times and at most m times
.* any char any times
\.$ end with .
 
 
output
 
command >file         cover
command >>file       append
err command 2>file
err command2>>file
 
command>file 2>&1
command  &>> file
 
char cut
 
cut
-d seperator
-f the index
 
[root@00:09:13 /temp/project/sh]$ cut -d ":" -f 1,3 /etc/passwd
root:0
bin:1
 
[root@00:13:16 /temp/project/sh]$ cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1,3
amandabackup:33
ryan:1000
yue:1001
yangmi:1002
bimm:1003
cangls:1004
st:1005
 
 
 
printf
%ns:      n char
%ni:       n num
%m.nf     12.34
 
 
awk
 awk [POSIX or GNU style options] -f progfile [--] file ...
 
 
[root@00:24:15 /temp/project/sh]$ cat stu.txt
name    age aa   
mrf    12    bb
ryan    18    vv
[root@00:24:31 /temp/project/sh]$ awk '{printf $2 "\t" $3 "\n"} ' stu.txt
age    aa
12    bb
18    vv
 
[root@00:24:33 /temp/project/sh]$ df -h | awk '{print $1 "\t" $5 "\t" $6}'
[root@00:29:04 /temp/project/sh]$ df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  5.3G   45G   11% /
devtmpfs                 1.6G     0  1.6G    0% /dev
tmpfs                    1.6G     0  1.6G    0% /dev/shm
tmpfs                    1.6G  9.0M  1.6G    1% /run
tmpfs                    1.6G     0  1.6G    0% /sys/fs/cgroup
/dev/mapper/centos-home  278G   37M  278G    1% /home
/dev/sda6                497M  162M  335M   33% /boot
tmpfs                    327M     0  327M    0% /run/user/0
[root@00:29:12 /temp/project/sh]$ df -h | grep root | awk '{print $5}' | cut -d "%" -f111
 
 
 
 
sed
 
change the file line2
sed -i '2c theReplaceMsg'  file
 
p     printf
d     delte
a     append
 i     insert
c     replace   line
s     sed 'ns/old/new/g' file
 
 
if
 
[root@bogon sh]# [ "$aa"=="$bb" ] && echo yes || echo no
yes
 
-n var_name      if var_name!=null return true
-z  var_name      if var_name==null return true
! var_name     opposite  
 
 
if [    ]  ;then
  ....
elif [    ]
     then
     ...
else
     ...
fi
or
if [   ]
     then
.....
fi
 
     
case
 
case $var_name in
     val1)
          ...
          ;;
     val2)
          ...
          ;;
     *)
          ...
          ;;
 esac
 
 
for
 
for var_name in val1 val2 val3 ...
     do
          ..
     done
 
 
while
 
while [  $i -le 100    ]
     do
          ...
     done
 
 
 
 
5.Other
 
ps
 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  41632  4060 ?        Ss   5月13   0:12 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2  0.0  0.0      0     0 ?        S    5月13   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    5月13   0:05 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    5月13   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    5月13   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    5月13   0:00 [rcuob/0]
root        10  0.0  0.0      0     0 ?        S    5月13   0:00 [rcuob/1]
root        11  0.0  0.0      0     0 ?        S    5月13   0:00 [rcuob/2]
root        12  0.0  0.0      0     0 ?        S    5月13   0:00 [rcuob/3]
root        13  0.0  0.0      0     0 ?        S    5月13   4:18 [rcu_sched]
 
top
 
kill
 
kill -1  restart
kill -9  pid  (force)
kill 15  pid  (default)
 
 
crond
crontab -e
 
 
 

learn shell的更多相关文章

  1. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

  2. Shell脚本编程与文件系统修复

    导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...

  3. shell单引号双引号详解

    linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了) " "(双引号)与 ' '(单引号)的区别    你在shell prompt(shell 提示)后面敲 ...

  4. Shell学习(二)Shell变量

    一.Shell变量 变量的定义 例子: my_job="Learn Shell" PS:变量名和等号之间不能有空格!!! 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头 ...

  5. mongoDB & Nodejs 访问mongoDB (一)

    最近的毕设需要用到mongoDB数据库,又把它拿出来再学一学,下盘并不是很稳,所以做一些笔记,不然又忘啦. 安装 mongoDB & mongoVUE mongoDB: https://www ...

  6. Linux--Introduction and Basic commands(Part one)

    Welcome to Linux world! Introduction and Basic commands--Part one J.C 2018.3.11 Chapter 1 What Is Li ...

  7. Linux awk命令使用方法

    awk是linux上非常好用的文本处理工具,常用于指定列的处理,包括获取指定列的内容.根据指定列匹配关系输出等文本处理.本文主要描述awk命令的基本语法.正则表达式与操作符的使用.常用内置变量的含义和 ...

  8. 2019 DevOps 技术指南

    原文链接:https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb 原文作者:javinpaul 翻译君:CODING 戴维奥普斯 写在前 ...

  9. Learn the shell

    learn the shell what is the shell? when we speak of the command line,we are really to the shell.Actu ...

随机推荐

  1. .NET短距离领域通信-32feet.NET

    32feet.NET[http://32feet.codeplex.com/]是shared-source的项目,支持CF.net 2.0以及桌面版本.NET framework,提供短距离领域(pe ...

  2. 剑指Offer面试题:32.数字在排序数组中出现的次数

    一.题目:数字在排序数组中出现的次数 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4. 二.解题思路 2 ...

  3. java中文乱码解决之道(八)-----解决URL中文乱码问题

    我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...

  4. 从阿里巴巴IPO联想到创始人和资方关系

    [小九的学堂,致力于以平凡的语言描述不平凡的技术.如要转载,请注明来源:小九的学堂.cnblogs.com/xfuture] 5月7日,阿里巴巴于今日向美国证券交易委员会(SEC)提交了IPO(首次公 ...

  5. 在C#代码中应用Log4Net(一)简单使用Log4Net

    首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存 ...

  6. [Unity3D]自己动手重制坦克舰队ArmadaTank

    [Unity3D]自己动手重制坦克舰队ArmadaTank 我玩过一款坦克游戏ArmadaTank(坦克舰队),如下图所示 几个月前我尝试用Unity3D重制这款游戏,已经可以玩起来了.下面是在PC上 ...

  7. WCF basicHttpBinding之Transport Security Mode, clientCredentialType="None"

    原创地址:http://www.cnblogs.com/jfzhu/p/4071342.html 转载请注明出处 前面文章介绍了<WCF basicHttpBinding之Message Sec ...

  8. Module Zero之角色管理

    返回<Module Zero学习目录> 角色实体 角色管理者 多租户 角色实体 角色实体代表了该应用的一个角色.它应该派生自AbpRole类,如下所示: public class Role ...

  9. innerHTML,outerHTML,innerText,outerText区别以及insertAdjacentHTML()方法

    在需要给文档插入大量的新的HTML标记的情况下,通过多次DOM操作先创建节点再指定它们之间的关系会非常麻烦而且效率不高,相对而言插入标记的方法会更加简单,速度也更快. 插入标记中有这四个属性inner ...

  10. 携程App的网络性能优化实践

    首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一 ...