Linux上bash基础特性之一

一、 FHS
FHS(Filesystem Hierarchy Standard)文件系统层级标准,是定义了Linux系统目录以及目录内的主要目录内容。
访问Linux系统内的文件必须从一个叫根文件系统的位置开始
/:根目录,是系统启动时第一个载入的分区,所有启动过程会用到的文件都应该放在这个分区中
根目录下的目录文件
/boot:放置系统启动需要加载的文件、内核等
/bin:系统自身启动时可能会用到的核心二进制程序,不能关联到独立分区
/sbin:管理类基本文件,系统启动便会用到的程序,不能关联到独立的分区
/lib:基本共享文件以及内核模块文件
/lib64:专用于x86_64位系统上的辅助共享文件存放位置
/etc:应用程序配置文件
/home:普通用户的家目录文件
/root:管理员root用户的主目录
/media:便携式移动设备的挂载点(光驱、usb)
/mnt:临时文件挂载点
/dev:所有设备文件及特殊文件存储位置
/opt:第三方应用程序安装目录
/srv:服务类程序用到的中间数据
/tmp:临时文件存放位置
/usr:操作系统软件资源存放位置
/var:主要放置系统执行中经常变化的文件(log、cache)
/proc:这个目录本身是一个“虚拟文件系统”,放置的数据都在内存中,(因为数据都在内存中,不占硬盘空间)。比较重要的文件有/proc/cpuinfo、/proc /dma、 /proc/interrupts、/proc/ioports、/proc/net/
/sys:用于输出系统上硬件设备相关信息的虚拟文件系统,内核中与硬件设备相关的信息映射

Linux文件类型
-:普通文件
d:目录文件
b:块文件
c:字符文件
l:符号链接文件
p:管道文件
s:套接字文件,socket
二、 常用命令
1、 history命令:
查看或设置使用过的命令相关参数。历史命令是保存在内存中的,当退出shell或登入shell时,历史命令会自动保存到histfile或从histfile文件读取到内存中。默认情况系统保存1000条history命令,这个值由histsize变量决定。
History命令相关的几个环境变量:
HISTSIZE:命令历史记录的条目
HISTFILE:命令历史记录文件,~/.bash_history
HISTFILESIZE:命令历史文件记录的条目
(连续执行多次的相同命令,在历史记录中只记录一次)

History命令语法:
history [option] [parameter]
history –d :删除历史命令中指定的命令
history –c:清空命令历史
history –a:手动追加当前会话缓冲区的历史命令至历史文件中
history n:显示历史命令中最近的n条命令

!#:重复执行第#条历史命令
!!:重复执行上一条命令
!string:重复执行最近一次以string开头的命令
!$:调用最后一条命令执行输出结果

示例:
history n
[root@localhost log]# history 10
361 cd /var/log
362 more
363 ls
364 ll
365 car maillog
366 cat maillog
367 cat yum.log
368 cat -l yum.log
369 cat -n yum.log
370 history 10

history -d
[root@localhost log]# history -d 367
[root@localhost log]# history 10
362 more
363 ls
364 ll
365 car maillog
366 cat maillog
367 cat -l yum.log
368 cat -n yum.log
369 history 10
370 history -d 367
371 history 10

history –c
[root@localhost log]# history -c
[root@localhost log]# history
1 history

!#
[root@localhost log]# !1
history
1 history

!!
[root@localhost log]# pwd
/var/log
[root@localhost log]# !!
pwd
/var/log

!p
[root@localhost log]# !p
pwd
/var/log

![root@localhost log]# ! [root@localhost log]# !
pwd
/var/log

2、 cd命令
cd切换当前目录到指定的目标目录

cd命令语法
cd [option] [parameter]
cd –p:如果切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
cd –L:如果要切换的目标目录是一个符号连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录

cd 进入用户主目录
cd ~ 进入用户主目录
cd – 返回进入此目录前所在的目录
cd .. 返回上级目录
cd ../.. 返回上两级目录
cd !$ 把上个命令的参数作为cd参数使用

3、 pwd命令:
以绝对路径的方式显示用户当前的工作目录

pwd命令语法
pwd [option]

4、 ls命令
用来显示目标列表,在linux中是使用率较高的命令

