LInux基础之mount挂载、常用通配符使用、别名定义、mv移动和改名

Linux命令

——用来实现某一种功能的指令或程序

——命令的执行依赖于解释器(例如:/bin/bash)

带来功能的并不是命令的本身,而是命令所对应的应用程序

[root@localhost ~]# hostname

查看命令所对应的应用程序

[root@localhost ~]# which hostname

/usr/bin/hostname

命令所对应的文件一定是一个绿色可以执行的程序文件

[root@localhost ~]# ls /usr/bin/hostname

命令的执行依赖于解释器,常用的解释器存放在/etc/shells文件中

[root@localhost ~]# cat /etc/shells

系统默认的解释器是/bin/bash

用户-----解释器-----内核-----硬件:用户输入命令后,通过/bin/bash解释器解释给内核,内核去调配所有的硬件去执行

Linux命令的分类(了解内容)

——内部命令:系统自带属于解释器的一部分

——外部命令:系统之外自己安装的其他程序

linux 系统有上千条命令,它把这些命令分为两大类,一个是内部命令,一个是外部命令,内部命令属于解释器自带的命令,外部命令属于解释器之外的命令,而文明linux系统有百分之九十是属于外部命令

############################################################################

挂载:mount

如何获取iso镜像里边内容?

镜像文件在linux系统里属于设备文件,而设备文件无法用系统命令去直接访问,如果想获取设备文件里边的数据,需先将设备挂载到一个目录下,而这个目录我们称为访问点,当我们把设备文件挂载到访问点目录下就可以访问镜像文件里的内容

hdc:IDE接口设备(几乎快灭绝了)

sr0:表示scsi接口设备(现在大多数都是scsi接口设备)

查看驱动设备文件

[root@localhost ~]# ls /dev/sr0

系统将驱动设备文件创建了一个快捷方式/dev/cdrom

[root@localhost ~]# ls /dev/cdrom

查看详细属性

[root@localhost ~]# ls -l /dev/cdrom

lrwxrwxrwx. 1 root root 3 4月 13 23:26 /dev/cdrom -> sr0 //快捷方式指向的是sr0

挂载步骤:光驱设备(/dev/cdrom)----->挂载----->目录(访问点)

创建设备挂载点

[root@localhost ~]# mkdir /dvd/

挂载设备:——命令格式:mount 设备路径 挂载点目录

[root@localhost ~]# mount /dev/cdrom /dvd

mount: /dvd: WARNING: device write-protected, mounted read-only.

装载: /DVD: 警告: 设备写保护,装入只读

挂载点目录将变成一个只读的目录,不可以增删改的权限

[root@localhost ~]# mkdir /dvd/xx

mkdir: 无法创建目录 “/dvd/xx”: 只读文件系统

查看挂载点目录内容,里边是iso镜像文件里边的数据

[root@localhost ~]# ls /dvd/

卸载挂载点目录:——命令格式:umount 挂载点目录

[root@localhost ~]# umount /dvd/

[root@localhost ~]# ls /dvd/

注意事项:

1、挂载时挂载到自己创建的目录或者是一个空目录,如果挂载到一个已有数据的目录下,那该目录原有的数据将消失(并不是删除),而是改目录挂载了一个新的文件系统类型,原来的文件系统类型数据就会消失,卸载之后原有的数据将恢复回来。

2、卸载的时候不要在当前的挂载点内,否则会提示设备正忙,当有人在挂载点目录内,Linux系统认位有人正在访问挂载点内的数据,所以不让卸载,只有退出当前挂载点目录在卸载,才能卸载成功。

[root@localhost dvd]# umount /dvd/

umount: /dvd/: target is busy.(提示目标正忙)

退出挂载点目录,卸载成功

[root@localhost /]# umount /dvd/

[root@localhost /]# ls /dvd

#############################################################################

通配符:通配符在linux系统用一些特殊的符号表示,可以帮我们匹配一些含糊不清的内容

* :表示任意多个任意字符(字符个数不限,是什么样的字符也不限,用于匹配以什么开头或者以什么结尾)

?:表示任意单个任意字符(是什么样的字符不限,但必须是单个字符)

创建测试文件

[root@localhost /]# touch abcdegdfgjdjkdlgjdkgj.txt

当只记得该文件在那个路径下,但不记得文件全名的时候可以用 * 进行模糊匹配

如:只记得该文件在/目录下,以abcd开头不记得结尾可以用 * 进行模糊匹配

[root@localhost /]# ls /abcd*

/abcdfgkdgjlgdfsgdfsgfgfgaf.txt

模糊匹配/etc/目录下以tab结尾的文件

[root@localhost /]# ls /etc/*tab

/etc/anacrontab /etc/crontab /etc/crypttab /etc/fstab /etc/inittab /etc/mtab

模糊匹配/etc/目录下以name结尾的文件

[root@thinkmo ~]# ls /etc/*name

/etc/hostname

?匹配任意单个任意字符:是什么样的字符不限,但必须是单个字符

如:查找/dev/目录以tty开头结尾必须是单个字符的文件

[root@localhost /]# ls /dev/tty?

/tty0 /dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8

/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9

查找/etc/目录下以host开头结尾必须是单个字符的文件

[root@thinkmo ~]# ls /etc/host?

/etc/hosts

查找/etc/目录下以单个字符开头,结尾必须是esolv.conf

[root@thinkmo ~]# ls /etc/?esolv.conf

/etc/resolv.conf

?可以使用多个,如:匹配/etc/目录下以pass开头结尾必须是两个字符

[root@thinkmo ~]# ls /etc/pass??

/etc/passwd

[root@localhost /]# ls /etc/pas??? //必须以三个字符结尾

[] :匹配一定范围内字符,如:[0-9] 或者 [a-z] 之间连续的字符

