linux学习命令总结③

#cd ~ 回到当前用户的家目录

[root@VM_168_102_centos etc]# pwd
/etc //当前所在目录
[root@VM_168_102_centos etc]# cd ~ //回到当前用户家木里
[root@VM_168_102_centos ~]# pwd
/root //当前用户家目录
[root@VM_168_102_centos ~]# su wanghan 
[wanghan@VM_168_102_centos rott]$ cd ~ //回到当前用户家木里
[wanghan@VM_168_102_centos ~]$ pwd 
/home/wanghan  //当前用户家目录
[wanghan@VM_168_102_centos ~]$ 

#cd - 回到上一次所在目录

[wanghan@VM_168_102_centos ~]$ cd /etc //切换到/etc目录
[wanghan@VM_168_102_centos etc]$ cd /tmp //从/etc目录切换到/tmp目录
[wanghan@VM_168_102_centos tmp]$ cd -  //从当前/tmp回到上一次所在目录
/etc //回到了/etc
[wanghan@VM_168_102_centos etc]$ cd - //再从/etc回到上一次所在目录
/tmp //回到了/tmp
[wanghan@VM_168_102_centos tmp]$ 

#pwd命令:查看当前工作目录的完整路径

[wanghan@VM_168_102_centos /]$ pwd
/
[wanghan@VM_168_102_centos /]$ cd /etc
[wanghan@VM_168_102_centos etc]$ pwd
/etc
[wanghan@VM_168_102_centos etc]$ 

#mkdir命令:用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

mkdir [选项] 目录…

[wanghan@VM_168_102_centos tmp]$ ls
agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid
[wanghan@VM_168_102_centos tmp]$ mkdir /tmp/test
[wanghan@VM_168_102_centos tmp]$ ls
agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  test

mkdir –p 目录…

[wanghan@VM_168_102_centos tmp]$ ls
agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  test
[wanghan@VM_168_102_centos tmp]$ mkdir /tmp/wanghan/test
mkdir: cannot create directory `/tmp/wanghan/test‘: No such file or directory
[wanghan@VM_168_102_centos tmp]$ mkdir -p /tmp/wanghan/test
[wanghan@VM_168_102_centos tmp]$ ls
agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  test  wanghan
[wanghan@VM_168_102_centos tmp]$ ls wanghan
test
[wanghan@VM_168_102_centos tmp]$ 

若创建的路径中有尚不再存的目录即可按照路径全部创建

mkdir –v 目录…

[wanghan@VM_168_102_centos tmp]$ mkdir -pv /tmp/a/b/c/d/e/f/abcd
mkdir: created directory `/tmp/a‘
mkdir: created directory `/tmp/a/b‘
mkdir: created directory `/tmp/a/b/c‘
mkdir: created directory `/tmp/a/b/c/d‘
mkdir: created directory `/tmp/a/b/c/d/e‘
mkdir: created directory `/tmp/a/b/c/d/e/f‘
mkdir: created directory `/tmp/a/b/c/d/e/f/abcd‘

显示创建目录过程的详细信息

#rmdir命令:删除已空的目录

