命令行基础
• Linux命令
– 用来实现某一类功能的指令或程序
linux执行命令需要找到相应的程序文件
– 命令的执行依赖于解释器(默认的解释器程序:/bin/bash)
执行过程: 用户 ------>解释器 ------> 内核------>硬件
- 绿色:表示可以执行的程序
-
命令行的一般格式
• 基本用法
– 命令字 [选项]…[参数1] [参数2]… -
快速编辑技巧
• Tab键自动补全
– 可补齐命令字、选项、参数、文件路径、软件名、服务名 – 连续按两下tab键可以现实出命令提示。
if(tab)(tab)
–自动补全,是在输入命令部分字符时,有且自由一个命令匹配,就会自动补全。
ifco(tab) 查看IP地址信息命令
– 自动补全目录操。
cat /et(tab)/red(tab)-r(tab) #查看文本文件内容、
ls /et(tab)/sysco(tab)/netw(tab)-(tab)/ifc(tab)-e(tab)
>>> ls /etc/sysconfig/network-scripts/ifcfg-eth0
- 快捷键(终端)
– Ctrl + l:清空整个屏幕
– Ctrl + c:结束当前运行的命令
– Esc + . 或 Alt + .:粘贴上一个命令的参数(again继续显示上一个命令)
– Ctrl + u:清空至行首(以光标为起始点)
– Ctrl + w:往回删除一个单词(以空格界定,以光标为起始点)
– Ctrl + z:挂起当前运行的程序
ls /etc/redhat-release
ls -l Alt + .
cat Alt + .
cat -n Alt + .
- mount挂载操作:让目录成为设备的访问点
途径:通过系统的安装光盘获得软件包
– 格式:mount 设备路径 挂载点目录
Windows系统访问光盘内容
光盘------>光驱设备------->CD驱动器(双击)(访问点) Linux系统访问光盘内容
光盘------>光驱设备(文件形式)------->目录(访问点 挂载点)
快捷方式(/dev/cdrom------>/dev/sr0)
注意:青色:表示快捷方式
步骤:
1.图形将光盘文件放入光驱设备
2.命令行查看Linux光驱设备
[root@A ~]# ls -l /dev/cdrom(这是一个快捷方式)
lrwxrwxrwx. 1 root root 3 2月 28 10:53 /dev/cdrom -> sr0
[root@A ~]# ls /dev/sr0
3.命令行使用mount命令进行挂载
[root@A ~]# mkdir /dvd
[root@A ~]# ls /dvd/ mount
/dev/cdrom /dvd
Ls /dvd/
Ls /dvd/P(tab)
4.卸载设备
umount /dvd
ls /dvd/
mkdir /myiso
ls /myiso
mount /dev/cdrom /myiso
ls /myiso
总结:
1.Linux光驱设备/dev/cdrom
2.Linux访问设备内容需要通过访问点
3.Linux访问点就是一个目录
注意事项:
1).目录本身没有任何挂载(前提)
umount /dvd/
umount: /dvd/:未挂载
2).有用户正在访问设备内容,用户在挂载点目录中(会卸载失败)
umount /dvd/
umount: /dvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1)
可以找到有关使用该设备的进程的有用信息建议挂载点目录,自己创建,尽量不要直接使用根目录下的目录)
4).Linux允许 一个设备具备多个访问点(挂载点)
5).Linux不允许 一个目录有多个设备挂载
/root:管理员root的家目录
/home:存放所有普通用户的家目录
~用户名:表示该用户的家目录
~:表示用户的家目录
-
创建用户:
#useradd natasha #创建一个普通用户natasha #ls /home/ #cd ~natasha #切换到natasha用户的家目录 #pwd #cd ~root #切换到root用户的家目录 #pwd #useradd tc #切换到tc用户的家目录 #cd ~tc #pwd . 表示当前目录
-
使用通配符
• 针对不确定的文档名称,以特殊字符表示
– *:任意多个任意字符
– ?:单个字符
ls /boot/vm* #显示/boot目录下vm开头的数据
ls /etc/*tab #显示/etc目录下tab结尾的数据
ls /etc/*.conf #显示/etc目录下.conf结尾的数据
ls /dev/tty* #显示/dev目录下tty开头的数据
ls /dev/tty?
ls /dev/tty??
• 针对不确定的文档名称,以特殊字符表示
– [a-z]:多个字符或连续范围中的一个,若无则忽略
– {a,min,xy}:多组不同的字符串,全匹配
# ls /dev/tty[3-8]
# ls /dev/tty[1-7]
# ls /dev/tty{3,7,11,28}
# ls /dev/tty{31,S0,S1}
请显示/dev目录下 tty20到tty30 的设备?
# ls /dev/tty2[0-9] /dev/tty30
# ls /dev/tty{2[0-9],30}
# ls /dev/tty{2?,30}
- 别名的定义alias:简化复杂的命令
• 查看已设置的别名
– alias [别名名称]
• 定义新的别名
– alias 别名名称= ‘实际执行的命令行’
• 取消已设置的别名
– unalias [别名名称]
- hostname #查看主机名字
hostname
>>>A.tedu.cn
hn
>>>bash: hn: 未找到命令...
alias hn='hostname' #设置别名
hn
>>>A.tedu.cn
- alias #查看当前生效的所有别名
#查看
alias myls='ls -ld'
myls /root/
# 删除 unalias myls #删除别名myls
myls
>>>bash: myls: 未找到命令...(错误提示)
- rm 删除
• rm — Remove
– 格式:rm [选项]… 文件或目录…
• 常用命令选项
– -r、-f:递归删除(含目录)、强制删除
-r:递归,目录下所有内容,以及子目录下所有内容
注意:rm(shell里面的是已经设置了别名了–>alias rm=’rm -i’)
ls /opt/
rm -rf /opt/nsd01
ls /opt/
- mv 移动/改名
• mv — Move
– 格式:mv [选项]… 原文件… 目标路径
#移动:移动文件到指定路径
ls /opt/
1.txt nsd01
mv /opt/1.txt /opt/nsd01
ls /opt/ <=====> ls /opt/nsd01(查看结果)
#重命名:路径不变的移动
mv /opt/nsd01 /opt/student(绝对路径)
ls /opt/
mv /opt/student ./test (相对路径)
ls /opt/
- cp 复制
• cp — Copy
– 格式:cp [选项]… 原文件… 目标路径
• 常用命令选项
– -r:递归,复制目录时必须有此选项
注意:cp(shell里面的是已经设置了别名了–>alias cp=‘cp -i’)
cp /etc/passwd /opt/
ls /opt/
cp -r /home/ /opt/ #递归式复制,可以复制文件夹
ls /opt/
#强制覆盖
#临时取消别名:在运行命令前,加上 \(‘i’优先级 > ‘r’)
cp -r /boot/ /opt/
ls /opt/
cp -r /boot/ /opt/
\cp -r /boot/ /opt/ #在本次操作,临时取消别名
#复制支持两个以上的参数
#永远把最后一个参数作为目标,其他的所有参数都作为源
cp /etc/fstab /etc/hosts /etc/shadow /opt/
ls /opt/
#复制与 一个点 的连用
# . :表示当前目录
cd /opt/
pwd
cp -r /mnt/ . #将/mnt复制到当前目录
ls
#复制重新命名,目标路径下的名字
ls /opt/
cp /etc/redhat-release /opt/rr
ls /opt/
扩展:
请说出,下列操作中两次复制的不同
rm -rf /opt/*
cp -r /home/ /opt/nsd #复制/home目录,放到/opt/目录下命名成nsd
cp -r /home/ /opt/nsd #复制/home目录,放到/opt/nsd目录下
过程:
rm -rf /opt/*
ls /opt/
cp -r /home/ /opt/nsd
ls /opt/
nsd
cp -r /home/ /opt/nsd
ls /opt/
nsd
ls /opt/nsd/
写的不好,请见谅哈!