一、Linux命令行基础

  • Linux命令
    • 用来实现某一类功能的指令或程序

在Linux中执行大多数命令时,都要找到命令所对应的程序
]# hostname
]# which hostname #查询命令对应的程序
]# ls /usr/bin/hostname
]# which ifconfig #查询命令对应的程序

  • 命令的执行依赖于解释器(默认解释器/bin/bash

    用户—->解释器—->内核—->硬件
    绿色:可以执行的程序

  • 命令行完整格式:
  • 命令字 [选项]… [参数1] [参数2]…

打 武器 丁老师……
]# cat —help #查看命令帮助信息
]# cat -n /etc/shells #显示行号
]# cat -n /etc/passwd
]# cat -n /etc/redhat-release
]# cat -n /etc/fstab

]# ls -l /etc/passwd #长格式显示
]# ls -l /etc/fstab #显示详细属性
]# ls -l /etc/shells
]# ls -l /root/ #默认显示目录内容的详细属性

Tab键自动补全

  • 可补齐命令字、选项、参数、文件路径、软件名、服务名

]# if(tab) (tab) #列出以if开头的命令
]# ifco(tab)

]# cat /etc/re(tab) (tab)
]# cat /etc/red(tab)

]# ls /etc/sysconfig/network-scripts/
]# ls /et(tab)/sysco(tab)/netw(tab)- (tab)

快捷键

  • Ctrl + c:结束正在运行的命令
  • Esc+.或Alt+.:粘贴上一个命令的参数

[root@localhost ~]# ls /etc/hosts
[root@localhost ~]# ls -l Alt + .
[root@localhost ~]# cat Alt + .
[root@localhost ~]# cat -n Alt + .

  • Ctrl + l:清空整个屏幕
  • Ctrl + u:从光标处清空至行首
  • Ctrl + w:往回删除一个单词(以空格界定)

光盘镜像文件中软件包
首先将光盘镜像文件,放入虚拟机的光驱设备

光盘镜像文件—-》光驱设备—-》访问点(目录)
[root@svr1 /]# ls /dev/sr0
/dev/sr0
[root@svr1 /]# ls /dev/cdrom
/dev/cdrom
[root@svr1 /]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 5月 5 09:03 /dev/cdrom -> sr0

Windows显示光盘内容:
光盘——>光驱设备——>DVD驱动器(图标)

Linux显示光盘内容:
光盘——>光驱设备——>访问点(目录)
/dev/cdrom

二、mount挂载操作:让目录成为设备的访问点

命令行显示光盘内容
Windows:
光盘—->光驱设备—->CD驱动器(图标)
Linux:
光盘—->光驱设备—->访问点(目录)

Linux:将光盘镜像文件放入虚拟光驱设备中
命令行基础、目录及文件管理、文本内容操作 - 图1

Windows:将光盘镜像文件放入虚拟光驱设备中
命令行基础、目录及文件管理、文本内容操作 - 图2
命令行基础、目录及文件管理、文本内容操作 - 图3
2.查看Linux光驱设备
[root@localhost ~]# ls -l /dev/cdrom
[root@localhost ~]# ls /dev/sr0
3.挂载操作

  • 使用mount命令
    • 格式:mount 设备路径 挂载点目录

]# mkdir /dvd
]# ls /dvd
]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /dvd/
]# ls /dvd/P(tab)

4.卸载操作

]# umount /dvd
]# ls /dvd/
]# mkdir /mydvd
]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /mydvd

注意事项:
1.卸载:当前所在的路径是挂载点目录
[root@localhost mydvd]# umount /mydvd
umount: /mydvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
2.挂载允许一个设备,挂载到不同的挂载点目录
3.挂载不允许一个挂载点目录,挂载多个设备
4.建议挂载点目录,最好自行创建

三、目录与文件管理

  • cd的命令使用

. 当前目录
.. 父目录(上一层)
~ 表示家目录

家目录:专门存放用户个性化信息的目录
~user:用户user的家目录
/root:是Linux管理员的家目录
/home:存放所有普通用户的家目录
]# cd ~root #去往root用户的家目录
]# pwd

]# cd ~lisi #去往lisi用户的家目录
]# pwd

]# useradd dc #创建用户dc
]# cd ~dc #去往dc用户的家目录
]# pwd

]# useradd tom #创建用户tom
]# cd ~tom #去往tom用户的家目录
]# pwd

  • ls — List
    • 格式:ls [选项]… [目录或文件名]
  • 常用命令选项

-l:以长格式显示,显示详细信息
-h:提供易读的容量单位(K、M等)
-d:显示目录本身(而不是内容)的属性
[root@localhost /]# ls -ld /home
[root@localhost /]# ls -ld /root
[root@localhost /]# ls -ld /
[root@localhost /]# ls -l /etc/passwd
[root@localhost /]# ls -lh /etc/passwd

-A:显示所有内容包含隐藏数据
-R:递归显示内容
[root@localhost /]# ls -A /root
[root@localhost /]# touch /opt/.nsd.txt
[root@localhost /]# ls /opt/
[root@localhost /]# ls -A /opt/
[root@localhost /]# ls -R /opt/

使用通配符

  • 针对不确定的文档名称,以特殊字符表示
    • *:任意多个任意字符