{} :匹配多组不连续字符,如{1,3,5,7,9,20,30}

[]匹配连续字符:匹配/dev/目录下以tty开头,结尾是3-8之间连续的字符

[root@thinkmo ~]# ls /dev/tty[3-8]

/dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7 /dev/tty8

匹配不连续字符:

[root@thinkmo ~]# ls /dev/tty{1,3,5,7,9,20,30}

/dev/tty1 /dev/tty20 /dev/tty3 /dev/tty30 /dev/tty5 /dev/tty7 /dev/tty9

{}也可用于匹配连续字符

[root@thinkmo ~]# ls /dev/tty{1..9}

/dev/tty1 /dev/tty3 /dev/tty5 /dev/tty7 /dev/tty9

/dev/tty2 /dev/tty4 /dev/tty6 /dev/tty8

匹配/dev/目录下以 xx 或者 oo 或者 tty 开头,以1结尾的文件

[root@thinkmo ~]# ls /dev/{xx,oo,tty}1

ls: 无法访问'/dev/xx1': 没有那个文件或目录

ls: 无法访问'/dev/oo1': 没有那个文件或目录

/dev/tty1//条件满足的将显示出来

匹配/dev/目录下以 xx 或者 oo 或者 tty 开头,结尾是1到5之间连续的字符

[root@thinkmo ~]# ls /dev/{xx,oo,tty}{1..5}

ls: 无法访问'/dev/xx1': 没有那个文件或目录

ls: 无法访问'/dev/xx2': 没有那个文件或目录

ls: 无法访问'/dev/xx3': 没有那个文件或目录

ls: 无法访问'/dev/xx4': 没有那个文件或目录

ls: 无法访问'/dev/xx5': 没有那个文件或目录

ls: 无法访问'/dev/oo1': 没有那个文件或目录

ls: 无法访问'/dev/oo2': 没有那个文件或目录

ls: 无法访问'/dev/oo3': 没有那个文件或目录

ls: 无法访问'/dev/oo4': 没有那个文件或目录

ls: 无法访问'/dev/oo5': 没有那个文件或目录

/dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 //满足条件将显示出来

############################################################################

alias 别名的定义:别名的用来简化复杂的命令

——命令格式:alias 别名=指令名称

为hostname命令定义一个别名为 hn

[root@localhost /]# alias hn=hostname//定义别名

每次运行 hn 等于运行hostname命令

[root@thinkmo ~]# hn//验证别名

thinkmo

定义别名对原有命令没有任何影响,原有命令可以正常使用

[root@thinkmo ~]# hostname

thinkmo

给命令定义别名时,可以把命令和选项一起定义一个别名来使用

[root@thinkmo ~]# alias myls='ls -lhd' //定义别名

[root@thinkmo ~]# myls /root///验证别名

dr-xr-x---. 16 root root 4.0K 4月 15 10:20 /root///显示的结果等于 ls -lhd 的显示结果

查看系统可用的别名

[root@thinkmo ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias hn='hostname' //自定义的别名

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias myls='ls -lhd' //自定义的别名

alias rm='rm -i'

alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'

alias xzegrep='xzegrep --color=auto'

alias xzfgrep='xzfgrep --color=auto'

alias xzgrep='xzgrep --color=auto'

alias zegrep='zegrep --color=auto'

alias zfgrep='zfgrep --color=auto'

alias zgrep='zgrep --color=auto'

unalias 取消别名:当我们不想使用别名的时候,可以取消别名,取消别名比较简单,命令字后边直接加上别名名称就可以取消别名

取消myls别名:——命令格式:unalias 别名名称

[root@thinkmo ~]# unalias myls

[root@thinkmo ~]# myls /root/

bash: myls: 未找到命令...

取消hn别名

[root@thinkmo ~]# unalias hn

[root@thinkmo ~]# hn

bash: hn: 未找到命令...

注意事项:定义别名时不要和系统命令发生冲突

############################################################################

mv 移动、改名:mv命令有两个功能,可以移动文件或目录(功能类似于windows系统里的剪切功能),还可以用来修改目录和文件的名字

——命令格式:mv 选项… 源文件… 目标路径

将/opt/目录下的1.txt文件移动到 /mnt/haha/目录下

[root@localhost ~]# mv /opt/1.txt /mnt/haha/

查看是否移动成功

[root@localhost ~]# ls /mnt/haha/

将/opt/test/目录移动到 /mnt/haha/目录下

[root@localhost ~]# mv /opt/test /mnt/haha

查看是否移动成功

[root@localhost ~]# ls /mnt/haha/

利用mv命令修改目录和文件名字

路径不变的情况下修改1.txt文件名字

[root@localhost ~]# mv /mnt/haha/1.txt /mnt/haha/haha.txt //haha.txt为新名字

查看是否修改成功

[root@localhost ~]# ls /mnt/haha/

路径不变的情况下修改/test/目录名字

[root@localhost ~]# mv /mnt/haha/test/ /mnt/haha/xixi//xixi为新名字

查看是否修改成功

[root@localhost ~]# ls /mnt/haha/

移动的同时并改名,将haha.txt 移动到 /root/目录并改名为xixi.txt

[root@localhost ~]# mv /mnt/haha/haha.txt /root/xixi.txt

查看是否成功

[root@localhost ~]# ls /root/

将/xixi/目录移动到/root/目录并改名为abc

[root@localhost ~]# mv /mnt/haha/xixi/ /root/abc

[root@localhost ~]# ls /root/

总结:mv移动时,如果不想将修改源文件的名字,那只需要指定要移动到那个目录下即可,如果想移动时并重新给改个名,那就在指定的目录后边定义一个新的名字,在练习mv时,不要拿系统目录和文件去练习。


分享到:


相關文章: