博客列表 > Linux基础命令及解释

Linux基础命令及解释

韦小宝的博客
韦小宝的博客 原创
2017年09月25日 21:07:18 927浏览

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 中的其他特殊符号级作用


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议