Linux 基本操作命令
一、基础知识
[root@localhost ~]# 
--------------------------------------------------------------------------
root		# 表示用户名
localhost	# 表示主机名
  ~			# 表示当前用户的家目录
  			# 普通用户的家目录在 		 /home/普通用户名称/
  			# 超级管理员root的家目录在	/root/
  			
  /			# 表示根目录
  #			# 表示当前用户用有超级管理员权限
  $			# 表示当前用户是普通用户
  
# 关机命令
-------------------------------------------------------------------------
halt				# 立即关机
poweroff			# 立即关机
shutdown -h now		# 立即关机(root用户使用)
shutdown -h 5		# 5秒后自动关机
# 重启
------------------------------------------------------------------------、
reboot
init6
shutdown -r now
二、Linux 基础命令
1. shell
shell 是 linux 系统后台运行的特殊程序,为用户和 linux 系统内核交互提供接口
(1)shell环境
 bash 是 linux 系统默认的 shell 环境
① 查看当前使用的shell环境
[root@localhost ~]# echo $SHELL

② 查看当前可使用的shell环境
[root@localhost ~]# cat /etc/shells

③ shell的环境切换至sh
[root@localhost ~]# sh

(2)内部命令和外部命令
 内部命令优先级比外部命令高
| 内部命令 | 外部命令 | 
|---|---|
| 在shell内部 | 在shell外部 | 
| 在shell解析器程序内部的特殊指令 | linux系统中可以完成某种功能的特定脚本文件和二进制文件 | 
| 没有单独的系统文件 | 每个命令都有一个可执行的文件 | 
| 自动载入内存 | 需要找到其对应的存储位置,由shell加载执行 | 
查看是命令的类型
# 查看cd的类型
[root@localhost ~]# type cd
# 查看ls的类型
[root@localhost ~]# type ls

2. 命令格式
(1)格式
 命令字 [选项] [参数]
- 
命令字 整条命令最关键的一部份 
- 
选项 短格式:用 - 表示 再加上一个字母 长格式:用 -- 表示 再加上一个单词 
- 
参数 命令字处理的对象 可以是单个也可以是多个 ; 可以隔开命令,一次执行多个命令 
(2)快捷键
| 快捷键 | 功能 | 
|---|---|
| Tab 键 | 自动补齐(两次可以显示所有选项) | 
| 反斜杠“\” | 强制换行或转义 | 
| Ctrl+a | 光标移到最前 | 
| Ctrl+e 或 end 键 | 光标移到最后 | 
| Ctrl+U | 清空至行首不包括当前光标处的 字符 | 
| Ctrl+K | 清空至行尾包括当前光标处的字符 | 
| Ctrl+w | 从当前光标删除到开头 | 
| ALT+d | 从当前光标删除末尾 | 
| Ctrl+l | 清屏 | 
| Ctrl+c | 取消本次命令编辑 | 
| Ctrl+s/Ctrl+q | 锁屏/解锁 | 
| 向上下箭头 | 回看执行过的命令 | 
3. 帮助命令
(1)help
 用于查看命令字的用法
① help内部命令格式:help 命令字
查看内部命令echo用法
[root@localhost ~]# help echo

② help外部命令格式:命令字 help
查看外部命令cat用法
[root@localhost ~]# cat --help

(2)man
 man 比 help 显示的更加详细
 退出查看按 q 键
用 man 查看 cat 的详细用法
[root@localhost ~]# man cat
(3)info
 info 比 man 更加详细
 退出按 q 键
用 info 查看 cat 的详细用法
[root@localhost ~]# info man
3. cd 命令
切换目录
格式:cd 目标目录
(1)特殊目录
| 目录 | 含义 | 
|---|---|
| / | 根目录 | 
| ~ | 当前用户的家目录 | 
| /root | 超级管理员家目录 | 
| /home/用户名 | 普通用户的家目录 | 
| - | 上一次目录(上一次使用cd的目录) | 
| . | 当前目录 | 
| .. | 当前目录的父目录 | 
| . 开头的文件 | 隐藏文件(ls -a 可看到) | 
(2)实操
切换至/opt目录
[root@localhost ~]# cd /opt

