一、目录结构(树状的目录结构,最底层为根目录/):
bin:存放命令,普通用户命令
sbin:、、、、,管理员命令
usr(user):放用户数据的(编译安装的软件,用户的软件源码,等等,相当于是一个用户的根)
dev(device):设备目录(linux下有一句话可以这样说,任何设备都是文件)
root:超级管理员的家目录
home:其它普通用户的家目录
tmp(temporary):临时目录,存放很多软件运行的一些临时文件(此目录建议新手不要去做任何的操作)
boot:存放开机启动有关的一些文件
etc:大部分的软件的配置文件都会存放在这
proc: 这两个是伪文件系统,记录系统动态的一些信息
(当前系统的各种状态:
比如
cat /proc/cpuinfo查看cpu相关的信息;
cat /proc/cpuinfo |grep -E "vmx|svm"查看cpu是否支持vmx或svm指令集)
var:一个比较综合的目录,存放了日志,pid文件,邮件等
mnt
media
misc 三个空目录,一般用于挂载用的
------------------------------------------------------------------------------------------------------
二、命令的讲解
(1)ls
1.ls -l或ll 详细列表形式进行查看
ls -dl或ll -d 查看权限
2.ls -a 查看隐藏文件
特别的:# which ls ---->查看ls命令路径和适用于别名情况
which是于查看某个命令或文件的绝对路径的
文件类型:
# ls -l /etc/fstab
-rw-r--r-- 1 root root 1077 Jun 7 17:34 /etc/fstab
- 普通文件
d 目录
p pipe管道文件
s socket文件(socket是一种程序的连接方式)
l 链接文件(symbolic link,符号链接,软链接;类似windows的快捷方式)
b block块设备文件
c character字符型设备文件
(2)alias 取别名 (最常见的用法是用于改变颜色)
alias ls = 'ls -d --color=auto'
(3)查看文件的相关命令:cat head tail more less tac rev
# cat /etc/inittab --查看文件所有内容
# head /etc/inittab --查看文件前十行内容
# head -3 /etc/inittab --指定查看文件的前三行
# tail /etc/inittab --查看文件后十行内容
# head -3 /etc/inittab --指定查看文件的前三行
# tail -3 /etc/inittab --指定查看文件的后三行
# tail -f /var/log/messages --动态监控文件的末尾(/var/log/message日志文件是系统最常见的日志文件,会记录系统大部分的通知或错误信息)
(常用于监控日志文件,因为日志文件都是从上往下记录,并且是变化的。那么动态监控文件末尾其实就是随时可以看到日志最近的变化)
# more /etc/rc.sysinit --回车向下移一行,空格向下移一页,q键退出
# less /etc/rc.sysinit --向上向下箭头可以移,page up 和page down键移页,q键退出
(4)文件操作的相关命令: cd pwd mkdir touch cp mv rm
1.cd 切换目录命令
cd ~ 或 cd --切换到当前用户家目录
cd - --切换到上一次的目录
. 代表当前目录
.. 代表上级目录
2.pwd 查看文件的相关路径
3.touch:创建一个文件
同时创建多个文件的办法:
touch a b c
touch {1..10}
4.cp 拷贝命令
cp 源 目标
对比下面这两条的区别更名为
# cp /etc/fstab /test:拷贝到根目录下并更名为test
# cp /etc/fstab /test/:拷贝到根目录下的test文件下
5.mv:剪切和粘贴命令
6.rm 删除命令
(5)管道:(将前面的输出结果传给后面)
# stat file1 | tail -3--查看stat file1命令的结果的后三行
# tail -5 /etc/passwd |head -1--查看此文件的倒数第五行
# head -5 /etc/passwd |tail -1 --查看此文件的正数第五行
# cat /etc/passwd |wc -l --统计此文件有多少行
# cat /etc/passwd |grep root |wc -l --统计此文件里有root关键字的行数
# cd /etc
# grep root * --表示在当前目录的所有文件里查找有root关键字的行
# grep root * |cut -d":" -f1 |sort|uniq -c |sort -n -r * 表示全局
(6)重定向
0 标准输入----- 终端 --------标准输出 1
|
|
错误输出
2
标准输入:指你键盘的输入,或者敲的命令
标准输出:指结果里正确的输出,可以用> 或者 1> 来重定向
错误输出:指结果里错误的输出,可以用 2> 来重定向
&>表示错误和正确一起重定向
总结几个发邮件的方式:
(1)mail -s(subject) "文件主题" 接收人
正文
.----->表示结束
(2)echo 邮件正文 | mail -s "邮件主题" root
实验1:手动交互式发邮件
# /etc/init.d/postfix restart --启动postfix邮件服务器(如果没有此服务文件,则yum install postfix安装就可以)
# echo > /var/mail/root --清空root用户的邮箱(这里就是把echo得到的空行,重定向到后面的文件,覆盖后面文件的内容)
# mail -s "哈哈" root --这里表示用本机root用户给本机root用户发一封邮件,主题为哈哈
你好 --正文内容为你好
. --.号表示结束
EOT
实验2:利用重定向或管道非交互发邮件
# mail -s "邮件主题" root < mail.txt --把mail.txt里的内容做为邮件正文重定向给这封邮件发给root用户
# echo 邮件正文 | mail -s "邮件主题" root --用管道的用法来实现发邮件
# cat /var/mail/root--查看是否收到了此邮件
实验3:覆盖与追加
# echo abc > 123.txt --如果123.txt不存在,则创建123.txt,并内容修改为abc;如果123.txt文件存在,则只把原内容修改为abc
# echo cba >> 123.txt --两个>符号,就是原内容不变,再追加新的内容
# cat > 123.txt << EOF --如果123.txt不存在,则创建它,并加入两行内容111 222;存在则覆盖它原来的内容
111
222
EOF
# cat >> 123.txt << HAHA --相比于上一条,这是追加内容,而且标记不一定要用EOF,只要前后一致成对出现就可以
> 333
> 444
> HAHA
------------------------------------------------------------------------