linux 必须遵守的规则
linux中一切内容都是文件形式保存
linux严格区分大小写
linux不靠扩展名来区分文件类型,它是靠权限来区分的,以下文件类型只是为了让管理员好区分
压缩包:".gz"、 ".bz2"、 ".tgz" 等
二进制软件包:".rpm"
网页文件:".html"、 ".php"
脚本文件:".sh"
配置文件:".conf"
分区规则不可改变
主分区:只能有4个
扩展分区:最多只能有一个,主分区加扩转分区一共只能有四个,不能写入数据只能包含逻辑分区
逻辑分区
对Linux来说,写入文件系统主要干了两件事
第一:把整个分区分成等大小的数据块;
第二:在分区列表中建立了一个二维表格,里面记录了每个文件的ID、修改时间、权限、文件保存位置。
硬件设备文件名
第一个斜杠表示根目录,dev表示存放的是硬件设备文件 dev后面的表示设备名
hd:代表IDE类型接口 /sd:代表SCSI和SAST类型接口
硬件 | 设备文件名
IDE硬盘 /dev/hd[a-d]
USB硬盘 /dev/sd[a-d]
分区:把大硬盘分为小的逻辑分区
格式化:写入文件系统
分区设备文件名:给每个分区定义设备文件名
挂载:给每个分区分配挂载点
1.逻辑分区一定是从5开始,1,2,3,4是留给主分区使用的,即使没有分,逻辑分区也无法使用
linux命令格式
命令 【选项】【参数】
例如
//查看 依kM形式的 root下的文件
ls -h /root
ls最长用的查看命令
ls 【选项】【文件或目录】
选择:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小(依k、M形式, 一般都和 -l 配合用例如 ls -lh /root)
-i 显示爱节点
文件类型
-rw-r--r--. 1 root root 28232 9月 17 23:10 install.log
-rw-r--r-- //这个为权限一般都是十位
第一位
代表文件
d 代表目录
l 代表软链接文件
剩下九位 三位为一组
第一组为所有者 u 权限最大
第二组为所属组 g 权限第二
第三组为其他人 o 权限最小
r 读
w 写
x 执行
权限后面的
. 代表ACL权限
1 代表 引用计数
第一个 root 代表所有者
第二个 root 代表所属组
例如 28232是文件大小 单位是字节
时间是 最后一次修改的时间
install.log 为文件名
mkdir 创建目录
mkdir 【选项】【目录】
p 递归创建:一步一步创建
cd 切换目录命令
cd 【目录】
简化操作
cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上级目录
cd . 进入当前目录
绝对路径
访问http://www.imooc.com/u/2899747/notebook 查看
pwd 显示当前所在位置
rm 删除文件命令
rm 【文件】
rm只能删除文件,要想删除文件夹需要加上选项
-r 可以删目录
-f 可以强制删除
-rf 强制删除文件夹或文件都可以
cp 复制命令
cp 【选项】【原文件或目录】【目标目录】
-r 复制目录
-p 连文件属性一起复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于 -pdr
mv 剪切或改名命令
mv 【源文件或目录】【目标目录】
_ 源文件目录和目标目录在同一个文件下就是改名,不在就是剪切 mv 没有选择项_
根目录下的常用目录及解释
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot启动目录,启动相关的文件(开机启动)
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/misc 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/usr 系统软件资源目录 /usr/bin/系统命令(普通用户可用) /usr/sbin/系统命令(超级用户可用)
/var 系统相关文档内容
根目录下的bin目录和usr下的bin目录保存的命令所有人都可以执行包括普通用户
sbin目录usr下的sbin目录保存的只有root超级用户才可以执行的命令
更多目录解释可以在网上搜索linux 根目录下各文件夹的作用 或到笔记查看http://www.imooc.com/u/2899747/notebook
ln 链接命令
ls -s 【原文件】【目标文件】
-s 创建软链接 不加 -s 就是创建硬链接
软链接相当于快捷方式 ,硬链接相当于两个完全一样的文件
硬链接的特征
1.和原文件拥有同样的i节点 和存储block块,可以看做是同一个文件
2.可以通过 i 节点识别
3.不能跨分区
4.不能针对目录使用
软链接的特征
类似 Windows 快捷方式
软链接有自己的i节点 和存储block块,但是数据块中只保存原文件,文件中的文件名和 i 节点号,并没有实际的文件数据
lrwxrwxrwx l软链接 (软链接的权限都为lrwxrwxrwx )
修改任意文件,另一个都改变
删除原文件,软链接不能使用
locate 搜索命令
locate 文件名
文件搜索命令 它只在后台数据库里进行搜索
只能搜索文件名不能搜索复杂的
updatedb 强制更新数据库命令
updatedb.conf 配置文件 locate 会遵守上面配置的规则 查看updatedb.conf配置文件的配置详细http://www.imooc.com/u/2899747/notebook
whereis 搜索命令的命令
whereis 【选项】(可有可无) 命令名
它只能查系统的命令,不能查自己创建的命令
-b 只查找可执行的文件
-m 只查找帮助文件
which 搜索命令和 whereis 类似
但是which 可以找到 文件的别名 而whereis不可以
PATH环境变量
执行的命令都是通过它来找的
whereis 和 which 都是靠 变量 PATH环境变量找的
find 搜索命令
find 【搜索范围】【搜索条件】
搜索范围会比较大所以会有点慢
find没有模糊搜索,你输入的什么它就搜索什么
要想如果想要进行模糊搜索需要使用通配符进行匹配
linux中的通配符
匹配任意的内容,使用时注意加上双引号
? 匹配任意的一个字符
[] 匹配任意一个括号内的字符
find 的特殊搜索
find /root -iname install.log
不区分大小写搜索
find /root -name install.log
按照文件名查找
find /root -user root
按照所有者搜索
find /root -nouser
查找没有所有者的文件
find 查询指定时间范围内 操作过的文件
find 【目录】【操作类型】【时间范围】
时间范围
-10 代表十天内
10 代表第十天的那24小时
+10 代表十天前
操作类型
atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容
find 根据文件大小或文件 I 节点查询文件
find / -size 25k
按照文件大小搜索
-25k 小于25k的文件
25k 等于25k的文件
+25k 大于25k的文件
find / -inum 262422
按照节点搜索文件
find / -size +20k -a -size -50k -exec ls -lh {} \;
查找跟目录下 大于20k小于50k的文件,并显示详细信息
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
-exec 【命令】{} ; 对搜索结果执行操作
last 查询当前登陆和过去登陆的用户信息
last last 命令默认是读取/var/log/wtmp文件数据
命令输出
用户名
登陆终端
登陆ip
登陆时间
退出时间(在线时间)
lastlog 查询所有用户最后一次登陆时间
lastlog lastlog 命令默认是读取/var/log/lastlog
命令输出
用户名
登陆终端
登陆ip
最后一次登陆时间
Shell是什么?
Shell 是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面 系统级程序,用户可以用Shell来启动、挂起、停止 甚至是编写一些程序。
Shell 还是一个功能相当强大的编程语音、易编写、易调试、灵活性较强。Shell 是解释 执行的脚本语言,在Shell中可以直接调用linux系统命令。
Shell 也就相当于内核和用户之间的翻译关,内核只能读懂二进制的命令,返回的也是二进制 的结果,而shell会把二进制转成用户可以看的懂的abc。shell可对内核返回结果翻译,还可对用户 输入命令翻译。
更多关于shell的知识网上可以看
echo 输出命令
echo【选项】【输出内容】
选项
-e:支持反斜线控制的字符转换
输出内容可加反斜线转换字符
\a 输出警告音
\b 退格键,也就是向左删除键
\n 换行符
\r 回车键
\t 制表符,也就是tab键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制数
\xhh 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数 ASCII码表http://www.asciima.com/
例如
echo -e "这是一个\a例例\b子\n,一个用了反\r斜线\v转换字符的例子"
echo -e 还可以输出带颜色的内容
echo -e "\e[1;31m 这里是内容 \e[0m"
\e[1; 为颜色开始符
\e[0m 为颜色结束符
输出颜色
30m = 黑色
31m = 红色
32m = 绿色
33m = ***
34m = 蓝色
35m = 洋红
36m = 青色
37m = 白色
例如
echo -e "\e[1;33m 这里就是带色的内容了 \e[0m"
写十六进制的字符
写十六进制的字符时前要加\x 十六进制字符
例如
echo -e "\x68\x65"
按照十六进制ASCII码也同样可以输出
这里最重要的,写脚本
vim【脚本名】
脚本开头要写 #!/bin/bash 声明脚本的运行位置
下面就可以大胆的写内容了
一个脚本写完,要赋予执行权限
然后就可以执行脚本了
例如
写一个脚本hello.sh
vim hello.sh
这里是脚本内容
#!/bin/bash
echo 1;
按ESC后
:wq 保存退出
赋予执行权限
chmod 755 hello.sh
755解析
7是拥有者的权限,
5是所属组的权限
5是其他的权限
r读(4) w写(2) x执行(1)
运行的方式有两种
1. ./hello.sh
2. bash hello.sh
alias 查看和设定别名
alias 查看系统中的所有的别名
alias 别名='原别名' 设定命令别名
unalias 别名 删除别名
这样设置的别名在重启后就会自动失效了
设置永久生效的别名 和 删除别名
vi ~/.bashrc 把要设置的别名写入环境变量配置文件即可永久生效,除非删除
source .bashrc 从新运行一下这个文件,让刚写入的别名立即生效
查看命令生效顺序http://www.imooc.com/u/2899747/notebook
查看历史命令
history【选项】【历史命令保存文件】
选项
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
修改历史命令的条数
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改
标准输入输出
输出重定向
把执行命令的结果写入到文件里
正确和错误输出同时保存写入文件
输入重定向
wc【选项】【文件名】
选项
-c 统计字节数
-w 统计单词数
-l 统计行数
例如
wc //wc后面不跟选项等于全选 不跟文件名等于统计下面写的,
abc
abc abc
aaa
行数 3 单词数 4 字节数 12
wc < 【文件名】
统计文件信息
输入重定向并不常用,了解即可
多命令顺序执行
管道符
【命令1】|【命令2】
命令1的正确输出结果作为命令2的操作对象
如果前面的命令发生错误,后面的操作也不能执行
例如
ls -l/etc | more
ls 的结果交给more分页显示
more 分页查看文件内容
more【文件名】 分页查看文件内容
netstat -an 查看linux系统中所有的连接
netstat -an 上面一半是本地网络端口的访问情况 网络端口里有一个ESTABLISHED就代表有一个用户在链接这个服务器 下面一半是本地网络程序的访问情况网络程序并不常用
例如
netstat -an | grep ESTABLISHED
查看linux系统中所有的连接 grep 查询文件中含有 ESTABLISHED 行 有几行就代表几个用户在链接服务器
netstat -an | grep ESTABLISHED | wc -l
wc -l 统计行数
结果显示1就代表有一个用户在链接服务器
详细的看http://www.imooc.com/u/2899747/notebook
通配符的扩展
bash 中的其他特殊符号级作用