ls命令语法
ls [option] [parameter]
ls –a:显示所有文件和目录(ls内定将文件或目录带“。”的视为隐藏,不会列出)
ls –A:显示除隐藏文件“.”和“..”以外的所有文件列表
ls –c:多列显示输出结果,这是默认选项
ls –l:与“-c”相反,单列输出输出信息
ls –F:在每个输出后,追加文件的类型标识符。具体含义“*”代表具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符
ls –b:将文件中不可输出的字符以反斜线表示
ls -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
ls -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
ls -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
ls -i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
–file-type:与“-F”选项的功能相同,但是不显示“*”;
ls -k:以KB(千字节)为单位显示文件大小;
ls -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
ls -m:用“,”号区隔每个文件和目录的名称;
ls -n:以用户识别码和群组识别码替代其名称;
ls -r:以文件名反序排列并输出目录内容列表;
ls -s:显示文件和目录的大小,以区块为单位;
ls -t:用文件和目录的更改时间排序;
ls -L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
ls -R:递归处理,将指定目录下的所有文件及子目录一并处理;
–full-time:列出完整的日期与时间;
–color[=WHEN]:使用不同的颜色高亮显示不同类型的。

5、 mkdir命令
创建目录

命令语法
mkdir [option] [parameter]

mkdir –m :建立目录同时设置目录权限
mkdir –p:若要建立的目录的上层目录没有建立,则会一并建立上层目录
mkdir –v :显示详细信息

示例
mkdir –p
[root@localhost ~]# mkdir /tmp/ccc/d
mkdir: cannot create directory ‘/tmp/ccc/d’: No such file or directory
[root@localhost ~]# mkdir -p /tmp/ccc/d
[root@localhost ~]# ll /tmp/ccc/
total 0
drwxr-xr-x. 2 root root 6 Sep 2 23:17 d

mkdir –v
[root@localhost ~]# mkdir -p -v /tmp/abc/d
mkdir: created directory ‘/tmp/abc/d’
[root@localhost ~]# ll /tmp/abc
total 0
drwxr-xr-x. 2 root root 6 Sep 2 23:18 d
drwxr-xr-x. 2 root root 6 Sep 2 16:37 x

6、 rmdir命令
删除目录命令,只能删除空目录
命令语法
rmdir [option]

rmdir –v :显示删除过程
[root@localhost ~]# rmdir -v /tmp/abc/d
rmdir: removing directory, ‘/tmp/abc/d’
[root@localhost ~]# ll /tmp/abc
total 0
drwxr-xr-x. 2 root root 6 Sep 2 16:37 x

7、 tree命令
查看目录结构
tree [option]

tree –d:只显示目录
tree –L level:显示指定的层级
tree –P pattern:只显示指定参数匹配到的路径

示例:
[root@localhost ~]# tree -d -L 2 /tmp
/tmp
├── abc
│ └── x
├── a_c
├── a_d
├── b_c
├── b_d
├── ccc
│ └── d
├── log
│ ├── anaconda
│ ├── audit
│ ├── httpd
│ ├── rhsm
│ └── tuned
├── mysysroot
│ ├── bin
│ ├── etc
│ ├── sbin
│ ├── usr
│ └── var
├── systemd-private-e89355e13786429f9794ee0c47947c02-httpd.service-QTHzyO
│ └── tmp
├── vmware-root
├── x
│ ├── y1
│ └── y2
├── x_m
└── y_m

8、 {}:可以承载一个以逗号分隔的列表,并将其展开为多个路径
示例:在tmp下建立x_m,y_m目录
[root@localhost tmp]# mkdir -p /tmp/{x_,y_}m
[root@localhost tmp]# ll -d /tmp/{x_,y_}m
drwxr-xr-x. 2 root root 6 Sep 2 22:30 /tmp/x_m
drwxr-xr-x. 2 root root 6 Sep 2 22:30 /tmp/y_m

9、 命令的执行结果状态
Bash使用特殊变量 ?echo ? 保 存 最 近 一 条 命 令 的 执 行 状 态 结 果 e c h o ?命令查询命令执行结果状态
返回值0:表示成功
返回值1-255:表示失败
[root@localhost tmp]# pwd
/tmp
[root@localhost tmp]# echo ?  
0  
[root@localhost tmp]# aaa  
-bash: aaa: command not found  
[root@localhost tmp]# echo
?  0  [root@localhost tmp]# aaa  -bash: aaa: command not found  [root@localhost tmp]# echo
?
127

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值