Linux命令行基础

]# hostname

]# which hostname #查询命令对应的程序

]# ls /usr/bin/hostname

]# which ifconfig #查询命令对应的程序

]# firefox

]# which firefox #查询命令对应的程序

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

用户--->解释器(shell)--->内核--->硬件

绿色:可以执行的程序

shell:壳 解释器

  • 命令行完整格式:

命令字 [选项]… [参数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:往回删除一个单词(以空格界定)

通过光盘获得,具有众多的软件包

通过虚拟光驱设备,读取光盘镜像文件内容

1.图形操作:将光盘镜像文件放入到光驱设备

2.寻找Linux系统中,虚拟机的光驱设备

/dev/cdrom ----> /dev/sr0

访问点(媒介)自行创建

从光盘内容中获得众多的软件包

思路:

光盘镜像文件---》虚拟的光驱设备---》访问点(目录)

光盘镜像文件中软件包

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

光盘镜像文件---》光驱设备---》访问点(目录)

[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:将光盘镜像文件放入虚拟光驱设备中

Windows:将光盘镜像文件放入虚拟光驱设备中

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/

CentOS_BuildTag LiveOS

EFI Packages

EULA repodata

GPL RPM-GPG-KEY-CentOS-7

images RPM-GPG-KEY-CentOS-Testing-7

isolinux TRANS.TBL

]# 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

]# 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 /etc/re*.conf

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

[root@localhost /]# ls -d /etc/r*

[root@localhost /]# ls -d /etc/*as*

?:单个字符

[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}

]# ls /etc/{rw,fs}tab

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

  • 查看已设置的别名

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]:连同父目录一并创建

]# mkdir -p /opt/aa/bb/cc/dd

]# ls -R /opt/aa #递归显示目录内容

]# mkdir -p /nsd04/test04

]# ls -R /nsd04

  • 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

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

[root@localhost /]# mkdir /nsd05

[root@localhost /]# ls /nsd05

[root@localhost /]# cp -r /home /boot /etc/passwd /etc/shells /nsd05

[root@localhost /]# ls /nsd05

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

]# cd /etc/sysconfig/network-scripts/

]# pwd

]# cp /etc/passwd .

]# ls

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

格式: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.减小占用空间大小 2.整合分散的数据

  • 归档的含义

    将许多零散的文件整理为一个文件,文件总的大小基本不变

  • 压缩的含义

    按某种算法减小文件所占用空间的大小,恢复时按对应的逆向算法解压

  • 常见的压缩格式及命令工具:

.gz -- gzip

.bz2 -- bzip2

.xz -- xz

  • tar 集成备份工具

-c:创建归档

-x:释放归档

-f:指定归档文件名称,必须在所有选项的最后

-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理

-t:显示归档中的文件清单

-C:指定释放路径

  • tar 制作压缩包(tar打包)

格式:tar 选项 /路径/压缩包名字 /源数据…….

-c:创建 -f:指定压缩包名字(必须在所有选项最后)

-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理

]# tar -zcf /root/xixi.tar.gz /etc/passwd /home

]# ls /root

]# tar -jcf /root/haha.tar.bz2 /etc/passwd /home

]# ls /root

]#tar -Jcf /root/hehe.tar.xz /etc/passwd /home

]# ls /root

  • tar 释放压缩包(tar解包)

tar 选项 /路径/压缩包名字 选项 /释放的位置

-x:释放归档

-f:指定归档文件名称,必须在所有选项的最后

-C:指定释放路径

]# tar -tf /root/haha.tar.bz2 #查看tar包内容

]# mkdir /nsd10

]# tar -xf /root/haha.tar.bz2 -C /nsd10

]# ls /nsd10

]# ls /nsd10/etc

]# ls /nsd10/home

案例1:创建一个备份包

使用 tar 工具完成以下备份任务:

创建一个名为 /root/backup.tar.bz2 的归档文件

其中包含 /usr/local 目录中的内容

tar 归档必须使用 bzip2 进行压缩

]# tar -jcf /root/backup.tar.bz2 /usr/local/

]# ls /root/

]# tar -tf /root/backup.tar.bz2 #查看tar包内容

