8-23 Bash特性学习

8-23 linux文件管理常用命令和Bash特性

一、Linux目录配置标准和文件类型

1、Linux 目录配置标准FHS(Filesystem Hierarchy Standard)

FHS:

/boot: 引导文件存放目录,例如kernel(vmlinuz)、bootloader(grub, grub2);

/bin: binary,供用户使用的基本的命令;OS启动即会用到程序;

/sbin:管理类的基本命令;

/lib: 基本共享库;内核模块;

/lib64:x86_64系统的共享库;

/etc:配置文件目录;

/home/USERNAME: 普通用主目录的默认位置;

/root: 管理员的主目录;

/media:便携式移动设备;

/mnt:临时文件系统挂载点;

/opt: 可选目录,第三方应用程序的默认安装位置;

/dev:devices,设备文件

b:block devices,random access

c: character deivces,linear access

/proc:

伪文件系统;用于输出内核与进程的相关信息;

/sys:

伪文件系统;

/srv:services,系统上运行服务用到中间数据;

/tmp:临时文件目录;

/usr:Universal Shared, Read-only data;

bin:保证系统提供基本功能;

sbin

lib

lib64

include: C程序的头文件;header files

share:结构化的独立数据

doc, man

local:现在常用的第三方程序的安装位置;

bin

sbin

lib

lib64

etc

share

/var:variable data files

cache:应用程序缓存数据

lib:应用程序的状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据;

lock:锁文件

log:日志文件

opt:专用于/opt

spool:应用程序的数据池;

run:运行中的进程的相关数据;通常用守护进程的pid文件;

/selinux

2、Linux的文件类型:

-(f):普通文件

d: 目录文件

b: 块设备文件

c: 字符设备文件

l: 符号链接文件

p: 命名管道文件

s:套接字文件

二、Bash的基础特性(1)

1、history

预设保存命令条数:HISTSIZE=1000

持久保存位置:~/.bash_history

用法:history  N:显示最近的N个

例:

history  -c:清空命令历史中的命令

history  -d OFFSET:删除指定位置的命令

history –a /PATH/TO/SOMEFILE:保存当前命令历史中缓冲区的命令至指定文件

调用此前执行过的命令

!#:再次执行命令历史中第#条命令

!!:再次执行上一条

!STRING:再次执行命令历史中最近一次以STRING开头命令

2、命令补全功能:TAB

3、命令执行状态回值

命令执行成功与否的状态,由bash自己追踪:保存在特殊变量“#?”中;

0:成功   1-255:失败

例:

4、命令行展开

~:自动展开为当前用户的主目录

~ USERNAME:自动展开为指定用户的家目录

{}:使用花括号中内容可依次展开

例: /tmp/{x,y,z}   展开后为/tmp/x    /tmp/y    /tmp/z

/tmp/{x,y}/{m,n} 展开后为tmp/x/m   /tmp/x/n   /tmp/y/m  /tmp/y/n

5、命令别名和命令引用

可用alias命令查看目前定义的别名

例:

命令别名的定义方式:alias ALIAS=’command’

取消命令别名:unalias

例:

特性:命令别名设置只对当前进程有效,重启后恢复

命令别名和命令相同时,可使用\command,调用命令本身

三、Bash的基础特性(02)

1、文件名通配符(globbing)

文件名可用通配符

*:匹配任意长度的任意字符

例:p*d表示pad,ipad,pd等

?:匹配任意单个字符

[  ]:字符范围,匹配指定字符集合中的任意单个字符

例:[a-z]表示任意单个字母    [0-9]表示任意单个数字    [a-z0-9]表示任意单个字母或数字

[^ ]:字符范围,匹配指定字符集合中的任意单个字符

字符集合表示方式

[:lower:]:所有的小写字母

[:upper:]:所有的大写字母

[:alpha:]:所有的字母

[:alnum:]:所有的数字和字母

[:punct:]:所有标点符号

[:space:]:所有的空白字符

[^[:lower:]]:取反

练习:

显示/etc/目录下,以非字母开头,后面跟了一具字母及其它任意长度任意字符的文件或目录;

2、组合键

Ctrl+l:清屏

Ctrl+a: 切换至命令行首

Ctrl+e:切换至命令行尾

Ctrl+c:取消命令执行

Ctrl+u:删除光标所在处至行首的内容;

Ctrl+k: 删除光标所在处至行尾的内容;

3、IO重定向和管道

程序:指令+数据

读入数据:Input

输出数据:Output

打开的文件都一个fd:file descriptor