4. ls 命令
生产环境慎用,文件量过大,或导致死机
格式:ls [选项] [文件或目录]
(1)选项作用
| 选项 | 作用 | 
|---|---|
| -l 或 直接 ll | 长格式显示 | 
| -a | 显示全部文件,含隐藏文件(开头为 . 的文件) | 
| -A | 显示全部文件,含隐藏文件(不包含 . 和 .. ) | 
| -d | 只列出本身,不包含目录下的文件 | 
| -h | 人性化显示,文件大小带单位(与长格式显示联合使用) | 
| -R | 递归显示 | 
长格式显示每个字段的含义:
| 字段(共七个字段) | 含义 | 
|---|---|
| 第一字段 | 第一位: 文件类型 - 表示普通文件 d 表示目录; l 表示链接文件; b 表示块设备(磁盘) p 管道文件 s 套接字文件 后九位: 每三位代表一方的权限 第一方 文件拥有者 第二方 --- 文件拥有者所在的组 第三方 --- 其他人 r 代表 可读;w 代表 可写;x 代表 可执行; | 
| 第二字段 | 如果文件是目录:表示该目录下有多少文件 如果是文件:表示链接数 | 
| 第三字段 | 拥有者 | 
| 第四字段 | 拥有者所属组 | 
| 第五字段 | 占用空间大小 | 
| 第六字段 | 文件的更改的最新时间 | 
| 第七字段 | 文件名称 如果是链接文件:会有箭头从文件名指向被链接文件的路径 | 
(2)实操
 ① 显示当前目录下的内容
[root@localhost /]# ls

 ② 长格式显示 / 目录下的文件名
[root@localhost ~]# ll /

 ③ 人性化显示
[root@localhost /]# ll -h

 ④ 显示自身文件
[root@localhost /]# ls -d

 ⑤ 递归显示
[root@localhost /]# ls -R /opt

5. 查看文件或目录的占用空间大小
格式:
du [选项] [文件或目录]
(1)选项含义
| 选项 | 含义 | 
|---|---|
| -a | 统计当前目录和目录下所有文件的占用空间大小 | 
| -h | 人性化显示统计结果(默认 KB 为单位) | 
| -s | 只统计当前目录的总占用空间大小,不统计子目录和子文件大小 | 
| -d | 最大显示到第几层 | 
| --exclude | 不计入统计 | 
(2)实操
统计 /etc 目录的总占用空间大小并人性化显示
[root@localhost ~]# du -sh /etc

6. 创建目录和文件
(1)命令作用
| 命令 | 作用 | 
|---|---|
| mkdir | 创建目录 创建递归目录时 使用选项 -p | 
| touch | 创建文件 | 
(2)实操
格式:
mkdir [选项] 目录名(路径)
touch 文件名
① 在根目录下创建 data 目录
[root@localhost ~]# cd /
[root@localhost /]# mkdir data

② 在 /data 目录下递归创建目录 aa、bb、cc,即 bb 在 aa 中,cc 在 bb 中
[root@localhost /]# cd data/
[root@localhost data]# mkdir -p aa/bb/cc

③ 在data目录下创建file1文件
[root@localhost data]# touch file1

④ 在data目录下创建多个同级目录 file2、flie3、file4
[root@localhost data]# touch file2 file3 file4

7. 复制及剪切目录和文件
(1)命令作用
| 命令 | 作用 | 
|---|---|
| cp | 用于复制文件及目录 | 
| mv | 用于剪切文件及目录(若源文件路径与目标文件路径一致,表示重命名) | 
(2)选项含义
| 选项 | 含义 | 
|---|---|
| -f | 覆盖同名文件及目录时不提醒,直接强制覆盖 | 
| -i | 覆盖同名文件时提示用户确认 | 
| -p | 复制、剪切时保持源目录的权限、属主、时间标记等属性不变 | 
| -r | 复制、剪切目录时必须使用此选项,表示递归复制所有文件及子目录 | 
| -a | 复制、剪切目录时完整保留完整的信息 | 
| -v | 可视化(显示过程) | 
| -u | 相当于增加备份,差异备份(只对目录起作用) | 
(3)实操
格式:
cp	[选项]	源文件路径	目标文件路径
mv [选项] 源文件路径 目标文件路径
① 将 /data/file1 文件复制到 /data/aa 目录中
[root@localhost data]# cp /data/file1 /data/aa/

② 将 /data/aaa 目录 复制到 /data/aa 目录下
[root@localhost data]# cp -rfa /data/aaa/ aa/

③ 将 /data/file2文件 剪切到 /data/aa 目录下
[root@localhost data]# mv /data/file2 /data/aa/
 ④ 将 /data/aa/bb 目录剪切到 /data/aaa 目录下
④ 将 /data/aa/bb 目录剪切到 /data/aaa 目录下
[root@localhost data]# mv /data/aa/bb /data/aaa

