linux 基础命令及详细解释

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.不能针对目录使用

软链接的特征

  1. 类似 Windows 快捷方式
  2. 软链接有自己的i节点 和存储block块,但是数据块中只保存原文件,文件中的文件名和 i 节点号,并没有实际的文件数据
  3. lrwxrwxrwx l软链接 (软链接的权限都为lrwxrwxrwx )
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

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 【搜索范围】【搜索条件】

  1. 搜索范围会比较大所以会有点慢
  2. find没有模糊搜索,你输入的什么它就搜索什么
  3. 要想如果想要进行模糊搜索需要使用通配符进行匹配

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

输入图片说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值