目录
2.2.20 ifconfig 查看当前活跃(开启)网卡信息
一、shell(一种解释器)
1.1 shell解释器
1. shell是Linux系统中运行的一种特殊程
2.在用户和内核之间充当 “翻译官”
3.用户登录Linux系统时,自动加载一个shell
4.Bash是Linux系统中默认使用的shell程序 bash是一种环境,也是一个文件,文件位于/bin/bash
1.2 内部命令与外部命令![](https://img-blog.csdnimg.cn/e67869693fb94003be2e207df6c43498.png)
二、Linux常用命令
2.1、通用命令使用格式
命令字 [选项] [参数] 英文字符区分大小写
命令字 1、是整条 命令中最关键的一部分 2、唯一确定一条命令
选项 1、短格式选项:使用 “ - ”符号引导 2、长格式选项:使用 “ -- ”符号引导
2.2、 Linux简单命令
2.2.1 [root@gang ~]# 介绍含义
[root@localhost ~]# [ 当前登录系统的用户@主机名称 当前所在的位置 ]
2.2.2 用户状态 su
1. # 表示为管理员用户登录
2. $ 表示为普通用户登录
3. 查看系统中有哪些普通用户 ls /home
4. 创建用户 useradd 用户名
[root@localhost ~]# useradd gang
2.2.3 (su) 切换用户
su 用户名 普通用户切换为管理员用户 所在目录不变
su - 用户名 #普通用户切换为管理员用户 所在目录发生变化 (注意普通用户切换为管理员用户需要输入密码)
普通用户进入管理员用户 需要输入密码
2.2.4 hostname 查看当前主机的完整名称
1. [root@gang /]# hostname 查看当前主机名
2. 永久主机名 hostnamectl set-hostname+主机名
3.临时主机名 hostname 主机名 更改后需要刷新
( init 6) 系统重启后临时主机名无效
2.2.5 (ls) 查看当前目录
ls 查看指定目录下的文件、目录等对象 适合看目录,看文件没有意义
命令字 【选项】 【参数】
常规选项,可结合通配符
ls -i #显示inode值
ls -R 可以加路径 #递归显示 比如一个目录下还有文件,则把那个文件也一起列
ls -h #友好显示文件大小(磁盘大小)
ls -a #遍历所有文件及目录(包含隐藏文件)
ls -A 以 .开头文件不显示 (跟-a 唯一的不同是不列出当前目录和上一层目录 以.开头文件不显示)
ls -d 显示隐藏内容 (查看目录本身信息,不显示目录下的内容)显示以一个 .开头的内容
ls -l 以长格式显示 (将文件信息属性详细列出,通常直接使用ll,因为设置了别名)
ls -lh 显示总占用空间及每个文件占用空间大小
ls -ah 显示总占用空间及所有文件占用空间大小
ls -alh 显示总占用空间及以长格式形式显示所有文件占用空间大小
2.2.6 cd 切换到指定位置
cd 单参数(绝对/相对路径 + 目录)cd (相对路径、绝对路径)
cd /home #后面跟绝对路径,切换到home目录
cd ./home #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录
cd .. #切换到上一层目录(父目录)
思考:如何切换到父目录的父目录(cd ../../)
从当前目录 以相对路径切换到指定目录
从当前目录 以绝对路径切换到指定目录
2.2.7 查看当前工作目录的路径:pwd
以绝对路径显示当前目录
2.2.8 文件名颜色区别
黑色数据文件 TXT
绿色 可执行文件
黄色 块设备文件
红色 压缩包
蓝色 文件夹
天蓝色 链接文件(快捷方式)
2.2.9 给命令设置别名 alias
alias #查看系统当前所有可用别名
临时修改网卡别名 [root@gang /]# alias 123='vim /etc/sysconfig/network-scripts/'
删除网卡别名 [root@gang /]# unalias 123
永久修改网卡别名 [root@gang /]#vim /root/.bashrc
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号
unalias ll #删除别名
永久生效
vim /root/.bashrc
临时修改
- alias 命令别名 = “命令”
- unalias 别名命令 删除别名
- \加命令 原始命令
修改
- 在/etc/bashrc 会影响全部
- /root/.bashrc只影响当前用户
补充:
别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
2.2.10 统计目录及文件空间占用情况 du
-h:显示出每一个文件以及大小,单位是 KB,MB,GB
-s:显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
-a: 显示所有文件 显示所有文件占用的 块的情况
du -sh #生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况
2.2.11 创建新目录 mkdir
职能:在指定位置创建新的目录(根据路径判断在哪创建)
1 : 在当前位置创建 2: 在/位置创建abc
连续创建多个连续文件,其中一个文件原本已经存在,则新建的文件会略过(跳过) 连续创建多个不同文件
-p:创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时,递归创建
mkdir -p 递归创建目录
2.2.12 创建空文件 touch
连续创建多个文件,其中一个文件原本已经存在,则新建的文件会略过
创建多个连续文件 touch {1..10}.txt
创建多个不同文件 touch 1 2 3
①文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
②文件不存在:创建新文件
touch [文件名]
touch [文件名] [文件名]
2.2.13 创建链接文件ln(软链接、硬链接)
ln 命令用于为文件或目录建立链接文件(类似于 Windows 系统中的快捷方式),提高 用户定位文件或定位目录的效
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同
ln -s 创建软链接,相当于创建一个快捷方式
ln 创建硬链接,相当于复制了一份副本
软链接建立时原始文件可以不存在
如果删除源文件之后又重新建立源文件,那么软链接照样可以用
软链接文件的大小就是软链接文件本身的文件名字符长度!
可以给目录做软链接,为了防止目录被删
硬软区别
硬链接不能跨分区建立连接 无法对文件夹创建 两年
删除硬件连接可以继续访问硬链接
(区别1.软、硬连接文件大小不一样,硬链接和原文件一样大,软链接就是一个inode值得大小
2.数据读取不一样,硬链接直接读取数据,软链接先读取原文件,原文件在去读取数据
3.软链接可指向目录,硬链接不行
4.软链接的原文件可以为文件或目录,硬链接的原文件不能为目录
5.原文件删除,软链接不能使用,硬链接可以使用)
软连接可以跨设备 可以支持文件夹、软连接删除源文件不能访问
硬链接:
一般情况下,文件名和inode号码是"一一对应"关系,ls
每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)
软链接:
除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。
注:相对路径与绝对路径 建议绝对路径
2.2.14 复制文件或目录 cp
cp [原位置可以为目录或文件] [目标位位置(可以起新名字)] 复制到目标位置的目录会在目录下自动生成一个原目录
-p:连属性一起复制
-a:保留权限,复制软链接本身,递归复制
-r:递归复制
-f:强制复制,不与用户交互
-i:提醒覆盖
cp -rf 复制目录时要用该命令
cp职能将原文件/目录复制到目标位置(目录) 如果是目标位置有同名的文件/目录的话,表示覆盖
cp [参数1]文件/目录 [参数2]目录
参数1 一定是原位置,也就是要复制的对象
参数2 表示目标位置,也就是我们要复制“到”的地方
2.2.15 删除文件或目录 rm
-i:删除文件或目录时提醒用户确认
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
-f:删除文件或目录时不进行提醒,而直接强制删除
常见用法:rm -rf /*
删除空目录:rmd
递归强制删除多个连续目录或文件 rm -rf {1..3}
递归强制删除多个不同目录或文件 rm -rf 4 1.log 62
2.2.16 移动文件或目录/改名 mv
用法:mv [文件名] [目录名] mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作
1、剪切并复制到指定位置(并自定义名字,也可默认) 2、改文件/目录名称(自定义名称)
mv 参数1 参数2
功能1:做为剪切并复制到指定位置(并自定义名字,也可以默认)这个功能来看的话:
参数1 :指的是要剪切的原文件/目录
参数2 :将剪切的原文件/目录要复制(移动)到的位置
判断1:自定义的话,mv 参数1 参数2 表示 剪切+移动+并重命名 ( 如果目标位置有重名文件,则会提示是否要覆盖?)
判断2:默认的话 mv 参数1 参数2 表示 剪切+移动+使用原名 ( 如果目标位置有重名文件,则会提示是否要覆盖?)
功能2:改文件/目录名称(自定义名称)
改名字: 需不需要移动(不需要切换路径)
mv 参数1 参数2
参数1 和参数2的位置必须要一样 (同一目录下mv的参数2才能更改名字)
参数1 :需要更改的文件/目录的 路径+名称
参数2 :需要变更为的新名字 路径+新名称
以上完成重命名
2.2.17 cat 查看文件
cat 只能看文件不能编辑,不能看目录![](https://img-blog.csdnimg.cn/ac75ee3a185743aeb257712d15ecc111.png)
2.2.18 查找命令/文件存放目录which
which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量 PATH 决定(可以执行“echo $PATH”命令查看),这个范围也是 Linux 操作系统在执行命令或程序时的默认搜索路径。
2.2.19 查找文件或目录 find
find命令是linux中查找文件的命令
语法格式:find 【文件路径】 【参数】
在不加任何参数的时候find命令会查看当前目录文件内容:
采用递归方式2,根据目标的名称、类型、大小等不同属性进行精细查找
不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
-name 按名称查找:
-size 按大小查找:
-user 按文件属主:
-type 按类型查找:普通文件(f)、目录(d).块设备文件(b).字符设备文件(c)、链接(l)
按时间查找 -mtime -atime -ctime -mtime +30
块设备指的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)
1、Find工具-name参数案列:
find /etc -name "resol*.conf"
find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;
find /data/ -name "test*" #查找/data/目录以test开头的文件;
2 、Find工具-size参数案列
find /data/ -size +1M #查文件大小大于1Mb的文件;
find /data/ -size 4M #查文件大小为10M的文件;
find /data/ -size -1M #查文件大小小于1Mb的文件;
-size +4M 表示4M 以上 不包括 4M x>4
-size 4M 表示3M 到4M 且不包括3M 3<x≤4
-size -4M 表示3M 以内 包括3M x≤3
1G 1024 代表1023M - 1024M 不包括1023M
[root@gang opt]# find ./ -size -30K -cmin -30 本地查找30分钟内创建的且30K内的文件
3、Find工具-type参数案列:(f:普通文件 d:目录文件 b:块文件 l:链接文件 p:管道文件 s:套接字文件 )
find /boot -type d
find /data/ -type d #查找/data/目录下的文件夹;
find /data/ ! -type d #查找/data/目录下的非文件夹;
find /data/ -type l #查找/data/目录下的链接文件。
find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;
find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;
4、查找存在的用户的文件
find /home -user 用户名
find /home -user 用户名(属主) -group 组名(属组)
5、find可以和管道配合使用
find /opt -name “*.log” | xargs -i cp {} /mnt 在/opt中找到以.log结尾的内容并复制到/mnt
find /opt -type d -name "[A-C]" -cmin -10 | xargs -i cp -R {} /mnt 在/opt中找到以大写字母开头的目录并复制到/mnt中
[root@gang opt]# find ./ -type f -cmin -5 | xargs rm -rf 在本地找到5分钟内创建的文件并删除
生产案列
find /backup/ -type f -name "*.log" -exec rm {} \; #删除日志文件
find /backup/ -type f -name "*.dmp" -exec rm {} \; #删除备份文件
find /backup/ -type f -name "*.tar.gz" -mtime +5 -exec rm -rf {} \; #删除5天前的备份(注意:{} \中间有空格)
设置 find 命令的查找条件时,若需要使用“*”或“?”通配符,最好将文件名用双引号括起 来,以避免当前目录下符合条件的文件干扰查找结果
find /boot -size +1024k -a/-o -name "vmlinuz*"
-name与-type -size -user 组合使用时 -name要放在后面
使用“-a”“-o”组合两个条件,前者表示两个条件必须同时满足, 后者表示只需满足其中任何一个条件即可
-mtime -- 文件内容修改时间
-ctime -- 文件属性修改时间
-ctime ##以天为单位
-cmin ##以分钟为单位
2.2.20 ifconfig 查看当前活跃(开启)网卡信息
ifconfig -a 查看当前系统中所有的网卡信息
2.2.21 创建网卡
1. 创建永久网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33 输入 i
TYPE=Ethernet 设置网卡类型 Ethernet 表示以太网
PROXY_METHOD=none 设置网卡名称
BROWSER_ONLY=no 设置网卡是否在linux操作系统启动时激活
BOOTPROTO=static 设置网卡的配置方式,static表示静态地址, dhcp表示动态获取地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 一般默认网卡名为ens33
UUID=9a5e1e21-1be4-491a-8bd7-2d5760f057d5
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.21 设置虚拟网卡的IP地址
NETMASK=255.255.255.0 设置网卡的子网掩码
GATEWAY=192.168.10.1 设置网卡的默认网关 也就是虚拟机的网关
DNS1=114.114.114.114 设置DNS服务器的IP地址
systemctl restart network 重启所有的网卡
ifdown ens33 关闭某个网卡
ifup ens33 启动某个网卡
ifconfig ens33 down 临时禁用某个网卡
ifconfig ens33 up 重新激活某个网卡
2.创建临时附属网卡
创建临时附属网卡IP ifconfig ens33:0 192.168.100.23/24
或 ifconfig ens33 192.168.100.23 netmask 255.255.255.0
cp -p ifconfig-ens33 ifconfig-en33:0 创建好后再进行修改
修改好后重启网络服务 systemctl restart network
删除网卡 rm -rf /etc/sysconfig/network-scripts/ifcfg-ens33:0
2.2.22 连接xshell
打开xshell 选择新建
2.2.23 查看路由 route -n
方法二:
ip route add 192.168.15.0/24 via 192.168.80.2 [dev ens33]
删除静态路由条目 route del -net 192.168.3.0/24
永久添加路由(重启network服务生效)
方法一:
vi /etc/sysconfig/static-routes
any net any gw 192.168.80.2
any net 192.168.3.0/24 gw 192.168.80.2
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.80.2
any host 192.168.100.100 gw 192.168.80.2
systemctl restart network 重启服务
方法二:
vim /etc/sysconfig/network-scripts/route-ens33
default via 192.168.80.2 dev ens33 #默认路由,另一种格式 0.0.0.0/0 192.168.14.254 dev ens33
10.211.6.0/24 via 192.168.80.2 dev ens33
192.168.100.200 via 192.168.14.254 dev ens33
systemctl restart network 重启服务
2.2.24 vi和vim
1、vi yum.conf 进入文件 想退出 先按Esc shift+: 输入q q! 为强制退出
2、vim yum.conf 进入文件 后里面文字颜色不一样
以#开头的这一行表示 注释状态,提供可以按这种模板来 更改
2.2.25 编辑linux命令行的辅助操作
Tab 键:自动补齐
反斜杠“\”:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
Ctrl+U组合键
Ctrl+E组合键:光标跳到行尾
Ctrl+A组合键:光标跳到行头
重启系统 init 6 关机 init 0 取消 shutdown -c
2.2.26 --help 适用大多数Linux外部命令
2.2.27 man手册的使用
linux的命令手册大全 用法:man cd 或者 man ls
按q退出
2.2.28 关闭防火墙软件
1. 临时关闭命令 systemctl stop firewalld.service
2. 查看服务状态 systemctl status firewalld.service
3. 永久关闭(下次开机不自启动) systemctl disable firewalld.service
2.2.29 关闭核心防护
2.2.30 置DNS服务器的IP地址及DNS域名
vi /etc/resolv.conf
是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名。最多可以指定3个不同的DNS服务器地址,优先使用第一个 DNS 服务器。对该文件所做的修改将会立刻生效。
nameserver 192.168.80.2 #定义DNS服务器的IP地址
vi /etc/resolv.conf 进入后 dd删除一行
2.2.31、关闭 SELinux
对于 SELinux,初学者可以这么理解,它是部署在 Linux 上用于增强系统安全的功能模块。
1. 临时关闭命令 setenforce 0
2. 查看服务状态 /usr/sbin/sestatus -v
3. 永久关闭(下次开机不自启动)修改vim /etc/selinux/config 将配置文件中的SELINUX=enforcing改为SELINUX=disabled
设置永久关闭之后需要重启机器
2.2.32、 相对路径的表现形式
表现形式 | 说明 | 示例 |
直接使用目录名或文件名 | 表示当前工作目录中的子目录、文件的位置 | grub.conf |
以一个点号 “ . ” 开头 | 表示以当前的工作目录作为起点 | ./grub.conf |
以“~用户名”形式开头 | 表示以当前目录的上一级目录((父目录)作为起点 | ../vmlinuz |
以“~” 形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
2.2.33、 通配符
ls查看文件和子目录
“ ?”匹配任意一个字符
ls -lh /dev/sd?1 ls ./ ?.log ls /opt ??.txt
“ * ” 匹配所有非隐藏的字符无论多长多短 * 表示0或1或多个 cat ./ *txt
*?? 至少有2个字符
通配符扩充
| 符号 | 效果 |
| ----------- | ------------------------------------------------------------ |
| ? | 匹配一个字符 f?.txt |
| * | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
| {1..10} | 1到10 |
| {a..z} | a b c ...z |
| {A..Z} | A B C .....Z |
| [123] | 取其中之一有就显示没有也无所谓 |
| [a-z] | 范围需要注意 |
| [0-9] | 匹配数字范围(0123456789) |
| \ | 转义符,表示原来的意思 |
| [[:lower:]] | 小写字母表示 a-z |
| [[:upper:]] | 大写字母表示 A-Z |
| [^zhou] | 匹配列表中的所有字符以外的字符 |
| [[:digit:]] | 任意数字,相当于0-9 |
2.2.34、普通文件
d 目录文件 directory
b 块设备文件block
p 管道文件pipe
s 套接字文件 socket
l 符号链接文件link
2.2.35 echo
[root@gang opt]# echo "你好" > 1.txt 重新定向 把 你好 输入到1.txt文件中
[root@gang opt]# echo "大家好" >> 1.txt
总结:
1、创建类命令 touch mkdir ln cp mv echo vi/vim
2、查询类命令 find ls cat pwd which du
3、统计类命令 ll du
4、其他 rm alias hostname su/bash