Linux基础命令(待更新)
一、什么是命令?
用来实现某一功能的指令或程序,在Linux中,命令的执行依赖于解释器shell,shell和咱们敲的这些命令都是一样的,都是运行在linux内核之上的应用程序,在内核的眼里都是内核要调度执行的进程。这些进程在运行之前,都是一个一个的可执行文件。只是shell是在linux启动之后就会由init进程自动加载执行的。他也对应着一个可执行文件。可以通过查看/etc/passwd
文件中每条记录的最后一个字段查看每个用户在启动后执行的shell可执行文件路径,也可以通过SHELL环境变量查看当前启动的shell。echo $SHELL
我们在命令行下敲命令的时候,shell会根据用户敲的命令名字,在环境变量PATH指定的路径下寻找和命令名字匹配的一个可执行文件,找到后shell会创建一个子进程,在子进程中加载并执行该可执行文件。所以我们平时敲的大部分命令都是一个已经存在的可执行文件,那么这个可执行文件放在哪里呢,通过whereis
就可以看到命令所对应的可执行文件的路径了,例如要看看ls这个命令在哪里,就执行 whereis ls就可以看到ls的路径了。如果你把这个文件删掉,那么shell就会告诉你找不到这条命令。咱们平时敲的命令主要分为两种,一种是以可执行文件存在的外部命令,一种是没有可执行文件的内置命令。这里的外部和内置是从shell的角度说的。那么怎么判断一条命令是shell内置命令还是外部命令呢,用type查看就可以了,比如查看cd,在命令行下敲type cd,shell的输出是cd is a shell builtin
,那么cd就是一条shell内置命令。
二、命令的一般格式
命令 [选项] 参数1 参数2…
- 选项又分长选项和短选项,有些选项还带参数
- 参数1 参数2 是命令的参数,不是选项的参数
- 有些命令或二进制程序还带有子命令
-
在选项部分,有时候是
-
,有时候是--
,-
是短选项,就是短小参数,通常包含一个连字号和一个大小写字母,如-s
-h
等,--
就是长选项,就是包含两个连字号和一些大小写字母组成,如--size
,--help
等。 -
因为选项可以合并,如
-sh
,为了区分sh是一个选项还是两个选项s和h的组合。对于组合用单连字符-
,如果是单一选项sh则要用双连字符--
。如--sh
表明sh是单一的选项,不是s和h的组合。 -
一个命令中可能存在二者可以相互替换的长选项与短选项,如
-a
和--append
-
选项前面除了有-和--外,还可以有
+
,例如date +%Y/%m/%d
等 -
对于一些命令,单双字符规则并不适用,例如
find -name -fstype
三、查看及切换目录
ls —— 用途:查看目录和文件属性及目录下内容
格式:ls [选项] 目录或文件名…
[root@rhel8 opt]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1080 3月 24 18:50 /etc/passwd
常用选项:
-l 以长格式显示目录下的内容列表及详细属性。
-d 仅显示目录本身,而不显示目录下的内容列表
-t 用文件和目录的更改时间排序
-a 显示所有目录文件,包括隐藏的内容
-h 人性化显示目录下内容的大小(kB、MB、GB)
-R 递归查看目录下所有内容
四、查看文件内容
查看文件内容
cat —— 用途:查看文本文件内容
命令行一般格式:cat 选项 文件…
[root@rhel8 ~]# cat -n /etc/profile
[root@rhel8 ~]# cat -b /etc/profile
常用选项
-n 查看时以行号的形式显示文件内容
-b 查看时以行号的形式显示文件内容,对空行不编号
五、查看系统及内核版本
查看红帽系统版本信息
[root@rhel8 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)
查看内核版本信息
[root@rhel8 ~]# uname -r
4.18.0-80.el8.x86_64
六、查看CPU信息
Architecture: x86_64 # 架构 32位处理器/64位处理器
CPU op-mode(s): 32-bit, 64-bit # CPU 运行模式
Byte Order: Little Endian # 字节序:小端法
CPU(s): 2 # CPU 数量
On-line CPU(s) list: 0,1 # 在线的cpu数量 有些时候为了省电或者过热,某些CPU会停止运行
Thread(s) per core: 2 # 每个核心的线程数
Core(s) per socket: 1 # 每个插槽上有几个核心
Socket(s): 1 # #服务器面板上cpu槽位数量
NUMA node(s): 1 # NUMA数量
Vendor ID: GenuineIntel # 厂商 ID
CPU family: 6 # CPU 系列
Model: 85 # 型号
Model name: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz # 型号名称
Stepping: 7 # 步进
CPU MHz: 2500.002
BogoMIPS: 5000.00
Hypervisor vendor: KVM # 超管理器厂商
Virtualization type: full # 虚拟化类型
L1d cache: 32K # L1d 缓存
L1i cache: 32K # L1i 缓存
L2 cache: 1024K # L2 缓存
L3 cache: 36608K # L3 缓存
NUMA node0 CPU(s): 0,1 # NUMA 节点0 CPU
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat avx512_vnni
七、查看内存大小及空闲情况
[root@rhel8 ~]# free –h 或 [root@rhel8 ~]# cat /proc/meminfo 内存中的文件
total used free shared buff/cache available
Mem: 1.8Gi 659Mi 644Mi 9.0Mi 502Mi 981Mi
Swap: 2.0Gi 0B 2.0Gi
ls /proc/meminfo -l
-r--r--r--. 1 root root 0 12月 23 11:44 /proc/meminfo 表示不占用磁盘空间
八、查看主机名及网卡信息
查看主机名
[root@rhel8 ~]# hostname
rhel8
查看网卡信息
[root@rhel8 ~]# ifconfig
九、创建目录
创建目录格式
mkdir 命令格式 mkdir 【选项】【目录名】
命令选项:
-p 递归创建多个目录
-m 创建目录时并设置目录权限
[root@rhel8 ~]# mkdir /test/
[root@rhel8 ~]# mkdir -p /test/t1/t2/t3/
[root@rhel8 ~]# ls -R /test/
[root@rhel8 ~]# mkdir -m ugo=rwx /xxoo/
[root@rhel8 ~]# ls -ld /xxoo/
drwxrwxrwx. 2 root root 6 3月 24 22:35 /xxoo/
十、创建文件
创建文件格式
touch 用途:新建空白文件
格式1:touch [目录]文件名
[root@rhel8 ~]# touch /test/test.txt
[root@rhel8 ~]# ls /test/
t1 test.txt
格式2:touch 文件名
[root@rhel8 ~]# touch 1.txt
[root@rhel8 ~]# ls
1.txt anaconda-ks.cfg
十一、less分屏阅读工具
less 工具是对文件或其它输出进行分页显示的工具,常用于查看内容量较大的文件
命令格式:
less [参数] 文件
命令常用参数:-N 显示每行的行号
[root@rhel8 test]# less -N /var/log/messages
查看选项参数
键盘上下键逐行查看
/字符串:从上向下搜索“字符串”的功能,配合n、N使用
?字符串:从下向上搜索“字符串”的功能,配合n、N使用
pgdn 向下翻动一页
pgup 向上翻动一页
q 退出
十二、head与tail
head命令
head 用来显示文件的开头至标准输出中,默认head命令打印其相应文件的开头10行
常用参数
-n<行数> 指定显示的行数
[root@rhel8 ]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
tail命令
tail 用来显示文件的末尾至标准输出中,默认tail命令打印其相应文件的末尾10行
常用参数
-n<行数> 显示的行数
-f 动态显示
[root@rhel8 ~]# tail -n 2 -f /var/log/messages
Mar 25 00:11:21 Chinese dnf[17239]:
Mar 25 00:11:21 Chinese systemd[1]: Started dnf makecache
十三、grep文件过滤工具
grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能利用正则表达式搜索文本,并把匹配的行打印出来,用于查找文件里符合条件的字符串。
命令格式:grep [选项] “查找条件” 目标文件
常用选项
-v 显示不包含匹配文本的所有行
-i 忽略字符大小写的差别
-n 标示出该行的列数编号
[root@rhel8 bin]# grep "root" /etc/passwd
[root@rhel8 bin]# grep -n "root" /etc/passwd
[root@rhel8 bin]# grep -i "ROOT" /etc/passwd
[root@rhel8 bin]# grep -v "root" /etc/passwd
十四、关机和重启
linux下常用的关机命令有:
shutdown( 安全的将系统关机 root用户使用)、
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
halt(shutdown –h)、
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
poweroff、
poweroff 发送指示系统断电的ACPI信号。
poweroff 指令也是类似的状态,它也允许你不管系统的状态,直接把电脑的电源切断
init
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制
1、halt 立刻关机
halt 其实跟 shutdown 沒多大分別,只不过 shutdown 在关机时会把系统的服务都关闭之后,才关闭电脑,而 halt 指令则允许不管系统的状态怎么样,直接停止电脑的运作
2、poweroff 立刻关机
3、shutdown –h now 立刻关机
4、shutdown -c 取消关机操作
5.、shutdown -h 10 10分钟后自动关机
重启命令:reboot shutdown
1、reboot 立刻重启
2、shutdown -r now 立刻重启
3、shutdown -r 10 过十分钟后重启
在执行关机之前,执行一下sync命令。
sync 将磁盘缓冲区的数据同步到硬盘中,以免数据丢失。在关机重启前都要执行。
十五、mount挂载
- 什么是挂载?
将镜像、光盘、分区等设备以挂载的方式存放在某个 目录下,可以通过命令访问该目录来操作这些设备
命令格式:mount 设备路径 挂载点目录 划分分区 格式化 ntfs 盘符
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected,
mounted read-only.
[root@localhost ~]# ll /mnt
总用量 48
dr-xr-xr-x 4 root root 2048 4月 4 2019
AppStream
dr-xr-xr-x 4 root root 2048 4月 4 2019
BaseOS
dr-xr-xr-x 3 root root 2048 4月 4 2019 EFI
-r--r--r-- 1 root root 8266 3月 1 2019 EULA
-r--r--r-- 1 root root 1455 4月 4 2019
extra_files.json
-r--r--r-- 1 root root 18092 3月 1 2019 GPL
dr-xr-xr-x 3 root root 2048 4月 4 2019
images
dr-xr-xr-x 2 root root 2048 4月 4 2019
isolinux
-r--r--r-- 1 root root 103 4月 4 2019
media.repo
-r--r--r-- 1 root root 1669 3月 1 2019 RPMGPG-KEY-redhat-beta
-r--r--r-- 1 root root 5134 3月 1 2019 RPMGPG-KEY-redhat-release
-r--r--r-- 1 root root 1796 4月 4 2019
TRANS.TBL
- umount 卸载
卸载以挂载的设备
命令格式:umount 挂载点目录
[root@localhost ~]# umount /mnt
[root@localhost ~]# ll /mnt
总用量 0
drwxr-xr-x. 2 root root 6 12月 18 20:59 hgfs
如有错误,还请斧正!