标准输入:keyboard, 0, /dev/stdin

标准输出:monitor, 1, /dev/stdout

标准错误输出:monitor, 2, /dev/stderr

I/O重定向:

输入重定向

输出重定向:

COMMAND > NEW_POS, COMMAND >> NEW_POS

>:覆盖重定向;

>>:追加重定向;

set -C

如果覆盖重定向目标文件存在,则禁止执行;

>|

set +C

错误重定向:

2>:覆盖

2>>:追加

同时重定向标准输出流和错误输出流:

COMMAND > /path/to/file.out 2> /path/to/file.err

COMMAND > /path/to/file.out 2>&1

COMMAND &> /path/to/file.out

输入重定向:

<

tr命令:

tr [OPTION]... SET1 [SET2]

-d: 删除字符

Here Document:<<

cat >> /path/to/somefile << EOF

管道:

COMMAND1 | COMMAND2 | ..

四、目录管理类命令:

mkdir, rmdir, tree, dirname, basename

(1) mkdir

mkdir [OPTION] /PATH/TO/SOMEWHERE

-p:创建父目录

-v: 显示创建过程

练习:

如何创建目录:x_m, x_n, y_m, y_n?

(2) rmdir

rmdir /PATH/TO/SOMEWHERE

删除空目录;

(3) tree

tree [OPTION]... [DIR]

-d:只层级目录类型的文件;

-L level: 只显示几个层级;

五、文本文件查看命令:

cat, tac, more, less, tail, head

more, less

翻屏查看;

more [OPTIONS]... FILE...

-d: 显示翻页有退出提示

Space: 向后一屏;

Enter: 向后一行;

b: 向前一屏;

less [OPTION]... FILE...

文本搜索:

/KEYWORD

?KEYWORD

n: 与命令方向相同的下一个;

N:与命令方向相反的前一个;

head和tail:

head [OPTION]... FILE

tail [OPTION]... FILE

-n #

-#

-c #: 显示前/后#个字节

tail的专用选项:

-f: follow

时间戳管理工具:touch

每个文件都有三个时间戳:

atime: 文件最近一次被访问的时间;

mtime: 文件最近一次被“修改”的时间;

ctime:文件最近一次被“改变”的时间;

文件数据:

metadata

data

touch [OPTION]... FILE...

更新时间戳至当前时间;

-a: 只更新atime

-m: 只更新mtime

-t STAMP:

[[CC]YY]MMDDhhmm[.ss]

-c: 不创建空文件

六、文件管理命令:

cp, mv, rm

复制命令:cp, copy

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST:

SRC是文件:

如果DEST不存在:新建目标文件,并将SRC复制到目标文件;

如果DEST存在:

如果DEST是文件:用SRC的内容覆盖至DEST文件中;

如果DEST是目录:在DEST目录中新一个与原文件同名的文件,将将SRC内容复制到新建的同名的目标文件中;

cp SRC... DEST:

如果DEST不存在:

是错误的;

如果DEST存在:

如果DEST是文件:错误;

如果DEST是目录:

常用选项:

-r, -R: 递归复制;

-d: 不跟踪符号链接;

--preserve[=ATTR_LIST]:

mode, ownership, timestamps

context, links, xattr, all

-a: -dR --preseve=all

-i: interactive

-f: force

-v: 显示过程

mv: move, 移动文件

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

常用选项:

-i:交互式

-f:强制

rm: remove

rm [OPTION]... FILE...

只删除文件;

常用选项:

-r:

-f:

-i:

文本编辑器:

nano

七、文件处理工具:

wc:word counts

wc [OPTION]... FILE...

-l: 显示行数

-w: 显示单词数

cut:

cut OPTION... [FILE]...

-d: 指明分隔符;-d‘ ‘, -d:

-f:指明要显示的字段

#:

#-#:1-3

#,#: 1,3,7

sort命令:排序

sort [OPTION]... [FILE]...

-r: 逆序

-f: 忽略字符大小写

-u: 排序后去重

-t CHAR: 指明分隔符

-k #: 字段

-n: 表示以数值大小排序

uniq命令:

uniq [OPTION]... [FILE]...

-c: 显示每行重复的次数;

-d: 只显示重复过的行;

-u: 只显示不曾重复的行;

时间: 2024-10-29 19:11:29

8-23 Bash特性学习的相关文章

Linux学习笔记:bash特性之多命令执行,shell脚本

