一、基础命令
详细学习各个命令的使用方法,请访问
https://www.linuxprobe.com/
echo、date、timedatectl、reboot、poweroff、wget、ps、pstree、top、nice、pidof、kill、ifconfig、uname、uptime、free、who、last、ping、tracepace、netstat、history、sosreport
-
快捷方式
Tab键:快速填充(两个tab可以显示以re开头的所有命令,一个tab可以填充命令)[root@linuxprobe ~]# re<Tab键><Tab键>
Ctrl+c:结束进程
Ctrl+d:键盘输入结束
Ctrl+l:清空当前终端中已有的内容(清屏) -
echo命令
在终端设备上输出字符串或变量提取后的值[root@linuxprobe ~]# echo LinuxProbe.com LinuxProbe.com [root@linuxprobe ~]# echo $SHELL /bin/bash
-
date命令
查看当前系统时间[root@linuxprobe ~]# date Sat Sep 5 09:13:45 CST 2020
按照年月日的格式
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S" 2020-09-05 09:14:35
设置系统的当前时间
[root@linuxprobe ~]# date -s "20201101 8:30:00" Sun Nov 1 08:30:00 CST 2020
查看今天是一年的第几天
[root@linuxprobe ~]# date "+%j" 306
-
timedatectl
设置系统的时间
-
reboot:重启系统(需要root权限)
-
poweroff:关闭系统
-
wget:下载网络文件
-
ps:查看系统中的进程状态(process)
-
pstree命令:以树状图的形式展示进程之间的关系,英文全称为“process tree”
-
top命令:动态地监视进程活动及系统负载等信息
-
nice命令:调整进程的优先级
[root@linuxprobe ~]# nice -n -20 bash
-
pidof命令:查询某个指定服务进程的PID号码值
-
kill命令:终止某个指定PID值的服务进程
-
ifconfig:获取网卡配置与网络状态等信息,英文全称为“interface config”
使用ifconfig命令查看网络状态信息时,需要重点查看的4项信息分别是什么?
答:这4项重要的信息分别是网卡名称、IP地址、网卡物理地址以及RX/TX的收发流量数据大小。 -
uname命令:查看系统内核版本与系统架构等信息
如果要查看当前系统版本的详细信息,则需要查看redhat-release文件[root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Ootpa)
-
uptime命令:用于查看系统的负载信息
它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分),负载值越低越好:[root@linuxprobe ~]# uptime 22:49:55 up 10 min, 1 users, load average: 0.01, 0.19, 0.18
top命令中包含了这些信息
-
free命令:用于显示当前系统中内存的使用量信息
-
who命令:用于查看当前登入主机的用户终端信息
-
last命令:用于调取主机的被访记录
-
ping命令:用于测试主机之间的网络连通性
-
tracepath命令:用于显示数据包到达目的主机时途中经过的所有路由信息
-
netstat命令:用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为“network status”
-
history命令:用于显示执行过的命令历史
-
sosreport命令:用于收集系统配置及架构信息并输出诊断文档
查找定位文件命令
pwd、cd、ls、tree、find、locate、which
-
pwd命令:显示用户当前所处的工作目录,英文全称为“print working directory”
-
cd命令:切换当前的工作路径,英文全称为“change directory”,语法格式为“cd [参数] [目录]”
-
ls命令:显示目录中的文件信息
ls命令的-a参数可以看到全部文件
-l参数可以查看文件的属性、大小等详细信息[root@linuxprobe ~]# ls -al total 48 dr-xr-x---. 15 root root 4096 Jul 24 06:33 . dr-xr-xr-x. 17 root root 224 Jul 21 05:04 ..
-
tree命令:以树状图的形式列出目录内容及结构
-
find命令:按照指定条件来查找文件所对应的位置,语法格式为“find [查找范围] 寻找条件”
-
locate命令:按照名称快速搜索文件所对应的位置,语法格式为“locate文件名称”
-
which命令:按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为“which命令名称”
文本文件编辑命令
cat、more、head、tail、tr、wc、stat、grep、cut、diff、uniq、sort
-
cat命令:查看纯文本文件(内容较少的),英文全称为“concatenate”,语法格式为“cat [参数] 文件名称”。(-n 参数 在查看文本内容时显示行号)
[root@linuxprobe ~]# cat -n initial-setup-ks.cfg 1 #version=RHEL8 2 # X Window System configuration information 3 xconfig --startxonboot 4 # License agreement
-
more命令:查看纯文本文件(内容较多的)
-
head命令:查看纯文本文件的前N行,语法格式为“head [参数] 文件名称”
[root@linuxprobe ~]# head -n 2 initial-setup-ks.cfg #version=RHEL8 # X Window System configuration information
-
tail命令:查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为“tail [参数] 文件名称”
-
tr命令:替换文本内容中的字符,英文全称为“transform”,语法格式为“tr [原始字符] [目标字符]”
把文本内容中的英文全部替换为大写
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
-
wc命令:统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语法格式为“wc [参数] 文件名称”
-
stat命令:查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为“stat文件名称”。
Linux系统中的文件包含3种时间状态,分别是Access Time(内容最后一次被访问的时间,简称为Atime),Modify Time(内容最后一次被修改的时间,简称为Mtime)以及Change Time(文件属性最后一次被修改的时间,简称为Ctime)。[root@linuxprobe ~]# stat anaconda-ks.cfg File: anaconda-ks.cfg Size: 1407 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 35321091 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2020-07-21 05:16:52.347279499 +0800 Modify: 2020-07-21 05:09:16.421009316 +0800 Change: 2020-07-21 05:09:16.421009316 +0800 Birth: -
-
grep命令:按行提取文本内容,是最广泛的文本搜索匹配工具
参数-n:用来显示行号
参数-v:反向选择–仅列出没有”关键词“的行
-
cut命令:按“列”提取文本内容,语法格式为“cut [参数] 文件名称”
-
diff命令:用于比较多个文件之间内容的差异,英文全称为“different”,语法格式为“diff [参数] 文件名称A 文件名称B”
diff --brief命令显示比较后的结果,判断文件是否相同:[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt Files diff_A.txt and diff_B.txt differ
-c参数:描述文件内容具体的不同
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt *** diff_A.txt 2020-08-30 18:07:45.230864626 +0800 --- diff_B.txt 2020-08-30 18:08:52.203860389 +0800 *************** *** 1,5 **** ! Welcome to linuxprobe.com Red Hat certified ! Free Linux Lessons Professional guidance Linux Course --- 1,7 ---- ! Welcome tooo linuxprobe.com ! Red Hat certified ! Free Linux LeSSonS ! ..... Professional guidance Linux Course
-
uniq命令:用于去除文本中连续的重复行,英文全称为“unique”
[root@linuxprobe ~]# uniq uniq.txt
-
sort命令:用于对文本内容进行再排序
[root@linuxprobe ~]# sort -u sort.txt Free Linux Lessons Linux Course Red Hat certified Welcome to linuxprobe.com
文件目录管理命令
touch、mkdir、cp、mv、rm、dd、file、tar
-
touch命令:用于创建空白文件或设置文件的时间,语法格式为“touch [参数] 文件名称”
[root@linuxprobe ~]# touch -d "2020-05-04 15:44" anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
-
mkdir命令:用于创建空白的目录,英文全称为“make directory”
创建单个空白目录[root@linuxprobe ~]# mkdir linuxprobe [root@linuxprobe ~]# cd linuxprobe
结合-p参数来递归创建出具有嵌套层叠关系的文件目录
[root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e
-
cp命令:用于复制文件或目录,英文全称为“copy”,语法格式为“cp [参数] 源文件名称 目标文件名称”
-
mv命令:用于剪切或重命名文件,英文全称为“move”
-
rm命令:用于删除文件或目录,英文全称为“remove”
-
dd命令:用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式为“dd if=参数值of=参数值count=参数值bs=参数值”
-
file命令:用于查看文件的类型
-
tar命令:用于对文件进行打包压缩或解压
二、管道符、重定向与环境变量
输入输出重定向
输入重定向:将文件作为命令的标准输入
输出重定向:把原本要输出到屏幕的数据信息写入到指定文件中
标准输出重定向和错误输出重定向的区别:
标准输出可将原本要输出到屏幕的信息写入到文件中,而错误的输出重定向则依然把信息输出到了屏幕上
[root@linuxprobe ~]# ls -l linuxprobe > /root/stderr.txt
[root@linuxprobe ~]# ls -l linuxprobe 2> /root/stderr.txt
-rw-r--r--. 1 root root 0 Mar 1 13:30 linuxprobe
管道命令符
作用:把前一个命令原本要输出到屏幕的信息当作后一个命令的标准输入
例:
把grep搜索命令的输出值传递给wc统计命令,即把原本要输出到屏幕的用户信息列表再交给wc命令作进一步的加工,因此只需要把管道符放到两条命令之间即可
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd | wc -l
40
命令行的通配符
例:
搜索/etc/目录中所有以.conf结尾的配置文件有哪些:
[root@linuxprobe ~]# ls -l /etc/*.conf
-rw-r--r--. 1 root root 55 Feb 1 2019 /etc/asound.conf
-rw-r--r--. 1 root root 25696 Dec 12 2018 /etc/brltty.conf
-rw-r--r--. 1 root root 1083 Apr 4 2018 /etc/chrony.conf
-rw-r--r--. 1 root root 1174 Aug 12 2018 /etc/dleyna-server-service.conf
-rw-r--r--. 1 root dnsmasq 26843 Aug 12 2018 /etc/dnsmasq.conf
-rw-r--r--. 1 root root 117 Jan 16 2019 /etc/dracut.conf
-rw-r--r--. 1 root root 20 Aug 12 2018 /etc/fprintd.conf
-rw-r--r--. 1 root root 38 Nov 16 2018 /etc/fuse.conf
常用的转义字符
例:
我们先定义一个名为PRICE的变量并赋值为5,然后输出以双引号括起来的字符串与变量信息:
[root@linuxprobe ~]# PRICE=5
[root@linuxprobe ~]# echo "Price is $PRICE"
Price is 5
希望能够输出“Price is $5”
[root@linuxprobe ~]# echo "Price is \$$PRICE"
Price is $5
重要的环境变量
命令在Linux中的执行分为4个步骤:
第1步:判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是绝对路径则直接执行,否则进入第2步继续判断。
第2步:Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
可以用alias命令来创建一个属于自己的命令别名,语法格式为“alias别名=命令”。若要取消一个命令别名,则是用unalias命令,语法格式为“unalias别名”。
第3步:Bash解释器判断用户输入的是内部命令还是外部命令。内部命令是解释器内部的指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令交由步骤4继续处理。可以使用“type命令名称”来判断用户输入的命令是内部命令还是外部命令:
[root@linuxprobe ~]# type echo
echo is a shell builtin
[root@linuxprobe ~]# type uptime
uptime is /usr/bin/uptime
第4步:系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫作PATH,可以简单地把它理解成是“解释器的小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖地在这些位置中逐个查找。
[root@linuxprobe ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin
三、Vim编辑器与Shell脚本
vim文本编辑器
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
四、遇到的问题
Linux中vim命令无法执行?
参考https://blog.csdn.net/weixin_45636641/article/details/108267025
将vim安装包下载一下