Linux

58 阅读3分钟

基础理论

程序-执行特定任务的一窜代码 shell-一个程序 内核-属于操作系统的一部分,调度硬件

Shell

shell:将人类使用的 高级语言 翻译成 01101100 交给 内核 ,内核再调度 硬件 Shell: 是一类 软件的总称 bash sh tsh linux默认shell程序是bash

Linux 我安装了一个命令 系统是怎么知道 他的位置的默认位置

Linux 执行命令过程 我执行 ls 命令 第一次 1先判断 他是内部命令 还是 外部命令
2如果是 内部命令 直接在bash中执行 3如果是外部命令,一个一个文件夹 找,找到 执行 找不到 报错

797479c5bde42b88254d0fbda04fb17.png 1先判断 他是别名,内部命令 还是 外部命令

2如果是 内部命令 直接在bash中执行

3.如果是外部命令 先看 hash 表 表中有 先找表 表中的路径找不到直接报错

4.表中没有 去找
/usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /root/bin

5.找到 执行 找不到 报错

man手册使用:

man命令

空格 一页一页 下翻

回车 一行一行 下翻

上下键也可以翻看

/ 查找

举例: /ls 查找 ls 字符 n 往下找 N 向上

Linux使用

tab 按一次 只有一个选项 补全 按两次 将所有结果展示给你

上下键: 查找之前打过的 命令

Ctrl +l 清屏

Ctrl + c 终止命令

Ctrl + a
从光标处跳动命令的最开头

Ctrl + e 从 光标处开始跳到 命令的 最末尾

Ctrl +u 从光标处 清空到 开头

Ctrl+k 从光标处 清空到末尾

Root 当前 登录用户

Localhost 当前机器的 主机名

~ 现在 你在哪个文件夹下

(# 代表超级管理员)

($ 普通用户)

Cd (change directory) 切换目录 Cd 加文件夹名称

Cd - 回到上一次的目录 只能上一次

Cd ~ 切换到 当前 用户的 家目录 家目录:对当前 用户 个性化设置的 文件夹(存放配置的文件) ~ 当前用户的家目录 root(超级管理员) 核普通用户的 家目录不一样 root家目录: 在 /root (根目录下有一个root 文件夹) 普通用户: 在 /home/和用户名同名的文件夹

绝对路径: 以根目录 开头的路径 相对路径: 不以根目录开头 / /路径的分隔符

每一个文件下都有 . ..

.代表自己文件夹 .. 自己的上一级目录(文件夹)

d代表目录

 -普通文件
 L 连接文件(快捷方式)
 b 块设备  硬盘
 S套接字     
 P  管道 文件
 C 字符文件

LS

a2bfe70a69fb50af15d66fd1045fc85.png ls -l 长格式显示 ,文件属性比较详细 ls -l 等于 ll

6ce563809e204dbbcb4fa6459ad3b84.png ls -a 显示所有文件 包括 隐藏文件 且 包括 . .. (在linux 当中已.开头的 为 隐藏文件 )

b288092fd2a1c9a677dcb50ff9bb22f.png ls -A 显示所有文件 包括 隐藏文件不包括 . ..

a601a16e8f453f96094e63742224895.png ls -d 只显示当前目录的属性

80229bb6b729c082eb40bbd172f8176.png ls -h 人性化显示(加了文件大小的单位)

1def4cbfadf74c4db37b3cc5add42b4.png ls -R 递归显示

(太多就不放图了)

ls --color 显示颜色

d227e9676b02d51e059186f6886038d.png ls -S 以文件容量大小排序

9ed9940e87dfcc7fd0eef950c9d0668.png ls -i 显示indoe号

a7118b3693ebd8b739ae55e55d86167.png

Ls 一般不单独使用

1. 功能有限 要加上选项
2. ls单独使用 显示当前文件夹下的所有文件(假如有1000w  直接ls显示会导致直接死机)

ls 会配合 通配符 去过滤需要的文件

通配符 (匹配文件名)
文本三剑客 grep sed awk ( find)

? 任意单个字符

  • 任意长度的任意字符

{1..10} 1到10 10个数 {1..100} {a..z}

[123] [123]只代表一个数值 1 2 3 [a-z] 注意范围 不包括 大Z

[0-9] 代表单个数字

[^a-c] 反向匹配

\ 显示原来的意思

举例 已A开头的文件 A*

已txt结尾   *.txt
别名

新建别名

alias 自定义命令='原始命令' 临时的

删除别名

unalias 自定义命令

alias 直接显示所有别名

命令执行的顺序

1 绝对路径下的执行程序

2 先看别名,如果有别名 直接执行

3 再区别是 内部 还是外部, 内部直接执行

4 外部 首先 看 hash 表 表中直接执行, 表中有 但是找不到 直接报错

5 没有hash 回去 $PATH 路径下的文件夹去找,找到执行 找不到直接报错 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

du (disk use)

统计文件占用磁盘大小 -a 每个文件单独显示 -s 只显示总大小

注意 -as 不能一起用

-d 1 --max-depth=1

--exclude=*.txt

mkdir

-p 递归建立文件夹 -v 显示建目录的过程

mkdir -pv /data/{11,22,33}/{aa,bb,cc}

image.png

touch

1.当文件不存在时 直接新建该文件,并且该文件是空文件

2.当文件存在,会刷新该文件的时间戳

如何使用:touch 文件名...

ln 软硬连接

软连接

ln -s 源文件绝对路径 放连接文件的地方

硬连接

ln 源文件绝对路径 放连接文件的地方

cp

cp 源文件/目录.... 目标文件/目录...

-i 提示覆盖同名文件

-f 强制覆盖不提示

-a 强力保留权限 基本所有

-p 只保留一部分

-u 选择掌握 差异备份

rm

rm -rf 文件或目录...... -r 递归删除 -f 强制删除

803064b5598fe628810b2cc647cf92f.png

4390e6a26809fae14c0f962cc170258.png

“文件删除不掉” 1.有其他用户正在使用

echo “ 1” > 大文件(用1覆盖大文件)

mv 移动或改名

mv 源文件 目标文件 如果路径一致改名 如果路径不一致移动

rename 选择掌握

locate

通过 数据库去找文件 速度较快 不即时

updatedb 慎用(电脑会卡 功能同上)

which 命令

find

-name 名字 查找 可以使用 通配符 " "

ee8b9d20d1914253fb57f9e725b2f78.png

-size 大小 范围 k M G 在没有 + — 写的越小越好

-user 根据 文件的主人

62e7f2e9adf4c3082f6b928a9ce64cc.png

-type 文件类型 -f 普通 -d 目录 -s 套接字 -l 连接 -p 管道 -c 字符 -b 块设备

-maxdepth 最大层次

-mindepth 最小层次

-mtime 时间 +3 第4天 到正无穷 -3 0-2 3 3

-nouser 无主用户 用户被删除

-inum inode号

-empty 空文件

处理动作

默认 是 print 不需要你输入的

-ls 长格式

-delete 删除

-ok 执行一次询问一次

-exec 直接移

lscpu 看cpu

free 看内存

df 看磁盘余量

arch 机器架构

cat /etc/redhat-release 系统版本

lsblk 硬盘详细信息