Shell的概念:也称作“壳”,充当的是人与内核(硬件)的翻译官。用户将一些命令“告诉“shell,他就会调用相应的程序服务执行工作。
Bash (Bourne-Again SHell):现在包括红帽系统在内的许多热门Linux系统主流默认字符。Bash作为大多数Linux系统的默认字符解释器。
Bash优势:
1、默认保存历史命令
2、命令仅需输入前几位就可以用tab键补全
3、强大的批处理脚本
4、实用的环境变量
Linux基本命令(参数区分大小写)
命令的组成:命令名称[命令参数][命令对象]
命令名称、命令参数、命令对象之间用空格键隔开。
命令参数:可以选用长格式(完整的选项名称)也可以选用短格式(单个字母的缩写),分别用“--”与”-“做前缀。
命令对象:一般只要处理的目标(普通文件/目录文件/用户等等)
1、执行命令与查看帮助
man:用于查看命令的具体可用参数与对象格式。
man -h:查询帮助选项(短格式)
man -help:查询帮助选型(长格式)
2、常用系统工作命令
echo:用于在终端显示字符串或者变量,格式:echo[字符串|变量]
echo 字符串:用于将字符串输出终端。
echo $SHELL:用于查看SHELL的值。
echo $HOSTNAME:用于查看本机主机名 (注意HOSTNAME是大写)
date:用于显示/设置系统的时间或者日期,格式为“date[选项][+指定格式]”
date:查看当前的系统时间
date “+%Y-%m-%d”:输出时间格式9999-99-99的当前时间格式。
注:如果不了解date的时间格式等信息,我们可以使用man date命令列出有关date的所有帮助信息。
reboot:用于重启系统(仅root用户可以使用),格式为:reboot
wget:用于使用命令行下载网络文件。格式:wget[参数]下载地址
elink:用于实现一个纯文本界面的浏览器,格式:elink[参数]网址
3、系统状态检测命令
ifconfig:用于获取网卡配置与网络状态等信息。格式:ifconfig[网络设备][参数]
ifconfig:查看本机当前的网卡配置与网络状态等信息。
uname:用于查看系统内核版本等信息,格式:uname -a
uptime:用于查看系统的负载情况。
watch-n uptime:每秒刷新一次获得当前的系统负载情况
free:用于显示当前系统中内存的使用情况。格式:free[-m/-g]
who:用于查看当前登入主机的用户情况。格式为:who[参数]
last:用于查看所有系统的登入记录。格式:last[参数]
history:用于显示历史执行过的命令,格式:history[-c]
历史命令会被保存到用户家目录中的“.bash_history”文件夹中。Linux系统以(.)开头的文件均代表隐藏文件,一般会是系统文件。
history-c:清空该用户在本机中执行过命令的历史记录。
history默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。
sosreport:用于收集系统系统配置并诊断信息后输出结论文档。常在系统出现故障时使用此命令。
4、工作目录切换命令
pwd:用于显示当前的工作目录。格式:pwd[选项]
cd:用于切换工作目录,格式:cd[目录名称]
cd/etc:切换进/etc目录
cd/bin:切换进bin目录
cd-:返回上级目录(即返回etc目录)
cd~:返回用户自己的家目录。
ls:用于查看目录中有哪些文件。格式:ls[选项][文件]
ls-al:查看当前目录下有哪些文件(长格式)
ls/etc:查看/etc目录中有哪些文件。
ls -ld/etc:查看/etc目录的权限与属性。
ls -ldh/ect:追加-h参数,以K/M/G为单位显示容量。
5、文本文件编辑命令
cat:用于查看纯文本文件(较短的),格式:cat[选项][文件]
cat 文件名:查看文本文件
more:用于查看纯文本文件(较长的),格式:more[选项]文件
more 文件名:查看文本文件
head:用于查看纯文本文档的前N行。格式:[选项][文件]
head -n 20 文件名:查看文本文档前20行。
tail:用于查看纯文本文档的后N行,格式:tail[选项][文件]
tail -n 20 文件名:查看文本文档的后20行。
od:用于对查看特殊格式的文件。格式为:od[选项][文件]
tr:用于转换文本文件中的字符,格式:tr[原始字符][目标字符]
cat tr.txt|tr[a-z][A-Z]:将tr.txt文件的内容转换成大写(中间的“|”符号叫管道命令符)
wc:用于统计文本的行数,字数,字节数,格式:wc[参数]文本
wc-|/etc/passwd:查看当前系统中的用户个数。
cut:用于通过列来提取文本字符,格式:cut[参数]文本
cut -d:-f1/etc/passwd:获取当前系统中所有用户的名称。
grep^root/etc/passwd:获取root用户的默认SHELL解释器。
diff:用于比较多的文本文件的差异,格式:diff[参数]文件
6、文件目录管理命令
touch:用于创建空白文件与修改文件时间。格式:touch[选项][文件]
touch test:创建一个名字为test的空白文档。
在Linux中的文件有三种文件(不包括权限的)
更改时间(mtime):内容修改时间(不包括权限的)
更改权限(ctime):更改权限与属性的时间
读取时间(atime):读取文件内容的时间
如果黑客执行了touch -d“2 days ago”test。便将访问与修改时间修改为了2天前。(伪造成自己没有动过该文件的假象)
mkdir:用于创建空白的文件夹,格式为:mkdir[选项]目录。
mkdir 文件夹名:创建文件夹
cp:用于复制文件或目录,格式:cp[选项]源文件 目标文件
复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称。(重命名)。
mv:用于移动文件或改名,格式为:mv[选项]文件名[目标路径|目标文件名]
rm:用于删除文件或目录,格式为:rm[选项]文件。
删除普通文件并提示确认信息:rm 文件名
删除普通文件或者目录文件,不提示:rm-rf 文件或目录名
dd:用于指定大小的拷贝的文件或指定转换文件,格式:dd[参数]
7、用于与组管理命令
useradd:用于创建新用户,格式为:useradd[选项]用户名
passwd:用于修改用户的密码,格式:passwd[选项][用户名]
passwd:用于修改当前用户的密码。
passwd 其他用户名:用于修改其他用户的密码。
userdel:用于删除用户所有表格。格式:userdel[选项]用户名
userdel -d 用户名:删除用户与家目录。
usermod:用于修改用户的属性,格式为:usermod[选项]用户名
groupadd:用于创建群组,格式:groupadd[选项]群组名
groupadd linuxprobe:创建名称为linuxprobe的用户群组。
8、打包压缩文件命令
tar:用于对文件打包压缩或解压,格式:tar[选项][文件]
tar-czvf 压缩包名.tar.gz文件名:打包并压缩文件。
tar-xzvf压缩名.tar.gz:解压并展开压缩包
9、文件查询搜索命令
grep:用于对文本进行搜索,格式:grep[选项][文件]
grep 关键词 文本文件:搜索某个关键词
find:用于查找文件,格式:[查找路径]查找条件 操作
注意:find命令非常灵活导致参数非常复杂,不要求记住。
对于常用搜索路径有几个窍门:
~:代表用户的家目录
.:代表当前目录
/:代表根目录