重定向(重新定向命令的输出

将前面命令的输出,作为内容,写入到后面的文件

>:覆盖重定向

>>:追加重定向

[root@A /]# head -5 /etc/passwd > /opt/p.txt

[root@A /]# cat /opt/p.txt

[root@A /]# hostname

[root@A /]# hostname >> /opt/p.txt

[root@A /]# cat /opt/p.txt

]# echo 123456

]# echo 123456 > /opt/p.txt

]# cat /opt/p.txt

]# cat /etc/hostname

]# echo nb.tedu.cn > /etc/hostname

]# cat /etc/hostname

]# cat /opt/p.txt

]# > /opt/p.txt #清空文件内容

]# cat /opt/p.txt

管道(操作符号 | )

作用:将前面命令的输出,传递给后面命令,作为后面命令的参数

]# head -4 /etc/passwd | tail -1

]# head -8 /etc/passwd | tail -1

]# cat -n /etc/passwd | head -8 | tail -1

]# ifconfig | head -2

显示8~12行内容

]# head -12 /etc/passwd | tail -5

]# head -12 /etc/passwd | tail -5 | cat -n

]# cat -n /etc/passwd | head -12

]# cat -n /etc/passwd | head -12 | tail -5

]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt

]# cat /opt/pa.txt

grep高级使用

作用:从文本文件内容中,过滤关键字符串

]# grep root /etc/passwd

]# grep -v root /etc/passwd #取反匹配

]# grep ^root /etc/passwd #以root开头

]# grep bash$ /etc/passwd #以bash结尾

^$:表示空行,专门与-v选项连用,过滤不要空行

]# cat /etc/default/useradd

]# grep -v ^$ /etc/default/useradd

Linux中大多数配置文件内容,以#开头的行为注释行

显示配置文件有效信息(去除以#开头的注释行和去除空行)

]# grep -v ^# /etc/login.defs

]# grep -v ^# /etc/login.defs | grep -v ^$

]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt

]# cat /opt/log.txt

  • 过滤命令的输出

]# ifconfig | grep inet

]# ifconfig | grep 127

]# ifconfig | less #方便查看

find精确查找

格式:find [目录] [条件1]

    • 常用条件表示:

-type 类型(f文件、d目录、l快捷方式)

-name "文档名称"

-size +|-文件大小(k、M、G)

-user 用户名

-mtime 修改时间

  • -type 类型(f文本文件、d目录、l快捷方式)

[root@A /]# find /boot -type d

[root@A /]# find /opt -type d

[root@A /]# find /etc -type l

[root@A /]# find /boot -type f

[root@A /]# find /boot -type d | cat -n

[root@A /]# find /opt -type d | cat -n

[root@A /]# find /etc -type l | cat -n

[root@A /]# find /boot -type f | cat -n

[root@A /]# find /boot -type d | wc -l

[root@A /]# find /opt -type d | wc -l

[root@A /]# find /etc -type l | wc -l

[root@A /]# find /boot -type f | wc -l

  • -name "文档名称"

]# find /etc -name "passwd"

]# find /etc -name "*tab"

]# find /etc -name "*.conf"

]# find /etc/ -name "*tab" | wc -l

]# find /etc/ -name "*.conf" | wc -l

]# find /etc/ -name "*.conf" | cat -n

]# mkdir /mnt/cbd01

]# mkdir /mnt/cbd02

]# touch /mnt/cbd03.txt

]# find /mnt/ -name "cbd*"

]# find /mnt/ -name "cbd*" -type d

]# find /mnt/ -name "cbd*" -type f

  • -size +或- 文件大小(k、M、G)

]# find /boot/ -size +300k

]# find /boot/ -size +10M

]# find /boot/ -size +1M

]# find /boot/ -size +10M -size -50M

  • -user 用户名 (按照数据的所有者)

[root@A /]# useradd natasha #创建用户

[root@A /]# find /home -user natasha

[root@A /]# find / -user natasha

/proc:内存的数据,不占用硬盘空间

  • -mtime 修改时间 (所有的时间都是过去时间)

-mtime +90 #90天之前的数据

-mtime -90 #最近90天之内的数据

三个月之前的数据:

[root@A /]# find /var -mtime +90

最近10天之内的数据:

[root@A /]# find /root -mtime -10

find高级使用