[wanghan@VM_168_102_centos tmp]$ ls
a  agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  ceshi  test  wanghan
[wanghan@VM_168_102_centos tmp]$ ls test
test_1
[wanghan@VM_168_102_centos tmp]$ rmdir /tmp/test 
rmdir: failed to remove `/tmp/test‘: Directory not empty  //该目录非空
[wanghan@VM_168_102_centos tmp]$ rmdir /tmp/test/test_1
[wanghan@VM_168_102_centos tmp]$ ls test
[wanghan@VM_168_102_centos tmp]$ rmdir /tmp/test
[wanghan@VM_168_102_centos tmp]$ ls
a  agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  ceshi  wanghan

#shell中的引用

‘ ’:强引用,变量替换不会进行

[wanghan@VM_168_102_centos tmp]$ num=123
[wanghan@VM_168_102_centos tmp]$ echo $num
123
[wanghan@VM_168_102_centos tmp]$ echo ‘$num‘
$num

“ ”:若引用,能够执行变量替换

[wanghan@VM_168_102_centos tmp]$ num=456
[wanghan@VM_168_102_centos tmp]$ echo num
num
[wanghan@VM_168_102_centos tmp]$ echo "num"
num
[wanghan@VM_168_102_centos tmp]$ 

· ·:命令替换,引用命令的执行结果;命令替换的另外一符号:$(命令);

[wanghan@VM_168_102_centos tmp]$ echo ls /tmp
ls /tmp
[wanghan@VM_168_102_centos tmp]$ echo `ls /tmp`
a agent_cmd.sock ap_1002.pid ap_1004.pid ap_1005.pid ap_1007.pid ap_1008.pid ap_1014.pid ceshi wanghan

结合使用:

[wanghan@VM_168_102_centos tmp]$ echo $test
tmp
[wanghan@VM_168_102_centos tmp]$ echo "This is $test"
This is tmp
[wanghan@VM_168_102_centos tmp]$ echo `ls /$test` 
a agent_cmd.sock ap_1002.pid ap_1004.pid ap_1005.pid ap_1007.pid ap_1008.pid ap_1014.pid ceshi wanghan
[wanghan@VM_168_102_centos tmp]$ echo "/tmp:`ls /$test`"
/tmp:a
agent_cmd.sock
ap_1002.pid
ap_1004.pid
ap_1005.pid
ap_1007.pid
ap_1008.pid
ap_1014.pid
ceshi
wanghan

#创建一个一当前日期时间创建一个目录

[wanghan@VM_168_102_centos tmp]$ date=`date +%Y-%m-%d-%H%M%S`
[wanghan@VM_168_102_centos tmp]$ mkdir -pv /tmp/$date
mkdir: created directory `/tmp/2014-08-04-212053‘
[wanghan@VM_168_102_centos tmp]$ ls
2014-08-04-212053  a  agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  ceshi  wanghan
[wanghan@VM_168_102_centos tmp]$ 

#history命令:查看在当前shell进程的保存在缓冲区中的执行过的命令列表,当shell退出时缓冲区的命令会自动化保存至当前用户的家目录中的.bash_history文件中。

[root@VM_168_102_centos ~]# su wanghan
[wanghan@VM_168_102_centos rott]$ history
    1  exit
    2  history
[wanghan@VM_168_102_centos rott]$ who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ pwd
/root
[wanghan@VM_168_102_centos rott]$ history
    1  exit
    2  history
    3  who
    4  pwd
    5  history
[wanghan@VM_168_102_centos rott]$ cat /home/wanghan/.bash_history
exit
[wanghan@VM_168_102_centos rott]$ exit
exit
[root@VM_168_102_centos ~]# su wanghan
[wanghan@VM_168_102_centos rott]$ cat /home/wanghan/.bash_history
exit
history
who
pwd
history
cat /home/wanghan/.bash_history
exit
[wanghan@VM_168_102_centos rott]$ 

!#:通过命令历史列表中的命令编号引用并执行第#条命令

[wanghan@VM_168_102_centos rott]$ history
    1  exit
    2  history
    3  who
    4  pwd
    5  history
    6  cat /home/wanghan/.bash_history
    7  exit
    8  cat /home/wanghan/.bash_history
    9  history
   10  history who
   11  history pwd
   12  history
   13  history who
   14  exit
   15  history
   16  who
   17  history
[wanghan@VM_168_102_centos rott]$ !3
who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ 
!-#:通过命令历史列表中的命令编号引用并执行倒数第#条命令
[wanghan@VM_168_102_centos rott]$ history
    1  exit
    2  history
    3  who
    4  pwd
    5  history
    6  cat /home/wanghan/.bash_history
    7  exit
    8  cat /home/wanghan/.bash_history
    9  history
   10  history who
   11  history pwd
   12  history
   13  history who
   14  exit
   15  history
   16  who
   17  history
   18  who
   19* 
   20  history
[wanghan@VM_168_102_centos rott]$ !-3
who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ 

!!:执行上一次历史命令

[wanghan@VM_168_102_centos rott]$ pwd
/root
[wanghan@VM_168_102_centos rott]$ !!
pwd
/root
[wanghan@VM_168_102_centos rott]$ !!
pwd
/root

! string:执行命令历史列表中最近一次以string开头的命令

[wanghan@VM_168_102_centos rott]$ whatis
usage: whatis keyword ...
[wanghan@VM_168_102_centos rott]$ who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ !w
who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ 

! $:引用上一个命令的最后一个参数,快捷键:Esc .

