Linux文件系统及常用Bash Shell

Linux文件系统及常用Bash Shell

常见Linux目录名称
目录用途
/虚拟目录的根目录,通常不会在这里存储文件
/bin二进制目录,存放许多用户级GNU工具
/boot启动目录,存放启动文件
/dev设备目录,Linux在这里创建设备节点
/etc系统配置文件目录
/home主目录,Linux在这里创建用户目录
/lib库目录,存放系统和应用程序的库文件
/media媒体目录,可移动媒体设备的常用挂载点
/mnt挂在目录,另一个可移动媒体设备的常用挂载点
/opt可选目录,常用于存放第三方软件包和数据文件
/proc进程目录,存放现有硬件及当前进程的相关信息
/rootroot用户的主目录
/sbin系统二进制目录,存放许多GNU管理员级工具
/run运行目录,存放系统运作时的运行时数据
/srv服务目录,存放本地服务的相关文件
/sys系统目录,存放系统硬件信息的相关文件
/tmp临时目录,可以在该目录中创建和删除临时工作文件
/usr用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
/var可变目录,用以存放经常变化的文件,比如日志文件

遍历目录

命令 cd

cd destination

cd命令可接受单个参数destination,用以指定想切换到的目录名。如果没有参数则切换到用户主目录。
destination参数可以用两种方式表示,一种是使用绝对文件路径,另一种是使用相对文件路径。
  • 1.绝对文件路径
绝对文件路径定义了在虚拟目录结构中该目录的确切位置,相当于目录全名。
命令 pwd
  • 2.相对文件路径
相对文件路径允许用户指定一个基于当前位置的目标文件位置。
  • 单点符,表示当前目录;

  • 双点符,表示当前目录的父级目录
    pwd

获取当前目录位置
命令 ls

ls

ls 最基本的形式会显示当前目录下的文件和目录

ls -F

-F 参数在目录后加/,以方便用户分辨目录或文件,可执行文件后加星号

ls -a

-a 参数把隐藏文件和普通文件及目录一起显示出来。

ls -R

-R 参数递归列出当前目录下包含的子目录中的文件。

ls -l

-l 参数会产生长列表输出,包含了目录中每个文件的更多相关信息。
包含如下信息:
  • 文件类型,比如目录(d),文件(-),字符型文件©或块设备(b);
  • 文件的权限;
  • 文件的硬链接总数;
  • 文件属主的用户名;
  • 文件属主的组名;
  • 文件的大小(以字节为单位);
  • 文件上次修改时间;
  • 文件名或目录名;

过滤输出列表

指定文件的名称

ls -l my_script

  • 问号(?)代表一个字符
  • 星号(*)代表零个或多个字符
    ls -l my_scr?pt
    ls -l my*
    ls -l my_s*t
元字符通配用[ ]

ls -l my_scr[ai]pt

也可以是字母范围

ls -l f[a-i]ll

也可以将不需要的内容排除

ls -l f[!a]ll

命令 touch

touch test_one

touch用来创建空文件
touch还用来改变文件修改时间,这个操作不需要改变文件的内容

touch -a test_one
ls -l --time=atime test_one

-a 参数只改变访问时间,ls -l命令只默认显示修改时间
命令 cp

cp source destination

当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。

cp test_one test_two

新文件test_two和文件test_one的修改时间并不一样,如果目标文件已经存在,cp命令并不会提醒。

cp -i test_one test_two

-i 参数会询问是否需要覆盖文件,如果不回答y则复制不会继续

cp -R Scripts/ Mod_Scripts

-R 参数会将原目录递归的复制整个目录内容

cp *script Mod_Scripts/

也可以在cp命令中使用通配符
ln 命令
  • 软链接
  • 硬链接

ln -s data_file sl_data_file

软链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件,这两个文件通过软链接在一起,彼此的内容并不相同。要创造软链接原始文件必须存在。

ln code_file hl_code_file

硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,但是它们从根本上而言是一个文件,引用硬链接文件等同于引用了源文件。
mv 命令
mv命令可以将文件和目录移动到另一个位置或重新命名

mv fall fzll

注:inode编号和时间戳保持不变,因为mv只影响文件名或文件位置
rm 命令

rm -i fall

-i 参数提示是否要真的删除该文件

rm -i f?ll