处理find找到的数据,每查找的一个就传递一次

    • find [范围] [条件] -exec 处理命令 {} \;

-exec额外操作的开始

{} 永远表示前面find查找的结果

\; 额外操作的结束

]# find /boot -size +10M

]# find /boot -size +10M -exec cp {} /mnt \;

]# ls /mnt/

]# mkdir /root/mytab

]# find /etc -name "*tab" -type f

]# find /etc -name "*tab" -type f

-exec cp {} /root/mytab \;

]# ls /root/mytab

案例2:查找并处理文件

  1. 利用find查找数据的所有者为 student并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中

]# useradd student #创建普通用户student

]# mkdir /root/findfiles

]# find / -user student -type f

]# find / -user student -type f -exec cp {} /root/findfiles \;

]# ls -A /root/findfiles/ #-A显示隐藏数据

vim编辑技巧

当文件不存在,则自动新建,vim不能新建目录

三个模式:命令模式 插入模式(输入模式) 末行模式

[root@localhost ~]# vim /opt/nsd.txt

命-------i键 或 o键---------》插入模式(按Esc键回到命令模式)

式------输入英文的冒号 ":"-----》末行模式(按Esc键回到命令模式)

末行模式 输入 :wq #保存并退出

末行模式 输入 :q! #强制不保存退出

  • 命令模式操作
  • 光标跳转

]# cp /etc/passwd /opt/pass.txt

]# vim /opt/pass.txt

操作类型

按键指令

用 途

移动光标

上、下、左、右

上、下、左、右

光标行内跳转

Home 键 或 ^、数字 0

跳转到行首

End 键 或 $ 键

跳转到行尾

全文翻页

Page Up 键、

Page Down 键

向上翻页、向下翻页

光标行间跳转

1G 或 gg

跳转到文件的首行

G

跳转到文件的末尾行

  • 复制/粘贴/删除

操作类型

按键指令

用 途

复制

yy、3yy

复制光标处的一行、3行

粘贴

p、P

粘贴到光标处之后、之前

删除

xDelete

删除光标处的单个字符

dd、3dd

删除光标处的一行、3行

d^

从光标处之前删除至行首

d$或D(大写)

从光标处删除到行尾

小写的u为 撤销

  • 查找/撤销/保存

操作类型

按键指令

用 途

文本查找

/a

向后查找字符串“a”

nN

跳至后/前一个结果

撤销编辑

u

撤销最近的一次操作

U

撤销对当前行的所有修改

Ctrl + r

取消前一次撤销操作

保存退出

ZZ(大写)

保存修改并退出

  • 末行模式操作

:r /etc/filesystems

读入其他文件内容

]# echo 123456 > /opt/aa.txt

]# echo hahaxixi > /opt/cc.txt

]# vim /opt/cc.txt

末行模式下 :r /opt/aa.txt

末行模式下 :r /etc/passwd

末行模式下 :r /etc/shells

  • 字符串替换

操作类型

设置指令

用 途

行内替换

:s/root/new

替换光标所在行第一个“root”

:s/root/new/g

替换光标所在行所有的“root”

区域内替换

:1,10s/root/new/g

替换第1-10行所有的“root”

:%s/root/new/g

替换文件内所有的“root”

]# cp /etc/passwd /opt/s.txt

]# vim /opt/s.txt

  • 开关参数的控制

操作类型

设置指令

用 途

编辑器设置

:set nu或nonu

显示/不显示行号

:set ai或noai

启用/关闭自动缩进

]# vim /opt/h.txt

:set ai

  • vim常见故障:删除交换文件

[root@svr1 ~]# echo hahaxixi > /opt/dd.txt

[root@svr1 ~]# vim /opt/dd.txt

[root@svr1 ~]# rm -rf /opt/.dd.txt.swp

[root@svr1 ~]# vim /opt/dd.txt

  • date命令查看时间与修改时间

[root@localhost ~]# date

2022年 06月 06日 星期一 17:31:11 CST

[root@localhost ~]# date -s "2008-9-1 12:10:18"

2008年 09月 01日 星期一 12:10:18 CST

[root@localhost ~]# date

[root@localhost ~]# date -s "2022-7-5 17:15:18"

[root@localhost ~]# date

  • bc计算器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值