1、Shell和Bash
Shell:
Shell实现了用户和内核之间的通信,用户把一些命令告诉终端程序,它就会调用相应的程序服务去完成某些工作。
Bash:
现在主流的Linux系统默认使用的终端是Bash解释器。
即: Bash被包含于Shell。
2、执行命令的必备知识
-
man
命令
man
命令可以用于查询命令的使用手册(manual),这个命令非常常用,在接触到新的指令时可以尝试多看一看。
eg:man ls
可以查询ls
指令相关的介绍。 -
长格式与短格式
- 长格式(完整的选项名称)
eg:man --help
- 短格式(单个字母的缩写)
eg:man -h
说明:只有短格式和短格式可以合并,短格式与长格式和长格式与长格式都不能合并。
- 长格式(完整的选项名称)
-
4个常用的快捷键/组合键
Tab键
:自动补齐
eg:re<Tab><Tab>
可以显示出所有以re开头的命令,因为以re开头的命令不止一个
eg:reb<Tab>
可以自动补全为reboot
,以reb开头的命令只有reboot
一个Ctrl+C组合键
:终止当前的进程Ctrl+D组合键
:表示键盘输入结束Ctrl+L组合键
:表示清屏
3、常用系统工作命令
echo
命令
eg:echo Linux
终端屏幕显示Linux
eg:echo $SHELL
终端屏幕显示/bin/bash
date
命令
eg:date
输出对应的时间信息timedatectl
命令
eg:timedatectl status
输出系统时间与时区的方法reboot
命令
重启poweroff
命令
关机wget
命令
eg:wget 网址
下载网站上的文件ps
命令
英文全称“processes”
eg:ps -aux
显示所有进程的详细信息pstree
命令
英文全称“process tree”
eg:pstree
以树状图的形式展示进程的关系top
命令
eg:top
动态地监视进程活动及系统负载等信息nice
命令
eg:nice -n -20 bash
将bash的优先级调至最高。
进程优先级中,数字越低,优先级越高(取值范围-20~19)pidof
命令
eg:pidof sshd
输出本机上sshd服务程序的PIDkill
命令
eg:kill 2156
杀死PID号为2156的进程
eg:kill -9 2156
强制杀死PID号为2156的进程killall
命令
eg:killall httpd
httpd
服务程序有多个进程,使用killall
命令可以杀死该服务程序下的所有进程- 末尾添加
&
符号
在执行命令的末尾添加&
号可以让系统在后台运行。
4、系统状态检测命令
ifconfig
命令
英文全称“interface config”,译为“接口配置”
eg:ifconfig
查看本机当前的网卡配置与网络状态等信息。uname
命令
英文全称“unix name”
eg:uname -a
完整地查看当前系统的内核名称、主机名、内核方形版本、节点名、压制时间、硬件名称、处理器类型以及操作系统名称等信息。uptime
命令
eg:uptime
用于查看系统的负载信息。free
命令
eg:free -h
详细显示当前系统中内存的使用量情况。who
命令
eg:who
查看当前登入主机的用户终端信息。last
命令
eg:last
调取主机的被访记录ping
命令
eg:ping www.baidu.com
测试主机之间的网络连通性,该例中测试本机是否可以连通百度网tracepath
命令
eg:tracepath www.baidu.com
显示数据包到达目的主机时途中经过的所有路由信息。netstat
命令
英文全称“network status”
显示如网络连接、路由表、接口状态等网络相关信息
eg:netstat -i
本例可以显示网卡列表history
命令
显示执行过的历史命令
eg:history
显示执行过的历史命令
eg:cat ~/.bash_history
使用该命令同样可以显示执行过的历史命令
eg:history -c
清空当前用户在本机上执行的Linux命令记录信息sosreport
命令
eg:sosreport
收集系统配置及架构信息并输出诊断文档
5、查找文件定位命令
pwd
命令
英文全称“print working directory”
eg:pwd
显示用户当前所处的工作目录cd
命令
英文全称“change directory”
eg:cd ~
回到家目录
eg:cd -
回到上一次所处的目录
eg:cd ..
回到上一级目录
eg:cd /etc
切换到/etc
目录(绝对路径)
eg:cd ./dhcp
切换到当前目录下的dhcp
目录(相对路径)
eg:cd ../lib64
切换到上一级目录下的lib64
目录(相对路径)ls
命令
英文全称“list”
eg:ls
用于显示目录中的文件信息
eg:ls -a
用于显示目录中全部文件信息(包括隐藏文件)
eg:ls -l
查看文件的属性、大小等详细信息
eg:ls -ld
(参数-d:directory)
查看目录的属性、大小等详细信息tree
命令
eg:tree
以树状图的形式列出目录内容及结构find
命令
用于按照指定条件来查找文件所对应的位置
eg:find /etc -name "*host"
获取"etc
目录中所有以host
开头的文件列表
eg:find /etc -name "*host" -exec cp -a {} /root/findresults/ \;
获取"etc
目录中所有以host
开头的文件列表,并且将得到的文件复制到/root/findresults/
中。
Tips:重点解释一下参数-exec {} \
,类似于管道符命令,其中{}
表示find
命令搜索出的每一个文件,并且命令的结尾必须是\;
locate
命令
用于按照指定条件来查找文件所对应的位置,效率比find
命令高,但find
更准确。在第一次使用locate
命令之前,需要先执行updatedb
命令来生成索引数据库,这个库文件是/var/lib/mlocate/mlocate.db
eg:locate whereis
搜索出包含“whereis”名称的文件所在位置whereis
命令
eg:whereis ls
按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置which
命令
eg:which ls
按照名称快速搜索二进制程序(命令)所对应的位置(没有源文件和帮助文件)
6、文本文件编辑命令
cat
命令
英文全称“concatenate”
eg:cat text
查看内容较少的纯文本文件
eg:cat -n text
查看内容较少的纯文本文件,顺便显示行号more
命令
eg:more moc_mainwindow.cpp
查看内容较多的纯文本文件(有查看进度)head
命令
eg:head -n 10 moc_mainwindow.cpp
查看纯文本文件的前10行tail
命令
eg:tail -n 10 moc_mainwindow.cpp
查看纯文本文件的后10行
eg:tail -f moc_mainwindow.cpp
持续刷新一个文件的内容tr
命令
英文全称“transform”
语法格式:tr [原始字符] [目标字符]
常见使用方法:先使用cat
命令读取待处理的文本,然后通过管道符把这些文本内容传递给tr
命令进行替换操作即可。
eg:cat moc_mainwindow.cpp | tr [a-z] [A-Z]
将文本内容中的英文全部替换为大写wc
命令
eg:wc -l moc_mainwindow.cpp
查看文本文件的行数
eg:wc -w moc_mainwindow.cpp
查看文本文件的单词数
eg:wc -c moc_mainwindow.cpp
查看文本文件的字节数stat
命令
英文全称“status”
eg:stat moc_mainwindow.cpp
查看文件的3种时间状态信息:1、Access
:内容最后一次被访问的时间,简称Atime;2、Modify
:内容最后一次被修改的时间,简称Mtime;3、Change
:文件属性最后一次被修改的时间,简称Ctimegrep
命令
eg:grep /sbin/nologin /etc/passwd
按行提取文本内容,本例中在/etc/passwd
文件中提取/sbin/nologin
这个字段的内容。/etc/passwd
中保存着所有的用户信息,而一旦用户的终端系统被设置成/sbin/nologin
,则不再允许登录系统,因此本例可以查找出当前系统中不允许登录系统的所有用户的信息。
输出结果:
系统文件在保存用户数据信息时,每一项之间是采用冒号(:)为间隔符号的第一列内容root:x:0:0:root:/root:/bin/bash sync:x:4:65534:sync:/bin:/bin/sync
cut
命令
eg:cut -d : -f 1 /etc/passwd
其中:按列提取文本内容。-d
参数用来设置间隔符号,这里设置的是:
;-f
参数设置需要查看的列数,这里的设置是1
。本例便可提取出passwd文件中的用户信息,即提取以:
为间隔的第1
列内容。diff
命令
英文全称“different”
eg:diff --brief text1 text2
判断文件text1
和text2
是否相同
eg:diff -c text1 text2
描述文件text1
和text2
的不同之处uniq
命令
英文全称“unique”
eg:uniq text
使用cat
命令观察到文件内部的信息
使用I love you for many years I love you for many years I love you for many years I love you for many years I love you for many years But you don`t love me!
uniq
命令后输出的内容
本例是除去了文本中连续的重复行,但中间不能夹杂其他文本行I love you for many years But you don`t love me!
sort
命令
eg:sort fruit
使用cat
命令观察到文件内部的信息
使用banana pear apple orange raspaberry
sort
命令后输出的内容
本例是按照字母顺序进行排序apple banana orange pear raspaberry
eg:sort -u fruit
本例是按照字母顺序进行排序,并且去除了其中的重复行,这里不关注字段是否连续,注意以uniq
命令的差别。
eg:sort -n number
本例可以对number
文件的数字进行排序
eg:sort -t : -k 3 -n user
本例可以用-t
参数指定间隔符:
,用-k
参数指定列数3
,用-n
参数进行数字排序
7、文本目录管理命令
-
touch
命令
eg:touch text
创建空白文件,文件名称为touch
eg:touch -d "2023-03-01 9:00" text
更改文件的修改时间。在修改前和修改后可以通过命令ls -l
查看文件对应的修改时间。 -
mkdir
命令
eg:mkdir a
创建空白目录,目录名称为a
eg:mkdir -p /b/c/d/e
指令命令cd a
之后创建具有嵌套层叠关系的文件目录 -
cp
命令
eg:cp text1 text2
将text1
文件复制到text2
中
eg:cp -r ./a/b/c/ .
将目录c
中的所有内容复制到当前目录下,-r
参数表明递归持续复制,当前目录的结构为:. └── d └── e
-
mv
命令
eg:mv text1 text2
将文件text1
剪切,并粘贴给text2
,此时text1
会消失 -
rm
命令
eg:rm -rf a
强制删除目录a
,-r
参数指删除目录,-f
参数指强制 -
dd
命令
eg:dd if=/dev/zero of=560_file count=1 bs=560M
在文件/dev/zero
中取出1
个大小为560MB
的数据块,然后保存成名为560_file
的文件。 -
file
命令
eg:file text
用于查看文件text
的文件类型。 -
tar
命令
eg:tar czvf etc.tar.gz /etc
使用tar
命令把/etc
目录通过gzip
的格式进行打包压缩,并命名为etc.tar.gz
。其中,参数-c
表示创建压缩文件、-z
用gzip
压缩或解压、-v
显示压缩或解压的过程、-f
目标文件名
eg:tar xzvf etc.tar.gz -C /etc
使用tar
命令把压缩包etc.tar.gz
指定解压到/etc
目录中。其中,参数-x
表示解开压缩文件、-z
用gzip
压缩或解压、-v
显示压缩或解压的过程、-f
目标文件名、-C
指定解压到的目录。