Linux基本指令
基本命令
命令行提示字符
[root@localhost ~]#
root:当前登录系统的用户
localhost:主机名称
~:当前所在的目录
#表示为管理员登录
$ 表示为普通用户登录
切换用户
su 用户名
切换之后所在目录不会改变
su - 用户名
切换后所在目录将会变成用户家目录
查看当前主机的完整名称-hostname
临时设置主机名-hostname 主机名
永久设置主机名
hostnamectl set-hostname 主机名
或
vi /etc/hostname(设置完后需重启系统才生效)
按i键先删除旧主机名,再输入新主机名(只有第一行有效)
按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出
或者
这个设置需要进行系统重启才行
查看当前系统版本信息
cat /etc/redhat-release
或
cat /etc/*release
查看当前内核版本
uname -r
临时修改网卡IP
ifconfig ens33 192.168.154.200/24
或
ifconfig ens33 192.168.154.200 netmask 255.255.255.04
永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
进行网卡类型设置,“Ethernet”是以太网
DEVICE=ens33
进行网卡名称的设置
ONBOOT=yes
设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static
设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.154.20
进行网卡 IP 地址设置
NETMASK=255.255.255.0
网卡子网掩码设置
GATEWAY=192.168.154.2
网卡默认网关地址设置
DNS1=192.168.154.2
DNS服务器的 IP 地址设置
重启网卡
systemctl restart network 重启所有的网卡
ifdown ens33;ifup ens33 关闭并开启某个网卡
ifdown ens33 关闭某个网卡
ifup ens33 启动某个网卡
ifconfig ens33 down 临时禁用某个网卡
ifconfig ens33 up 重新激活某个网卡(IP地址不会进行更新)
查看网卡地址
ifconfig
或
ip a
静态路由条目添加
临时添加路由
注意:重启network服务失效
方法一:
route add -net 192.168.1.0/24 gw 192.168.154.2 [dev ens33]
-net:指定目标网段的地址
gw:指定下一跳路由器的 IP 地址
dev: 为路由指定的输出接口
查看路由表条目
route -n
删除静态路由条目
route del -net 192.168.1.0/24
方法二:
ip route add 192.168.122.0/24 via 192.168.154.2 [dev ens33]
永久添加路由(重启network服务生效)
方法一:
vi /etc/sysconfig/static-routes
any net any gw 192.168.154.2
any net 192.168.3.0/24 gw 192.168.154.2
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.154.2
any host 192.168.100.100 gw 192.168.154.2
systemctl restart network
方法二:
vim /etc/sysconfig/network-scripts/route-ens33
default via 192.168.154.2 dev ens33 #默认路由,另一种格式 0.0.0.0/0 192.168.154.254 dev ens33
10.211.6.0/24 via 192.168.154.2 dev ens33
192.168.100.200 via 192.168.154.254 dev ens33
systemctl restart network
测试网络连接
ping
traceroute (静态跟踪)
mtr (动态跟踪)
重启系统
reboot
init 6
shutdown -r now
关机
poweroff
init 0
shutdown -h now
shutdown -c
shell是什么
是在Linux系统当中运行的一种特殊程序,主要是在用户与内核之间充当"翻译官”这一角色。
当用户登录Linvx系统时, 会自动加载shell程序 . Bash 是Linux系统中默认使用的shell程序,它的文件一般存放在/bin/bash 文件当中。
shell做用
用户输入的命令,经由shell接受并给出命令的解释,传递给系统直接执行。
内部命令和外部命令的区别
内部命令 | 外部命令 |
---|---|
集成于shell解释器程序内部的一些特殊指令,也可称为内嵌(内建Built-in)指令 | Linux系统中能够完成特定功能的脚本文件和二进制程序 |
属于shell的一部分 | 属于shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应系统中的一个文件 |
自动载入内存,能直接使用 | 必须知道其对应的文件位置,由shell加载后才可执行/bin,/usr/bin,/usr/locar/bin等 |
内部命令查看指令
1.help:内部命令
查看shell内部命令的帮助信息
命令“–help”选项
适用于大部分Linux的外部命令
可以使用man命令阅读手册页
1.使用“↑”“↓”(enter)方向键滚动一行文件
2.使用PageUP和PageDOWN(空格)键翻页
3.按Q或q键退出阅读环境
4.按“/”键查找内容,n键向下查询,N键向上查询
2.enable
若要禁用某个内部命令使用 enable -n(命令)
3.type+命令
Linux通用命令行的格式
命令字 【选项】 【参数】
命令 | 说明 |
---|---|
命令字 (操作) | 1.整条命令当中最关键的一部分 2.唯一确定的一条命令 (使用大小写的英文区分) |
选项 (功能) | 1.短格式选项:使用“-”符号引导(多个单字符可以组合在一起使用) 2 长格式选项:使用“- -”符号引导 |
参数(执行对象) | 1.命令字执行对象 2.可以是文件名、目录(路径)名或用户名等内容 3.个数可以是0到多个 |
Linux命令行的辅助操作键
Tab:自动补齐
反斜杠" \ ":强制执行
Ctal+U: 清空到行首
Ctal+K: 清空到行尾
Ctal+L: 清屏
Ctal+C: 取消本次编辑
Ctal+a: 切换到行首
Ctal+e: 切换到行尾
pwd-查看当前工作目录
用于显示用户当前所在的工作目录位置
如:
【root@localhost ~】# pwd
得到
/root 当前工作目录
CD命令
cd—切换工作目录
将用户的工作目录切换到其他位置
命令 | 说明 |
---|---|
cd 目标位置 | 切换到目标位置 |
cd ~ 或cd | 不指定目标位置,切换到宿主目录 |
cd- | 切换到上一次cd命令之前所在目录 |
其中又分为绝对路径和相对路径
绝对路径:就是命令后面跟着“/”的路径,亦就是从根分区输入的路径就是绝对路径,此时它切换的目录不会改变
相对路径:
表现形式 | 说明 | 式例 |
---|---|---|
直接使用目录名或文件名 | 表示当前的工作目录中的子目录文件的位置 | grub.conf |
以一个点号“.”开头 | 表示以当前的工作目录作为起点 | ./grub.conf |
以两个点号“…”开头 | 表示以当前工作目录的上一层目录(父目录)作为起点 | . ./vmlinuz |
以”~用户名“ 形式开头 | 表示以指定用户的宿主目录作为起点 | ~/teacher |
以“~”形式开头 | 表示以当前用户的宿主目录作为起点 | ~ |
ls-列表显示目录内容
用于显示目录中内容,包括子目录和文件相关属性信息
格式: ls [选项] [文件或目录…]
常用选项:-l 、-a、-A、-d、-h、-R、–color、-i
常用选项 | 作用 |
---|---|
-l | 以长格式(iong)显示文件和目录列表,包括权限,大小,最后更新时间等详细信息。ll命令和ls-l命令相同 |
-a | 显示所有(all)子目录和文件的信息,包括以点号“.”开头的隐藏目录和文件 |
-A | 与-a选项做用基本相似,但不会显示当前目录的“.”和父目录“…”这两个目录 |
-d | 显示目录(directory)本身属性,而不是显示目录中的内容 |
-h | 以更人性化(Human)的方式显示目录或文件大小,默认使用字节(b)表示,使用该选项后会以kB和MB等表示,此选项要和-l一起使用 |
-R | 以递归(Recursive)的方式显示指定目录及其子目录中的所有内容 |
–color | 在字符中使用不同颜色区分不同文件,默认是开启状态。通常表示为:深蓝色为目录,白色为一般文件,绿色为可执行文件,黄色为设备文件,红色为压缩文件 |
-i | 显示文件和目录的inode号 |
ls-l查看的文件格式
会得到一个由7个字段组成的列表
-rwerwer-- 1 root root 780 07-29 19:25 exit
第一字段代表文件类型
“-”表示该文件是一个普通文件
“d”表示该文件是一个目录
"l"表示该文件是一个软链接,类似于Windows下的快捷方式
第一个字符后9个字母该文件或目录的权限位
r: 表示读(查看,下载)
w: 表示写(添加,更改,删除,上传)
x: 表示执行(运行文件,切换目录)
前三个表示拥有者(属主)权限,中间三个为文件所属组拥有的权限,最后三个表示其他用户拥有的权限
第二字段
如果是一个文件,此时这样字段表示这个文件所具有的硬链接数
如果是一个目录,则表示该目录所含子目录个数。
这时在添加一个目录,此目录的第二字段位2,表示该目录有2个子目录。
第三字段
文件、目录拥有者
第四字段
文件、目录拥有者所在的组
第五字段
为文件所占用的空间(默认单位为字节)
目录则表示该目录大小,不会显示目录中文件的总大小
且在Linux系统中,一切皆为文件,因此目录也是一种文件
第六字段
文件、目录最近访问或修改时间
第七字段
是文件名
如果是一个符号链接(软连接文件),那么会有一个“→”符号箭头,后面跟一个它指向的文件名。
设置别名-alias
通过别名机制简化常用较长的命令
alias 命令别名=“命令”
式列:设置ens33为vi/etc/sysconfig/network-scripts/ifcig-ens33
alias viens33= ‘vi/etc/sysconfig/network-scripts/ifcig-ens33’
du命令
du-统计目录及文件空间占用情况
du [选项] [文件或目录…]
常用命令 | 说明 |
---|---|
-a | 统计磁盘空间占用,包括所有的文件,不只统计目录 |
-h | 以更人性化的方式(默认为kB计数,不会显示单位)显示统计结果 |
-s | 只统计所占用空间总的大小,而不是统计每个子目录总大小 |
–max-depth=n | 统计所有小于等于第n层的目录总的大小 |
注意:选项-s和-a有冲突,不能同时使用
式例:统计出/var/log目录中子目录大小
du-h --max-depth=1/var/log/
mkdir命令
用于创建新目录
mkdir [选项] 命令位置及名称
选项 -p 一次性创建嵌套的多层目录
示例:
在当前目录下创建名为public-html的zml
mkdir public-html
创建目录/aa,在/aa目录下创建子目录bb,在aa/bb目录下创建子目录cc
mkdir -p /aa/bb/cc
touch
创建空文件或更新文件的时间标记
经常用于创建多个新的空文件
touch 文件…
示例:touch 123.txt
touch 110.txt 111.txt 121.txt
用大括号{}批量添加
touch {aa,bb,cc}.txt
touch{1…50}.txt
touch{a…z}.txt
注意:touch{,150}.txt只能创建一个空文件, 逗号“,”前面没加内容是个空值。
In
为文件或目录建立链接文件,类似于Windows系统的快捷方式
创建的逻辑文件分为二类
1.软连接(又称符合链接)
2.硬链接
In 【选项】 源文件或目录… 链接文件或目录位置
常用选项 | 说明 | 示例 |
---|---|---|
-s | 创建软链接 | In-s /bin/bzip2/bin/wx/ |
-f | 表示强制进行覆盖 | In-sf /…/1.txt abc.txt |
-l | 用以查看一个文件的硬链接数 | In-l |
注意:软连接中源文件必须使用绝对路径进行创建,因为使用相对路径进行创建,只会在当前目录查找,一旦文件迁移,软连接即失效。
链接文件类型与区别
文件类型 | 软链接文件 | 硬链接文件 |
---|---|---|
删除源文件 | 失效 | 仍然可用(文件占用与源文件相同) |
使用范围 | 适用于文件或目录 | 仅适用文件 |
保存位置 | 与源文件可不在一个文件系统中 | 必须与源文件在同一个文件系统(同一分区)中 |
与源文件关系 | 相当于快捷方式 | 相当于给文件取一别名 |
inode号 | inode号不同 | inode号相同 |
当一个文件拥有多个硬链接时,对文件进行修改,会影响全部文件名;但删除一个文件名,不影响别的文件名访问。删除一个文件名只会使“硬链接数”减一。
cp
将需要复制的文件或目录重建一份,并保存在新的文件或目录中
cp 【选项】…源文件或目录… 目标文件或目录…
常用选项 | 做用 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖同名文件或目录时提醒用户确认。 |
-p | 复制时保持源文件的权限,属主及时间标记等属性不变 |
-r | 复制目录时,必须使用此选项表示递归复制所有文件及子目录 |
注意:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。
示例:
先创建一个yum-bak空文件
mkdir yum-bak
cp /etc/host.conf /etc/host,conf.bak
cp host.conf{,.bak}
cp -r /etc/yum.repos.d/ /etc/yum.conf yum-bak/
cp-i是cp的别名,且使用绝对路径可以不用进行用户确认
rm
删除指定的文件或目录
rm 【选项】 要删除的文件或目录…
常用选项 | 做用 |
---|---|
-f | 删除文件或目录时,不用进行提醒,直接强制删除 |
-i | 删除文件或目录时,用户进行确认(yes:删除 no:不删除 |
-r | 删除目录时必须使用此选项,表示递归删除整个目录树(谨慎使用) |
注意:不要直接删除系统中已有的目录和配置文件,避免出现意外故障。
示例:
rm -rf /etc/yum.repots.d/*
一般删除目录下的文件时,建议先切换到目录下在执行rm -rf 指令
cd aa
rm -rf *
mv
移动文件或目录
若目标位置与源位置相同,则相当与执行重命名操作
mv【选项】 …源文件或目录… 目标文件或目录
示例:mv 1.txt /opt/
mv命令只能对单个文件重命名,可用rename命令批量修改
rename 旧字符 新字符 目标文件
如: rename jpg gif* .jpg
which
查找命令文件存放目录
其中搜索范围是由环境变量PHATH决定(echo$PATH)
which 命令|程序名 (默认为从左到右依次查询,且只要找到第一个目标后不再继续查询)
或 which -a 命令|程序名 (在所有搜索路径中查找)
示例:which is
which history(内部命令)
使用which查找内部命令时,将找不到对应的程序
find
使用递归的方式,根据目标的名称,类型,大小等不同属性进行精细查找。
find 【查找范围】 【查找条件表达式】
查找范围:用于查找文件或子目录的命令位置
查找条件表达式:查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”和“?”通配符 |
文件大小 | -size | 根据目标文件大小进行查找。一般使用“+”、“—”号设置超过或小于指定大小作为查找条件。 |
文件属主 | -user | 根据文件是否属于目标用户进行查找 |
文件类型 | -type | 根据文件类型进行查找。文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)、等块设备文件(b):成块读取数据的设备(硬盘、内存、光驱)。 字符设备文件(c):按单个字符读取数据的设备(鼠标,键盘)。 |
find命令实现多个查找条件
常用字符 | 含义 |
---|---|
-a | 表示而且(and) |
-o | 表示或者(or) |
示例:find /boot -size +10M -a -name “.lmg”
find /boot -size +10M -o -name “.lmg”
exec
exec用法
-exec 参数后面跟Linux命令,是以分号“;”为结束标志,由于不同系统中分号会有不同含义,因此在分号前加反斜杠转义符“"。
{}表示前面查出来的文件名
经find命令匹配到当前目录的所有普通文件,在exec选项中使用ls-l命令列出
find /boot -size +10M -o -name “*.img” -exec ls -l {}\ ;