8. 删除目录和文件
(1)命令作用
| 命令 | 作用 | 
|---|---|
| rm | 删除文件及目录 | 
(2)选项含义
| 选项 | 含义 | 
|---|---|
| -r | 递归删除(目录) | 
| -f | 强制,不询问直接删除 | 
| -i | 删除时询问 | 
(2)实操
格式:
rm [选项] 目标目录或文件路径
① 删除 /data/file1文件
[root@localhost data]# rm -f file1

② 删除 /data/aaa目录
[root@localhost data]# rm -rf /data/aaa

9. 正则表达式
用于匹配符合要求的内容
(1)符号含义
| 符号 | 含义 | 
|---|---|
| ? | 匹配任意一个字符(相当于任意一个字符),例:a?,表示a开头的两个字符 | 
| * | 匹配所有字符,不包括 . 开头文件(隐藏文件) | 
| {1..5} 匹配 1 到 5 的数字 | |
| {a..z}匹配 a 到 z 的小写字母 | |
| {A..Z} 匹配 A 到 Z 的大写字母 | |
| [123] | 匹配 1 、2 、3 中的随意字符 | 
| [a-z] | 匹配 a-z 的任意大小写字母(大写Z 除外) | 
| [A-Z] | 匹配 A-Z 的任意大小写字母(小写a 除外) | 
| \ | 转义字符表示原来的意思 | 
| [[:lower:]] | 匹配 a 到 z 的小写字母 | 
| [[:upper:]] | 匹配 A 到 Z 的大写字母 | 
| [[:digit:]] | 匹配任意数字,相当与 0-9 | 
(2)实操
① 查看/data中含有共两个字符且第二个字符时a的文件及目录
[root@localhost data]# ls ?a

② 查找/data目录中f开头的所有文件或目录
[root@localhost data]# ls f*

③ 在/data目录中创建 1-3.txt 文件
[root@localhost data]# touch {1..3}.txt

④ 在/data目录中创建 a-c.txt 文件
[root@localhost data]# touch {a..c}.txt

⑤ 查找/data目录中 1.txt 和 a .txt 的文件或目录
[root@localhost data]# ls [1a].txt

10. 命令别名
(1)命令
| 命令 | 作用(临时修改,系统重启后失效) | 
|---|---|
| alias 命令别名=‘命令’ | 修改命令别名 | 
| unalias 命令别名 | 删除命令别名 | 
| \加别名的命令 | 使用原始命令 | 
| 命令 | 作用(永久修改) | 
|---|---|
| 进入 /etc/.bashrc 添加修改别名 | 影响全部用户 | 
| 进入 /当前用户的家目录/.bashrc 添加修改别名 | 只影响当前用户 | 
(2)实操
① 将 cat /etc/sysconfig/network-scripts/ifcfg-ens33 命令临时将别名设置为 ens33
[root@localhost ~]# alias ens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33'

② 删除别名ens33
[root@localhost ~]# unalias ens33

③ 将 ls /opt 命令的别名设置为 ls,当使用 ls 查看当前目录下的内容时,发现是查看 /opt 目录下的内容,使用 \ls 使用原 ls 命令
[root@localhost /]# alias ls='ls /opt'
[root@localhost /]# \ls

④ 将 cat /etc/sysconfig/network-scripts/ifcfg-ens33 命令的当前用户的别名永久设置为 ens33
[root@localhost ~]# vim .bashrc
[root@localhost ~]# source .bashrc
	alias catens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
	
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# catens33
[root@localhost ~]# su m
[m@localhost root]$ catens33
bash: catens33: 未找到命令...
[m@localhost root]$ 



⑤ 删除当前用户永久别名catens33
[root@localhost ~]# vim .bashrc
	将 alias catens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33' 删除
[root@localhost ~]# source .bashrc
[root@localhost ~]# catens33
bash: catens33: 未找到命令...



④ 将 cat /etc/sysconfig/network-scripts/ifcfg-ens33 命令的所有用户的别名永久设置为 ens33
[root@localhost ~]# vim /etc/bashrc
	alias catens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@localhost ~]# source /etc/bashrc
[root@localhost ~]# catens33
[root@localhost ~]# su m
[m@localhost root]$ catens33