也可以使用通配符删除成组的文件

rm -f f?ll

-f参数会使删除不受提示符打扰
mkdir 命令

mkdir New_Dir

创建一个以d开头的目录

mkdir -p New_Dir/Sub_Dir/Under_Dir

-p 参数可以根据需要创建缺失的父目录
tree 命令

tree Small_Dir

tree命令可以以一种美观的方式展示目录
cat 命令

cat test1

cat命令是显示文本文件所有数据的工具

cat -n test1

-n 参数会给所有行加上行号

cat -b test1

-b 参数只给有文本的行加上行号

cat -T test1

-T 参数会用^I字符组合去替换所有的制表符
more 命令

more /etc/bash.bashrc

cat的主要缺陷是一旦运行就无法控制后面的操作,more命令会在每页数据之后停下来
less 命令
less命令是more的升级版
tail 命令

tail log_file

tail命令会显示文件最后几行的内容,默认情况下它会显示该文件的末尾10行

tail -n 2 log_file

-n 参数可以修改所显示的行数
-f 参数是一个突出特性,它允许其他进程使用该文件时查看文件的内容
head 命令
head顾名思义会显示开头的那几行

head -5 log_file

它也支持-n参数,也可以直接在破折号后直接接数字
ps 命令
在默认的情况下,ps只显示运行在当前控制台下属于当前用户的进程
  • Unix风格的参数,前面加单破折线;
  • BSD风格的参数,前面不加破折线;
  • GNU风格的长参数,前面加双破折线
Unix风格的参数
参数描述
-A显示所有进程
-N显示与指定参数不符的所有进程
-a显示除控制进程(session leader)和无终端进程外的所有进程
-d显示除控制进程外的所有进程
-e显示所有进程
-C cmdlist显示包含在cmdlist列表中的进程
-G grplist显示组ID在grplist列表中的进程
-U userlist显示属主的用户ID在userlist列表中的进程
-g grplist显示会话或组ID在grplist列表中的进程
-p pidlist显示PID在pidlist列表中的进程
-s sesslist显示会话ID在sesslist列表中的进程
-t ttylist显示终端ID在ttylist列表中的进程
-u userlist显示有效用户ID在userlist列表中的进程
-F显示更多额外输出(相对-f参数而言)
-O format显示默认的输出列以及format列表指定的特定列
-M显示进程的安全信息
-c显示进程的额外调度器信息
-f显示完整格式的输出
-j显示任务信息
-l显示长列表
-o format仅显示由format指定的列
-y不要显示进程标记(process flag,表明进程状态的标记)
-Z显示安全标签(security context)信息
-H用层级格式来显示进程(树状,用来显示父进程)
-n namelist定义了WCHAN列显示的值
-w采用宽输出模式,不限宽度显示
-L显示进程中的线程
-V显示ps命令的版本号
BSD风格的参数
参数描述
T显示跟当前终端关联的所有进程
a显示跟任意终端关联的所有进程
g显示所有进程,包括控制进程
r仅显示运行中的进程
x显示所有的进程,甚至包括未分配任何终端的进程
U userlist显示归userlist列表中某用户ID所有的进程
p pidlist显示PID在pidlist列表中的进程
t ttylist显示所关联的终端在ttylist列表中的进程
O format除了默认输出的列之外,还输出由format指定的列
X按过去的Linux i386寄存器格式显示
Z将安全信息添加到输出中
j显示任务信息
l采用长模式
o format仅显示由format指定的列
s采用信号格式显示
u采用基于用户的格式显示
v采用虚拟内存格式显示
N namelist定义在WCHAN列中使用的值
O order定义显示信息列的顺序
S将数值信息从子进程加到父进程上,比如CPU和内存的使用情况
c显示真实的命令名称(用以启动进程的程序名称)
e显示命令使用的环境变量
f用分层格式来显示进程,表明哪些进程启动了哪些进程
h不显示头信息
k sort指定用以将输出排序的列
n和WCHAN信息一起显示出来,用数值来表示用户ID和组ID
w为较宽屏幕显示宽输出
H将线程按进程来显示
m在进程后显示线程
L列出所有格式指定符
V显示ps命令的版本号
  • VSZ:进程在内存中的大小,以千字节(KB)为单位
  • RSS:进程在未换出时占用的物理内存
  • STAT:代表当前进程状态的双字符状态码
  • <:该进程运行在高优先级上
  • N:该进程运行在低优先级上
  • L:该进程有页面锁定在内存中
  • s:该进程是控制进程
  • l:该进程是多线程的
  • +:该进程运行在前台