[wanghan@VM_168_102_centos etc]$ cd /tmp
[wanghan@VM_168_102_centos tmp]$ ls /!$
ls //tmp
2014-08-04-212053  a  agent_cmd.sock  ap_1002.pid  ap_1004.pid  ap_1005.pid  ap_1007.pid  ap_1008.pid  ap_1014.pid  ceshi  wanghan

history –c:清空当前缓存中的历史记录

[wanghan@VM_168_102_centos tmp]$ history
    1  who
    2  pwd
    3  history
[wanghan@VM_168_102_centos tmp]$ history -c
[wanghan@VM_168_102_centos tmp]$ history 
    1  history

history –d #:删除与命令历史列表中命令编号相对应的命令记录

[wanghan@VM_168_102_centos tmp]$ history
    1  who
    2  pwd
    3  history
[wanghan@VM_168_102_centos tmp]$ history -d 1
[wanghan@VM_168_102_centos tmp]$ history
    1  pwd
    2  history
    3  history -d 1
    4  history
[wanghan@VM_168_102_centos tmp]$ 

history -a:追加当前历史记录保存至命令历史文件中

[wanghan@VM_168_102_centos rott]$ cat /home/wanghan/.bash_history
exit
[wanghan@VM_168_102_centos rott]$ history
    1  exit
    2  cat /home/wanghan/.bash_history
    3  history
[wanghan@VM_168_102_centos rott]$ who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[wanghan@VM_168_102_centos rott]$ pwd
/root
[wanghan@VM_168_102_centos rott]$ histroy -a
bash: histroy: command not found
[wanghan@VM_168_102_centos rott]$ history -a
[wanghan@VM_168_102_centos rott]$ cat /home/wanghan/.bash_history
exit
cat /home/wanghan/.bash_history
history
who
pwd
histroy -a
history -a
[wanghan@VM_168_102_centos rott]$ 

命令历史相关的环境变量:

HISTSIZE:命令历史中可以保存的命令个数

[root@VM_168_102_centos ~]# echo $HISTSIZE
1000

HISTFILESIZE:命令文件中可以保存的命令个数

[root@VM_168_102_centos ~]# echo $HISTFILESIZE
1000

HISTFILE:命令历史文件

[root@VM_168_102_centos ~]# echo $HISTFILE
/root/.bash_history

HISTCONTROL:控制命令历史的生成

[root@VM_168_102_centos ~]# echo $HISTCONTROL
ignoredups

ignoredups:忽略重复记录的命令,连续相同的命令才算重复

[root@VM_168_102_centos ~]# history
    1  history
[root@VM_168_102_centos ~]# who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[root@VM_168_102_centos ~]# who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[root@VM_168_102_centos ~]# history
    1  history
    2  who
    3  history
[root@VM_168_102_centos ~]# who
root     pts/0        Aug  4 19:11 (222.36.253.150)
[root@VM_168_102_centos ~]# history
    1  history
    2  who
    3  history
    4  who
    5  history
[root@VM_168_102_centos ~]# 

ignorespace:不记录以空白字符开头的命令

[root@VM_168_102_centos ~]# echo $HISTCONTROL
ignoredups
[root@VM_168_102_centos ~]# HISTCONTROL=ignorespace
[root@VM_168_102_centos ~]# echo $HISTCONTROL
ignorespace
[root@VM_168_102_centos ~]# history
    1  history
    2  echo $HISTCONTROL
    3  HISTCONTROL=ignorespace
    4  echo $HISTCONTROL
    5  history
[root@VM_168_102_centos ~]#  who 
root     pts/0        Aug  4 19:11 (222.36.253.150)
[root@VM_168_102_centos ~]#  pwd
/root
[root@VM_168_102_centos ~]# history
    1  history
    2  echo $HISTCONTROL
    3  HISTCONTROL=ignorespace
    4  echo $HISTCONTROL
    5  history
    6  history
[root@VM_168_102_centos ~]# 

ignoreboth:同时具有ignoredups和ignorespace的特性

 

shell中的变量赋值:

变量名=值

[root@VM_168_102_centos ~]# num=123
[root@VM_168_102_centos ~]# echo $num
123

注意:变量在赋值时不能使用$

           变量名只能包含字母、数字和下划线,而且不能以数字开头

           变量名区别大小写

[root@VM_168_102_centos ~]# num=123
[root@VM_168_102_centos ~]# echo $NUM

[root@VM_168_102_centos ~]# echo $num
123

linux学习命令总结③,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。