LINUX 系统的一些基础命令
LINUX 系统的一些入门基础
Shell
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”
- 用户登录Linux系统时自动加载一个shell程序
- Bash是Linux系统中默认使用的shell程序----文件位于/bin/bash
Linux命令的分类
内部命令与外部命令的区别
内部命令 | 外部命令 |
集成于Shell解释器程序内部的一些特殊指令,被称为内嵌指令 |
Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
查看内部命令
help 命令 enable 命令 type 命令
禁用内部命令
enable -n 命令
Linux命令行的格式
通用的命令行使用格式
命令字 [选项] [参数]
命令字------ 就是要进行的操作 (是整条命令中最关键的一部分,是唯一确定的一条命令)
选项 ---------就是功能 (短格式选项:使用“-”+字母 长格式选项:使用“--”+单词)
参数 ---------命令要执行的对象 (命令字的处理对象,可以是文件名、目录名或用户名等内容,个数可以是零到多个)
编辑LInux命令行的快捷键
- Tab :自动补齐
- 反斜杠“\”:强制换货 (看上去换行了 但是实际上还是在一行 方便长代码的观看)
- Ctrl+U:清空至行首
- Ctrl+K:清空至行尾
- Ctrl+L:清屏
- Ctrl+C:取消本次命令编辑
- Ctrl+a:切换到行首
- Ctrl+e:切换到行尾
获得命令帮助的方法
- 内部命令 help 查看Shell内部命令的帮助信息
- 命令 --help 适用于大多数Linux外部命令
- man 命令 使用man手册 (“/”键查找内容 N键向上找,n向下找)
Linux的一些基础命令
切换用户
su 用户名 #切换后所在目录不变
su - 用户名 #切换后所在目录变成用户家目录
查看当前主机的完整名称
hostname
临时设置主机名
hostname 主机名
永久设置主机名
hostnamectl set-hostname 主机名
或
vi /etc/hostname(设置完后需重启系统才生效)
按i键先删除旧主机名,再输入新主机名(只有第一行有效)
按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出
查看当前系统版本信息
cat /etc/redhat-release
或
cat /etc/*release
查看当前内核版本
uname -r
设置别名 -alias
通过别名机制简化常用的、比较长的命令
alias 命令别名=‘命令’
列如 alias vi ens33=‘vi /etc/sysconfig/network-scripts/ifcfg-ens33’
用户输入vi ens33 就起到了修改enss33网卡的作用
临时修改网卡IP
ifconfig ens33 IP和子网掩码
永久修改网卡IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #设置网卡类型,“Ethernet”表示以太网
DEVICE=ens33 #设置网卡的名称
ONBOOT=yes #设置网卡是否在 Linux 操作系统启动时激活
BOOTPROTO=static #设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址
IPADDR=192.168.80.3 #设置网卡的 IP 地址
NETMASK=255.255.255.0 #设置网卡的子网掩码
GATEWAY=192.168.80.2 #设置网卡的默认网关地址
DNS1=192.168.80.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.3.0/24 gw 192.168.8.2 [dev ens33]
-net:指定目标网段的地址
gw:指定下一跳路由器的 IP 地址
dev: 为路由指定的输出接口
方法二:
ip route add 192.168.3.0/24 via 192.168.8.2 [dev ens33]
查看路由表条目
route -n
删除静态路由条目
route del -net 192.168.3.0/24
测试网络连接
ping
traceroute (静态跟踪)
mtr (动态跟踪)
重启系统
reboot
init 6
shutdown -r now (now是现在执行换成数字是以分钟为单位的)
关机
poweroff
init 0
shutdown -h now (now是现在执行换成数字是以分钟为单位的)
shutdown -c
查看及切换目录(pwd、cd、ls、du)
显示用当前所在的工作目录位置
pwd
切换工作目录 -cd
cd 目标位置 切换到目标位置
cd ~ 切换到当前用户的宿主目录
cd 切换到当前用户的宿主目录
cd - 切换到上一次执行cd命令之前所在的目录
- 绝对路径 :起点从根目录开始
- 相对路径 :以当前目录位置为起点
以“.”开头 表示以当前的工作目录为起点
以“..”开头 表示当前目录的上一级目录作为起点
以“~用户名”开头 表示以指定用户的宿主目录为起点
以“~”开头 表示以当前用户的宿主目录作为起点
列表显示目录内容 -ls
显示目录中内容,包括子目录和文件相关属性信息
常用组合
- -l:以长格式(long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。“ll”命令和 ls -l 相同
- -a:显示所有(all)子目录和文件的信息,包括名称以“.”开头的影藏目录和影藏的文件。
- -A:与-a 选项的作用基本相同,但不会显示影藏的目录 “.” “..”
- -d:显示目录本身的属性,而不是显示目录中的内容。
- -h:人性化的显示目录或文件的大小,原来默认的大小单位是字节(B)-h后显示KB、MB、等。此选项和“-l”一起使用。
- -R:以递归的方式显示指定目录及其子目录中的所有内容
- -i: 显示文件和目录的inode号
用“ls -l”命令查看某一个目录会得到一个7个字段的列表
-rwxrwxr-- 1 root root 762 07-29 18:19 exit
第1字段:文件属性字
第一个字符代表文件的类型:
“-"表示该文件是一个普通文件
"d"表示该文件是一个目录
"1"表示该文件是一个软链接文件。类似于windows下的快捷方式
第1字符的后面9个字母表示该文件或目录的权限位:
r表示读(查看、下载) 、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)
其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数
如果是一个目录,则第2字段表示该目录所含子目录的个数。
如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。
一个目录一定会有两个隐藏目录 , 点“.” 和 点点“..”
第三个字段:文件/目录拥有者
第四个字段:文件/目录拥有者所在的组
第五字段:文件所占用的空间(默认以字节为单位)
如果是一个目录,则表示该目录(名)的大小,而不是目录及它下面的文件的总大小。
Linux系统中一切皆文件,因此目录也是一种文件。
LInux中文件名和文件数据分开存放
一个字节占8位。默认大小字节
注,仅代表目录的大小,而不是目录占用的总磁盘空间
第六字段:文件/目录最近访问或修改时间
第七字段:文件名
如果是一个符号链接(软链接文件),那么会有一个“→”箭头符号,后面跟一个它指向的文件名
统计目录及文件空间占用情况 -du
统计指定目录或文件所占用磁盘空间的大小
du 【选项】 【文件或目录】
常用选项
- -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
- -h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
- -s 只统计所占用空间总的大小,而不是统计每个子目录、文件的大小
- --max-depth=n 统计所有小于等于第n层的目录的总大小
创建目录和文件(mkdir、touch、ln)
创建新的空目录
mkdir 【选项】目录位置及名称
mkdir -p /aa/bb/cc 一次性创建嵌套的多层目录
创建空文件
touch
- 更新文件的时间标记
- 经常用于创建多个新的空文件
touch aa.txt bb.txt 创建aa.txt bb.txt 也可以合成 touch {aa,bb}.txt
创建链接文件
为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型
- 软链接(又称符号链接) ln -s 源文件或目录 链接文件或目标位置 可以创建文件目录 (软链接的源文件最好带绝对路径)
- 硬链接 ln 源文件或目录 链接文件或目标位置 只适合文件的创建 (同根生 修改硬链接里面的内容 就是在修改源文件的内容)
在Linux中,文件名和文件数据是分开存储的
提示 :
- 在Linux中,只有文件的硬链接数=0 才会被删除
- 使用ls -l 可以查看一个文件的硬链接数量
- 在日常工作中,几乎不会建立文件的硬链接
复制、删除、移动目录和文件(cp、rm、mv)
将需要复制的文件或目录 重建一份,并保存为新的文件或目录
复制文件或目录
cp [选项] 源文件或目录 目标文件或目录
常用选项
- -f:覆盖目标同名文件或目录时不进行提醒,直接强制复制
- -i:覆盖目标同名文件或目录时提醒用户确认
- -p:复制时保持源文件的权限、属主及时间标记等属性不变
- -r:复制目录时必须使用次选项,表示递归复制所有文件及子目录
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
删除文件或目录
rm [选项] 要删除的文件或目录
常用选项
- -f:删除文件或目录时不进行提醒,直接强制删除
- i:删除文件或目录时进行提醒用户确认(y表示删除,n表示不删除)
- -r:删除目录时必须使用此选项,表示递归删除整个目录 (谨慎使用)
注: 不要直接删除系统中已有的目录或配置文件,以免出现意外故障
删除目录下文件时最好先切换到目录下再执行 rm -rf 命令
mv [选项] 源文件或目录 目标文件或目录
如果目标位置与源位置相同,则相当于执行重命名操作
mv命令只能对单个文件重命名, 可以使用rename命令批量修改文件名
rename 原名字 新名字 目标文件
查找目录和文件(which、find)
搜索范围由环境变量PATH决定(echo $PATH)
which 命令或程序名 默认当找到第一个目标后不再继续查找 (从左原则)
which -a 在所有搜索路径中查找
find [查找范围] [查找条件表达式]
find -a 表示而且(and)
find -o 表示或者 (or)
常用查找条件类型
- -name 按名称查找 根据目标文件的名称进行查找,允许使用“*”和“?”通配符
- -size 按文件大小查找 一般使用“+”“-”号设置超过或小于指定的大小作为查找条件 (常用的容量单位包括kB、MB、GB)
- -user 根据文件是否属于目标用户进行查找
- -type 根据文件的类型进行查找
普通文件 (f)
目录 (d)
块设备文件 (b):成块读取数据的设备(硬盘,内存,光驱)
字符设备文件 (c):按单个字符读取数据的设备 (键盘、鼠标)
find 的exec用法
-exec 参数后面跟着Linux命令,以反斜杠 “\” 加 分号 “;” 为结束标志,
{} 代表了前面find查找出来的文件名
find命令匹配到了当前目录下的所有普通文件,并在-exec 选项中使用ls-l命令将他们列出
find ./-type f -exec ls -l {} \;