第一部分:
1.
history 用来查看命令历史
[
root@niejicai-linux ~]# ls
10.txt 34.txt.zip 999.txt
12 3.txt abc.zip
[
root@niejicai-linux ~]#
!! 表示上一次执行的命令
ls
10.txt 34.txt.zip 999.txt
12 3.txt abc.zip
[
root@niejicai-linux ~]# ls /etc/passwd
/etc/passwd
[
root@niejicai-linux ~]# ls
!$ 上一条命令的最后一个参数
ls /etc/passwd
/etc/passwd
[
root@niejicai-linux ~]#history
999 ls
1000 history
1001 ls
1002 ls /etc/passwd
1003 history
-------
[
root@niejicai-linux ~]#
!999 表示执行命令历史的第999条命令
ls
10.txt 34.txt.zip 999.txt
12 3.txt abc.zip
234 4.txt anaconda-ks.cfg
2.txt 5.txt etc
33.tar 6.txt install.log
33.tar.bz2 7.txt install.log.syslog
33.tar.gz 90.txt jicai
33.tar.xz 91.txt niejicailinux.txt
34.tar 92.txt root
34.txt 93.txt
--------------
995 mv /etc/yum.repos.d.bak/ /etc/yum.repos.d
996 ls
997 cd
998 cd /etc/yum.repos.d/
999 ls
1000 history
1001 ls
1002 ls /etc/passwd
1003 history
1004 ls
1005 history
[
root@niejicai-linux ~]#
!cd 表示执行history 记录中的从下到上的第一个个带有cd的命令
cd /etc/yum.repos.d/
[
root@niejicai-linux yum.repos.d]#
最后一次
2.
[
root@niejicai-linux ~]# ls [12].txt
[] 里面任选一个
2.txt
3.
> 从定向, 从定向的之后,以前的内容会被清空,从新写入新的内容
>> 追加, 在最后一个行加上要写人的内容,用来的内容不会被删除
<反向从定向 , 例如cat <2.txt就相当于cat.2.txt
1111111
11111111111
[
root@niejicai-linux ~]# cat 2.txt
1111111
11111111111
[
root@niejicai-linux ~]#
4.
2> 错误重定向
1> 正确重定向,但是1可以不写
[
root@niejicai-linux ~]# ls error.log
error.log
[
root@niejicai-linux ~]# cat error.log
ls: cannot access niejicai: No such file or directory
[
root@niejicai-linux ~]# cat error.log
ls: cannot access niejicai: No such file or directory
ls: cannot access niejicai: No such file or directory
[
root@niejicai-linux ~]#
应用:
5.| 管道
[
root@niejicai-linux ~]# ls
10.txt 34.txt.zip 999.txt
12 3.txt abc.zip
234 4.txt anaconda-ks.cfg
2.txt 5.txt error.log
33.tar 6.txt etc
33.tar.bz2 7.txt install.log
33.tar.gz 90.txt install.log.syslog
33.tar.xz 91.txt jicai
34.tar 92.txt niejicailinux.txt
34.txt 93.txt root
10.txt 12 234 2.txt 33.tar 33.tar.bz2 33.tar.gz 33.tar.xz 34.tar 34.txt 34.txt.zip 3.txt 4.txt 5.txt 6.txt 7.txt 90.txt 91.txt 92.txt 93.txt 999.txt abc.zip anaconda-ks.cfg error.log etc install.log install.log.syslog jicai niejicailinux.txt root
1111111
11111111111
[
root@niejicai-linux ~]#
6.作业控制:
ctrl +z,jobs , fg ,bg
[
root@niejicai-linux ~]# sleep 200 休眠200s
^Z
ctrl +c 终止
[3]+ Stopped sleep 200
ctrl +z 暂停一个任务
[
root@niejicai-linux ~]# jobs
jobs查看后台的任务
[2]- Stopped sleep 100
[3]+ Stopped sleep 200
[
root@niejicai-linux ~]# fg 2
fg 把一个任务调回来,fg后面
加任务的id。如果后面不加任务id默认去执行有+这个,因为这个优先级比较高。
sleep 100
^Z
[2]+ Stopped sleep 100
[
root@niejicai-linux ~]# fg 3
sleep 200
^Z
[3]+ Stopped sleep 200
[
root@niejicai-linux ~]# fg
sleep 200
^Z
[3]+ Stopped sleep 200
[
root@niejicai-linux ~]#
7.变量
echo
[
root@niejicai-linux ~]# echo $ HOME
$ HOME
[
root@niejicai-linux ~]# echo $ PATH
$ PATH
[
root@niejicai-linux ~]# a=11
赋值了之后就可以输出
[
root@niejicai-linux ~]# echo $a
11
[
root@niejicai-linux ~]# echo $b
[
root@niejicai-linux ~]#
env
env 可以列出当前用户的所有环境变量以及用户自定义全局变量
set
set命令可以把所有变量列出来包括系统的和自定义的全局变量以及当前shell自定义变量
[
root@niejicai-linux ~]#
export a=1 全局声明
[
root@niejicai-linux ~]#
bash
[
root@niejicai-linux ~]#
echo $a
1
比如,这个是不对的
[root@niejicai-linux ~]#3a=1
[root@niejicai-linux ~]#a-1=1
但是下面
[root@niejicai-linux ~]#a='niejicai linux' 单引号,比双引号更加严谨
这个是对的。
变量的内容可以叠加
[
root@niejicai-linux ~]# a=1
[
root@niejicai-linux ~]# b=$a"123"
[
root@niejicai-linux ~]# echo $b
1123
[
root@niejicai-linux ~]# c=$a$b
[
root@niejicai-linux ~]# echo $c
11123
[
root@niejicai-linux ~]#
、
1.2/etc/下面的四个文件
[
root@niejicai-linux ~]# ls /etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile
/etc/bashrc /etc/profile /root/.bash_profile /root/.bashrc
[
root@niejicai-linux ~]#
是系统的,是全局的,针对任何用户的。
/etc/bashrc
/etc/profile
针对用户自己的。
/root/.bash_profile
/root/.bashrc
[
root@niejicai-linux ~]# echo $PS1
[\u@\h \W]\$
[
root@niejicai-linux ~]# \u=username \h=hostname \w=path \$=[$#]
[
root@niejicai-linux ~]#
PS1='[\h@\u \w] \$'
[niejicai-linux@root ~] #ls
10.txt 33.tar.bz2 34.txt.zip 7.txt 999.txt install.log
12 33.tar.gz 3.txt 90.txt abc.zip install.log.syslog
234 33.tar.xz 4.txt 91.txt anaconda-ks.cfg jicai
2.txt 34.tar 5.txt 92.txt error.log niejicailinux.txt
33.tar 34.txt 6.txt 93.txt etc root
[
niejicai-linux@root ~] #cd /tmp/
[
niejicai-linux@root /tmp] #cd /etc/init.d/
[
niejicai-linux@root /etc/init.d] #
PS1='[\u@\h \w]\$ '
[
root@niejicai-linux /etc/init.d]# cd
在bash中,
.相对于source
测试:
[
root@niejicai-linux ~]#
vim .bash_profile
[
root@niejicai-linux ~]#
vim .bashrc
[
root@niejicai-linux ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
echo "profile"
[
root@niejicai-linux ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
echo "bashrc"
[
root@niejicai-linux ~]#
接着测试
[
root@niejicai-linux ~]# bash
bashrc
[
root@niejicai-linux ~]# exit
exit
[
root@niejicai-linux ~]# su -
bashrc
profile
[
root@niejicai-linux ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
echo "profile"
[
root@niejicai-linux ~]#
[
root@niejicai-linux ~]# ls .bash_history
.bash_history
[
root@niejicai-linux ~]# ls .bash_logout
.bash_logout
[
root@niejicai-linux ~]#
8.特殊符号
# 表示注释
|管道
\ 脱译
$ 用在变量的前面
; 多个命令写在一行可以用;号 (cd /tmp/; ls)
~ 家目录
& (两个目录的连接符,ls && cd /tmp/)
( 前台的任务放在后台去 sleep 100 &)
> >> 2> 2>> 从定向
[] 括号中,任意选择一个