Linux bash基础特性一

命令别名

alias cdnet=”cd /etc/sysconfig/network-scripts”

针对用户的别名: “~/.bashrc”

针对系统的别名:”/etc/bashrc”

重读配置文件:source /path/to/config.file

unalias:撤销别名

glob通配

  • * 代表任意长度的任意字符
  • ?: 表示任意单个字符
  • []:匹配指定范围的任意的单个字符
  • [^]:取反
  • [alnum]:所有字母和数字
  • [:alpha:]:字母
  • [:digit:]:数字
  • [:lower:]:小写字母
  • [:upper:]:大写字母
  • [:punct:]:标点符号
  • [:space:]:空白字符,不是仅仅空格

 bash快捷键盘

  • ctrl+L:
  • ctrl+a:
  • ctrl+e:
  • ctrl+u:
  • ctrl+k:

bash i/o重定向

  • >
  • >>:
  • 2>
  • 2>>
  • > a.txt 2 > &1
  • >>a.txt 2>> &1

命令历史

环境变量

  • HISTSIZE:命令历史的条数
  • HISTFILE:默认为’~/.bash_history’
  • HISTFILESIZE:HISTFILE文件记录历史的条数

history命令用法:

-d 	删除指定的命令
-c 	清空命令
-a 	手工追加当前会话的命令历史到历史文件中去

 调用历史命令

    !#:重复执行第#条命令
    !!:重复执行上一条命令
    !str:执行指定str开头的命令(最后一个)

 控制命令历史的记录方式

主要和HISTCONTROL这个环境变量有关(”/etc/profile”)

    ignoredups:忽略重复
    ignorespace:忽略空白开头
    ignoreboth:上面2个都启用

命令补全

tab

路径补全

tab

目录管理类命令

1.mkdir

用法: mkdir [option] directoy…

-p 	没有父目录就一起创建了
-v 	显示创建目录过程
-m 	指定权限
[root@centos6 dirtest]# mkdir -pv /app/dirtest/a/b/c/d
mkdir: created directory '/app/dirtest/a'
mkdir: created directory '/app/dirtest/a/b'
mkdir: created directory '/app/dirtest/a/b/c'
mkdir: created directory '/app/dirtest/a/b/c/d'
[root@centos6 dirtest]# mkdir -m 0744 d
[root@centos6 dirtest]# ls
a  d
[root@centos6 dirtest]# ll
total 8
drwxr-xr-x. 3 root root 4096 Aug  7 06:47 a
drwxr--r--. 2 root root 4096 Aug  7 06:47 

2.tree

用法: tree [option] directory

-d     只显示目录
-L     只显示指定的level级别
-P     只显示匹配指定的路径

3.命令行展开

~,{},~username

4.命令的执行结果状态

$?:获取上一个命令的执行状态码

5.文件查看命令

more

less

head

-n     获取前n行
-c     获取前n个字符

tail

-n     获取后n行
-c     获取后n个字符
-f     动态显示

文件管理

用法: cp src dst

1.当src是文件,考虑dest是否存在

情况1:测试src是文件,目标不存在

[root@centos6 dirtest]# touch a.tx
[root@centos6 dirtest]# ls
a  a.tx  bin  d  sbin  usr  x  x_m  x_n  y_m  y_n
[root@centos6 dirtest]# cp a.tx p
[root@centos6 dirtest]# ll
total 40
drwxr-xr-x. 3 root root 4096 Aug  7 06:47 a
-rw-r--r--. 1 root root    0 Aug  7 07:09 a.tx
drwxr-xr-x. 2 root root 4096 Aug  7 07:01 bin
drwxr--r--. 2 root root 4096 Aug  7 06:47 d
-rw-r--r--. 1 root root    0 Aug  7 07:09 p
drwxr-xr-x. 2 root root 4096 Aug  7 07:01 sbin
drwxr-xr-x. 4 root root 4096 Aug  7 07:01 usr
drwxr-xr-x. 3 root root 4096 Aug  7 06:59 x
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 x_m
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 x_n
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 y_m
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 y_n

情况2:测试src是文件,dst存在

[root@centos6 dirtest]# cp a.tx  p
cp: overwrite 'p'? y
[root@centos6 dirtest]# cp a.tx  a
[root@centos6 dirtest]# ll a
total 4
-rw-r--r--. 1 root root    0 Aug  7 07:11 a.tx
drwxr-xr-x. 3 root root 4096 Aug  7 06:47 b

1.如果src是文件

(1)如果目标不存在:新建dest文件,并将src中的内容填充至dest中

(2)如果目标存在:

         如果dest是文件:将src中的内容覆盖至dest中

        如果dest是目录:在dest中新建与src同名的文件,将src中的文件内容填充至新文件中

情况3:测试src是目录,dst不存在

[root@centos6 dirtest]# cp -r a ap
[root@centos6 dirtest]# ll
total 44
drwxr-xr-x. 3 root root 4096 Aug  7 07:11 a
drwxr-xr-x. 3 root root 4096 Aug  7 07:12 ap
-rw-r--r--. 1 root root    0 Aug  7 07:09 a.tx
drwxr-xr-x. 2 root root 4096 Aug  7 07:01 bin
drwxr--r--. 2 root root 4096 Aug  7 06:47 d
-rw-r--r--. 1 root root    0 Aug  7 07:11 p
drwxr-xr-x. 2 root root 4096 Aug  7 07:01 sbin
drwxr-xr-x. 4 root root 4096 Aug  7 07:01 usr
drwxr-xr-x. 3 root root 4096 Aug  7 06:59 x
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 x_m
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 x_n
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 y_m
drwxr-xr-x. 2 root root 4096 Aug  7 07:00 y_n
[root@centos6 dirtest]# ll a ap
a:
total 4
-rw-r--r--. 1 root root    0 Aug  7 07:11 a.tx
drwxr-xr-x. 3 root root 4096 Aug  7 06:47 b

ap:
total 4
-rw-r--r--. 1 root root    0 Aug  7 07:12 a.tx
drwxr-xr-x. 3 root root 4096 Aug  7 07:12 b

情况4:测试src是目录,dst存在

[root@centos6 dirtest]# cp -r a ap
[root@centos6 dirtest]# ll ap
total 8
drwxr-xr-x. 3 root root 4096 Aug  7 07:14 a
-rw-r--r--. 1 root root    0 Aug  7 07:12 a.tx
drwxr-xr-x. 3 root root 4096 Aug  7 07:12 b
[root@centos6 dirtest]# cd a
[root@centos6 a]# ls
a.tx  b
[root@centos6 a]# tree ap
ap [error opening dir]

0 directories, 0 files
[root@centos6 a]# ls
a.tx  b
[root@centos6 a]# cd ..
[root@centos6 dirtest]# ls
a  ap  a.tx  bin  d  p  sbin  usr  x  x_m  x_n  y_m  y_n
[root@centos6 dirtest]# tree ap
ap
├── a
│   ├── a.tx
│   └── b
│       └── c
│           └── d
├── a.tx
└── b
    └── c
        └── d

7 directories, 2 files

由上可知:如果SRC是目录,则必须使用-r选项

                 (1)如果dest存在,则其必须使用目录,否则报错;现在dest目录创建与SRC同名的目录,并将SRC中所有的内容复制到dest中

                 (2)如果dest不存在,则先创建dest目录,并将SRC中所有的内容复制到dest目录中

mv

rm

i     交互
-f     强制
-r     递归
原文地址:https://www.cnblogs.com/tanxiaojun/p/10460278.html