今天我们学习了bash特性多命令执行包括各个命令之间的逻辑关系.其中包含"与""或""非"命令的执行.下面即为我们所学习的这些逻辑命令关系之间的关系. 选择执行结构: 逻辑运算: 与:逻辑乘法,&& 0:成功执行 -->true 1-255:失败 -->false true && true =true true && false = false false && true

网络运维学习笔记:vim编辑器及 bash特性

在本周学习中我们学习了vim编辑器的用法及对bash特性的简单了解,下面我们分别来解释这些内容. 一.vim编辑器 1.使用vim编辑器同时编辑多个文件时: vim FILE1 FILE2 FILE3 ........ 其中:next 查看或编辑后一个文档的内容 :prev 查看或编辑前一个文档的内容 :first 查看或编辑第一个文档的内容 :last 查看或编辑最后一个文档的内容 2.vim -o 分屏显示多个文档内容 横屏 vim -O 分屏显示多个文档内容 竖屏 Ctrl+w,s 将一个

《鸟哥的Linux私房菜》学习笔记(2)——Bash特性

bash及其特性: 离用户最近的程序是shell,shell 是外壳的意思,本身也是一种可执行程序.广义上的shell包含两类GUI和CLI. GUI:Gnome,KDE,Xface CLI:sh,csh,ksh,bash,tcsh,zsh 当有多个用户登陆的时候,会有多个进程,进程之间彼此互不相干,因为对于每个进程来说,它只认为当前主机上只有自己和内核存在.但是只有一个shell程序.linux允许一个用户账号登陆多次 . 进程是程序的副本,进程是程序执行的实例,是有生命周期的,由内核进行管理

Linux 基础学习bash特性 (二)

Bash 特性 用户工作环境: root #  普通用户$ shell 子shell 可以开启多个bash 使用exit退出 命令历史 ,history HISTSIZE 命令历史大小,默认1000条 -c 清空命令历史 -d 指定删除的行号 命令保持路径家目录下.bash.history -w 保存至历史文件中 !n 执行命令历史中的第n条命令.!-n 执行倒数第多少条命令 !! 执行上一条命令 !string 执行命令历史中最近一个字符串开头的命令 !$ 引用上一个命令的最后一个参数 (es

Linux学习汇总——Linux编程语言及Bash特性

本章Blog相关Linux知识点 编程语言,是用来定义计算机程序的形式语言.它是一种被标准化的交流技巧,用来向计算机发出指令. ??? 强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行.例如C/C++/Java/C# ??? 弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的).例如PHP/Python/Perl/SQL/Shell等. 程序执行逻辑,bash脚本,面向对象的过程中, ??? 顺序执行:默认

bash特性续写以及用户和组的管理

本周继续学习了bash的相关知识,bash的变量需要注意书写规范和强弱变量以及bash变量的种类等,然后开始学习用户和组的管理,重点学习了组管理命令,用户管理的命令,用户认证相关的命令,组认证相关的命令,其他命令这些知识点,需要我们课后学习记忆. bash 特性之变量 程序=指令+数据 数据:文件  变量 变量:一段连续的内存空间cell=8bit  (32bit字长支持4GB内存)为这一段内存空间取名 称之为变量名:在这段内存空间中所存储的数据称为变量值 赋值操作: = 赋值操作符 赋值方法

bash特性之四、五

一.bash特性之四,命令别名 alias,shell的内建命令,显示当前系统所有的命令别名 alias 别名="原始命令" ualias 别名 撤销已经定义的别名. \命令 使用命令本身,而非命令别名. 二.bash特性之五,globbing,统配符 *:匹配任意长度的任意字符(可以没有) ?:匹配任意一个字符(必须有一个),全文件名精确匹配. []:及合通配符表达式,匹配指定字符范围内的任意单个字符 a[xyz]b:axb或ayb或azb, [a-z] [A-Z] 看书是,解释这种

Linux总结之Bash特性

Linux总结之Bash特性 命令历史: 使用命令:history 环境变量: HISTSIZE:命令历史缓冲区中记录的条数,默认为1000: HISTFILE:记录当前登录用户在logout时历史命令存放文件: HISTFILESIZE:命令历史文件记录历史的条数,默认为1000: 操作命令历史: history d OFFSET删除指定行的命令历史: history c 清空命令历史缓冲区中的命令: history # 显示历史中最近的#条命令: history a 手动追加当前会话缓冲区中

spring4.0.6最新稳定版新特性学习,简单学习教程(一)

Spring Framework 4.0 学习整理. Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法.这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果.为了程序员的幸福,我认为有必要来一套简单快速的官方