11. 硬链接与软链接
格式:
| 类型 | 命令格式 | 
|---|---|
| 硬链接 | ln 源文件路径 目标文件路径 | 
| 软连接 | ln -s 源文件或源目录路径 目标文件或目标目录路径 | 
(1)对比
| 对比项 | 硬链接 | 软链接 | 
|---|---|---|
| 本质 | 与原文件是同一个文件 | 不是同一个文件 | 
| inode号 | 相同 | 不同 | 
| 链接数 | 增删硬链接,链接数会改变 | 增删软链接,链接数不会改变 | 
| 支持文件类型 | 普通文件 | 普通文件和目录 | 
| 删除源文件 | 链接数减1,链接文件不受影响 | 无法访问链接文件 | 
| 链接文件类型 | 与源文件相同 | 与源文件无关 | 
| 文件大小 | 和源文件大小相同(都指向硬盘同一个地方) | 源文件路径的长度大小 | 
(2)实操
在 /data 目录中 创建 file1文件的硬链接 file1.1 到 dir1,创建 file1文件的软链接 file1.2 到 dir1
[root@localhost ~]# cd /data
[root@localhost data]# ln file1 dir1/file1.1
[root@localhost data]# ln -s file1 dir1/file1.2

12. find 查找文件
格式:
find [查找路径] [查找条件] [处理动作]
(1)查找类型说明
| 查找类型 | 关键字 | 说明 | 
|---|---|---|
| 按名称查找 | -name | 根据目标文件的名称查找(允许使用通配符 * 和 ?) | 
| 按文件大小查找 | -size | 根据目标文件所占用的空间大小来查找,小于用 - 表示,大于用 + 表示,单位 k(k是小写)、MB、GB | 
| 按文件的属主查找 | -user | 根据文件的拥有者查找 | 
| 按文件类型查找 | -type | 根据文件的类型查找,f 普通文件、d 目录、b 块设备、c 字符设备文件 | 
| 按inode号查找 | -inum | 根据文件的inode号查找 | 
| 按权限查找 | -perm | 按文件的权限查找,r 可读、w可写、x 可执行 | 
| 按时间查找 | -atime -mtime -ctime | 按最近访问时间 -atime 按最近更改时间 -mtime 按最近改变属性时间 -ctime | 
| 按最大深度查找 | -maxdepthlevel | 将文件分级,查找相应等级数以内的文件 | 
| 按最小搜索目录深度 | -mindepthlevel | 同上 | 
(2)实操
① 在 /data 目录下查找开头为 f 的文件
[root@localhost data]# find /data -name 'f*'

② 将 /data 目录下占用空间小于2kB的普通文件复制到/data/dir1目录下
[root@localhost data]# find /data -type f -size -2k -exec cp {} /data/dir1 \;

13. 查看硬件信息
(1)查看CPU信息
第一种:
[root@localhost ~]# lscpu

第二种:
[root@localhost ~]# cat /proc/cpuinfo
 #### (2)查看内存大小
#### (2)查看内存大小
第一种:
[root@localhost ~]# free -h

第二种:
[root@localhost ~]# cat /proc/meminfo
MemTotal:        2031888 kB
MemFree:         1372044 kB
MemAvailable:    1534364 kB
Buffers:            2116 kB
Cached:           285288 kB
SwapCached:            0 kB
Active:           244084 kB
Inactive:         246512 kB
Active(anon):     204068 kB
Inactive(anon):     8436 kB
Active(file):      40016 kB
Inactive(file):   238076 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4882428 kB
SwapFree:        4882428 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        203224 kB
Mapped:            89168 kB
Shmem:              9312 kB
Slab:              77720 kB
SReclaimable:      31964 kB
SUnreclaim:        45756 kB
KernelStack:        5584 kB
PageTables:        12932 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5898372 kB
Committed_AS:    1276648 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      183284 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:     47104 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       81792 kB
DirectMap2M:     2015232 kB
DirectMap1G:           0 kB
(3)查看磁盘分区情况
[root@localhost ~]# lsblk

(4)查看机器架构
[root@localhost ~]# arch

(5) 查看系统时间
格式:
date [选项]
| 选项 | 含义 | 
|---|---|
| -d | 表示几天前的时间,例 -d ’-1 day ‘ 表示一天前的时间、-d ’1 day‘ 表示一天后的时间 | 
| %F | 完整日期格式,%Y-%m-%d | 
| %T | 24小时制,hh:mm:ss | 
实操
① 显示时间
[root@localhost ~]# date

② 显示两天前和两天后时间
[root@localhost ~]# date -d '-2 day'
[root@localhost ~]# date -d '+2 day'

③ 只显示年月日
[root@localhost ~]# date +%F

④ 只显示24小时制时间
[root@localhost ~]# date +%T

 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号