[root@localhost /]# ls /root/a*
[root@localhost /]# ls /boot/vm*
[root@localhost /]# ls /etc/*tab
[root@localhost /]# ls /etc/*.conf
[root@localhost /]# ls /dev/tty*

  • ?:单个字符

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

  • [a-z]:多个字符或连续范围中的一个,若无则忽略
  • {a,min,xy}:多组不同的字符串,全匹配

]# ls /dev/tty[3-9]
]# ls /dev/tty[1-7]

]# ls /dev/tty{1,17,20}
]# ls /dev/tty{10,18,22,33}
]# ls /dev/tty{26,19,21,30,40}

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

  • 查看已设置的别名
    • alias [别名名称]
  • 定义新的别名
    • alias 别名名称= ‘实际执行的命令行’
  • 取消已设置的别名
    • unalias [别名名称]

]# hostname
]# alias hn=’hostname’ #临时定义别名
]# hn

]# alias #查看系统中有哪些别名
]# unalias hn #删除hn别名
]# hn
bash: hn: 未找到命令…

]# alias myls=’ls -l’
]# myls /etc/passwd

  • mkdir — Make Directory

    • 格式:mkdir [/路径/]目录名…

      [-p]:连同父目录一并创建
      [root@localhost /]# mkdir -p /opt/aa/bb/cc/dd
      [root@localhost /]# ls -R /opt/aa

[root@localhost /]# mkdir -p /nsd04/test04
[root@localhost /]# ls -R /nsd04

rm 删除

  • rm — Remove
    • 格式:rm [选项]… 文件或目录…
  • 常用命令选项
    • -r、-f:递归删除(含目录)、强制删除

]# ls /opt
]# rm -rf /opt/1.txt
]# ls /opt
]# rm -rf /opt/aa
]# ls /opt

mv — Move移动:源数据会消失

  • 格式:mv 原文件… 目标路径

]# mkdir /opt/nsd01
]# touch /opt/1.txt
]# ls /opt/

]# mv /opt/1.txt /opt/nsd01
]# ls /opt/
]# ls /opt/nsd01/

重命名:路径不变的移动
]# ls /opt/
]# mv /opt/nsd01 /opt/abc
]# ls /opt/

]# mv /opt/abc/ /opt/student
]# ls /opt/

]# mv /opt/student /mnt/stu01
]# ls /mnt/

cp — Copy:源数据不会消失

  • 格式:cp [选项]… 原文件… 目标路径
    • 常用命令选项
  • -r:递归,复制目录时必须有此选项

]# cp /etc/passwd /opt/
]# ls /opt/

]# cp -r /boot/ /opt/
]# ls /opt/

]# cp -r /home/ /opt/
]# ls /opt/

  • 重名进行强制覆盖

]# \cp -r /boot/ /opt/ #本次操作临时取消别名
]# \cp -r /boot/ /opt/ #本次操作临时取消别名

  • 复制可以支持重新命名,目标路径下数据的名称

]# cp -r /home/ /opt/myhome
]# ls /opt/

]# cp /etc/redhat-release /opt/r.txt
]# ls /opt/

]# ls /opt/
]# cp -r /root/ /opt/myroot
]# ls /opt/

]# cp -r /root/ /opt/myroot
]# ls /opt/myroot/

  • 复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据

]# mkdir /nsd05
]# cp -r /home/ /etc/passwd /boot/ /etc/shells /nsd05

]# ls /nsd05

  • 复制与一个点进行连用,将数据复制到当前路径下

]# cd /etc/sysconfig/network-scripts/
]# pwd
]# cp /etc/passwd .
]# ls

  • 在文本文件中过滤,包含指定字符串的行

    grep [选项] ‘字符串’ 文本文件…

    [root@svr1 /]# grep root /etc/passwd
    [root@svr1 /]# grep bash /etc/passwd
    [root@svr1 /]# grep lisi /etc/passwd
    [root@svr1 /]# grep zhangsan /etc/passwd
  • 常用命令选项

-v,取反匹配(不包含)
-i,忽略大小写
]# grep root /etc/passwd
]# grep -v root /etc/passwd
]# grep ROOT /etc/passwd
]# grep -i ROOT /etc/passwd

^word 以字符串word开头
word$ 以字符串word结尾
]# grep ^root /etc/passwd
]# grep ^bin /etc/passwd

]# grep root$ /etc/passwd
]# grep bash$ /etc/passwd

^$ 表示空行
]# cat /etc/default/useradd
]# grep ^$ /etc/default/useradd #过滤空行
]# grep -v ^$ /etc/default/useradd #过滤不要空行的内容

课后习题:
案例:复制、删除、移动
1. 在目录/opt下创建一个子目录 nsd
2. 在目录/opt/nsd/创建文件readme.txt,利用vim写入内容 I Love Linux
3. 将/etc/passwd 和 /etc/resolv.conf同时拷贝到/opt/nsd目录下
4. 将文件 /etc/redhat-release复制到 /root/ 下,同时 改名为 version.txt
5. 将文件 /root/version.txt 移动到/opt/nsd/目录下
6. 将/home目录复制到/opt/nsd/目录下

案例:ls命令练习
1. 查看根目录下内容
2. 显示根目录本身详细属性
3. 切换到/boot目录,显示当前目录内容的详细属性,并加上易读的容量单位
4. 显示/root的全部内容,包括隐藏文档
5. 显示/bin/bash程序,详细属性
6. 显示/dev/cdrom光驱设备,详细属性

案例:mount挂载
1. 在根目录下创建目录结构/CentOS7/dvd
2. 利用图形将光盘镜像文件放入光驱设备中
3. 将光驱设备挂载到/CentOS7/dvd目录,以/CentOS7/dvd目录作为其访问点
4. 查看/CentOS7/dvd/Packages目录内容
5. 将/CentOS7/dvd/Packages目录中以vsftpd开头的软件包,拷贝到/opt下
]# cp /CentOS7/dvd/Packages/vsftpd* /opt

案例:别名与vim的使用
1. 为虚拟机定义一个别名,执行byebye可以实现关闭系统
2. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为student.tmooc.cn