GNU长参数
参数描述
–deselect显示所有进程,除了命令行中列出的进程
–Group grplist显示组ID在grplist列表中的进程
–User grplist显示用户ID在userlist列表中的进程
–group grplist显示有效组ID在grplist列表中的进程
–pid pidlist显示PID在pidlist列表中的进程
–ppid pidlist显示父PID在pidlist列表中的进程
–sid sidlist显示会话ID在sidlist列表中的进程
–tty ttylist显示终端设备号在ttylist列表中的进程
–user userlist显示有效用户ID在userlist列表中的进程
–format format仅显示由format指定的列
–context显示额外的安全信息
–cols n将屏幕宽度设置为n列
–columns n将屏幕宽度设置为n列
–cumulative包含已停止的子进程的信息
–forest用层级结构显示出进程和父进程之间的关系
–headers在每页输出中都显示列的头
–no-headers不显示列的头
–lines n将屏幕高度设计为n行
–rows n将屏幕高度设为n排
–sort order指定将输出按哪列排序
–width n将屏幕宽度设计为n列
–help显示帮助信息
–info显示调试信息
–version显示ps命令的版本号
top 命令
  • PID:进程的ID
  • USER:进程属主的名字
  • PR:进程的优先级
  • NI:进程的谦让度值
  • VIRT:进程占用的虚拟内存总量
  • RES:进程占用的物理内存总量
  • SHR:进程和其他进程共享的内存总量
  • S:进程状态(D代表可终端的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)
  • %CPU:进程使用的CPU时间比例
  • %MEM:进程使用的内存占可用内存的比例
  • TIME+:自进程启动到目前为止的CPU时间总量
  • COMMAND:进程所对应的命令行名称,也就是启动的程序名

Linux进程信号

信号名称描述
1HUP挂起
2INT中断
3QUIT结束运行
9KILL无条件终止
11SEGV段错误
15TERM尽可能终止
17STOP无条件停止运行,但不终止
18TSTP停止或暂停,但继续在后台运行
19CONT在STOP或TSTP之后恢复执行
kill 命令
kill命令会向命令行中列出的全部PID发送一个TERM信号

kill 3940
kill -s HUP 3940

kill -s 参数支持指定其他信号
killall 命令
killall命令非常强大,它支持通过进程名而不是PID来结束进程
find 命令
find [path] [options] [tests] [actions]
find的选项
选项含义
-depth在查看目录本身之前先搜索目录的内容
-follow跟随符号链接
-maxdepths N最多搜索N层目录
-mount(或-xdev)不搜索其他文件系统中的目录
测试部分,测试返回的结果为true或false。find命令开始工作时,它按照顺序将定义的每种测试依次应用到它搜索到的每个文件上。
测试参数
测试含义
-atime N文件在N天之前被最后访问过
-mtime N文件在N天之前被最后修改过
-name pattern文件名(不包括路径名)匹配提供的模式pattern为了确保pattern被传递给find命令而不是shell来处理,pattern必须总是用引号扩起
-newer otherfile文件比otherfile文件要新
-type c文件的类型为c,c是一个特殊类型,最常见的是d(目录),f(普通文件)
-user username文件的拥有者时指定的用户username
测试的操作符
操作符,短格式操作符,长格式含义
!-not测试取反
-a-and两个测试都必须是真
-o-or两个测试有一个必为真
动作参数
动作含义
-exec command执行一条命令,这个动作必须使用;结束
-ok command与-exec类似,但它在执行命令前会针对每个要处理的文件提示确认,这个动作必须使用;结束
-print打印文件名
-ls对当前文件使用命令ls-dils
grep命令
grep [options] PATTERN [FILES]
选项参数
选项含义
-c输出匹配行的数目,而不是输出匹配的行
-E启用扩展表达式
-h取消每个输出行的普通前缀,即匹配查询模式的文件名
-i忽略大小写
-l只列出包含匹配行的文件名,二不输出真正的匹配行
-v对匹配模式取反,即搜索不匹配行而不是匹配行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盛者无名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值