bash shell命令

1. 查看命令手册

man	查看命令手册页
= --help
空格键翻页,Enter键逐行查看,q键退出

2. 列出文件和目录

ls	# 查看当前目录下的文件
ls -l # 以列表形式查看当前目录下的文件
ls -a	# 查看当前目录下所有文件,包括隐藏文件
ls -F 查看目录中的文件
ls -h	# -h 以人类可读的方式来展示硬盘分区信息
ls /	# 查看指定根目录下的文件
ls -R:递归显示子目录结构
ls -ld:显示目录和链接信息

tree 显示文件和目录由根目录开始的树形结构

ll	# alias ll='ls -alF'

通配符:
"?"代表任意单个字符
"*"代表零个或多个字符
"[a,y]"代表单个字符位置并给出多个可能的选择
"[a-i]"可指定字符范围
"[!a]"将不需要的内容排除在外

history--->!xx # 查看历史命令,选择xx命令执行
ctrl+r:历史记录中所搜命令(输入命令中的任意一个字符)
# Linux 中以 .开头的文件是隐藏文件

pwd:显示当前目录

3. 处理文件

touch 创建文件,改变文件的修改时间

cp file1 file2 复制一个文件
# 将复制到某一目录下需加"/",否则目录不存在时会创建名为那个目录的文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
cp -R dir1 dir2 递归复制整个目录
cp -i 询问是否需要覆盖已有文件

4. 链接文件

ln -s file1 lnk1 创建一个指向文件或目录的软链接(符号链接)
# 以符号方式链接在一起的的文件内容不相同
ln file1 lnk1 创建一个指向文件或目录的物理链接(硬链接)
# 硬链接创建的是独立的虚拟文件,其中包含了原始文件的位置和信息,两者本质是同一个文件
验证方法:ls -i 查看文件或目录的inode编号(内核分配给文件系统中每一个对象的唯一标识)
# 只能对处于同一存储设备的文件创建硬链接,位于不同存储设备的文件只能创建符号链接

5. 文件重命名

mv dir1 new_dir 重命名/移动 一个目录
# mv重命名/移动文件不会改变文件的inode编号和时间戳
mv -i 询问是否覆盖已有文件

6. 删除文件

rm -f file1 删除一个叫做"file1"的文件
rm -i 询问是否删除

7. 处理目录

mkdir dir1 创建一个叫做"dir1"的目录
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树,包括父目录

rmdir 只删除空目录,没有"-i"选项
rm -rf dir1 删除一个叫做"dir1"的目录并同时删除其内容
# 非常危险,务必慎用

8. 查看文件内容

file 
# 1.查看文件类型
# 2.文件中包含的文本信息
# 3.确定二进制可执行程序编译时所面向的平台及需要何种类型的库

cat -n 查看整个文件并给所有行加上行号
cat -b 只给有文本的行加上行号,常用来检查脚本
# 缺点是运行之后无法控制后续操作

tac file1 从最后一行开始反向查看一个文件的内容

more 分页显示文本文件内容
空格键翻页,Enter键逐行查看,q键退出
# 只支持文本文件基本移动

less # more命令升级版,能够上下翻页

tail -n 显示文件最后n行内容,默认为10
tail -f /var/log/messages 实时查看被添加到一个文件中的内容

head -n 显示文件开头n行内容,默认为10

9. 监测程序

9.1 ps

1.Unix风格(贝尔实验室AT&T Unix):
ps -e 显示所有进程
ps -a 显示除控制进程和无终端进程外的所有进程
ps -u 显示有效用户ID在userlist列表中的进程
ps -f 显示完整格式的输出
# 显示UID、ID、PID(父进程的PID)、C(CPU利用率)、STIME(进程启动时的系统时间、TTY(进程是从哪个终端设备启动的)、TIME(运行进程的累积CPU时间)、CMD(启动程序名称)

在这里插入图片描述

ps -l 显示长列表
# 显示F(内核分配给进程的系统标志)、S(进程的状态:O-正在运行;S-休眠;R-可运行/等待运行;Z-僵化;T-停止)、PRI(进程优先级,数字越大,优先级越低)、NI(谦让度,nice,用于决定优先级)、ADDR(进程的内存地址)、SZ(进程被换出时所需交换空间的大致大小)、WCHAN(进程休眠的内核函数地址)

在这里插入图片描述

2.BSD风格(伯克利软件发行版):
ps a 显示与任意终端关联的所有进程
ps u 采用基于用户的格式显示
ps x 显示所有进程,包括未分配任何终端的进程
ps l 采用长格式使用
# 显示VSZ(占用虚拟内存大小,单位为KB)、RSS(占用物理内存大小)、STAT(当前进程状态的多字符状态码:<高优先级;N低优先级;s控制进程;l拥有多线程;+在前台运行)
3.GNU长选项
ps --forest = ps -H = ps -f 用层级结构显示出进程和父进程之间的关系

9.2 top

top 实时监测进程

在这里插入图片描述

第一部分显示的是系统概况:

  • 第一行:显示当前时间系统运行时长登录用户数量以及系统的平均负载(平均负载有三个值,分别为1分钟、5分钟、15分钟的平均负载,值越大说明系统负载越高,难点在于定义什么程度算高负载,需要注意在正常情况下系统的负载值才能更好地判断)。
  • 第二行:显示进程概况(top称其为task):
    多少进程处于运行、休眠、停止以及僵化状态(僵化状态表示进程已经停止,但其父进程没有响应)。
  • 第三行:显示CPU概况。
  • 第四行:显示系统内存状态。
  • 第五行:显示系统交换空间状态。

第二部分显示当前进程的详细列表:

  • PR:进程的优先级
  • NI:进程的谦让度
  • VIRT:进程占用的虚拟内存总量
  • RES:进程占用的物理内存总量
  • SHR:进程和其他进程共享的内存总量
  • S:进程状态(D:可中断的休眠;R:运行;S:休眠;T:被跟踪或停止;Z:僵化)

默认情况下,top会按照%CPU值来对进程排序:可以通过单字符命令重新排序:

  • 键入f,选择用于对输出进行排序的字段;
  • 键入d,修改轮询间隔;
  • 键入q,退出top
kill -s PID 强制终止某进程
pkill 可以使用程序名代替PID来终止进程,允许使用通配符

10. 监测磁盘空间

mount 默认输出当前设备已挂载的设备列表(杂乱)
mount -t type 过滤文件系统类型的输出
mount -t type device directory 手动挂载设备
# type参数指定磁盘格式化使用的文件系统类型(常用的有vfat、ntfs、exfat、iso9660),后面两个参数指定存储设备的设备文件位置以及挂载点在虚拟目录中的位置
# 一个设备可以有多个挂载点,但一个挂载点不能有多个设备!

umount directory 卸载设备
# 如果有任何程序正在使用设备上的文件就无法卸载,包括命令提示符位于挂载设备的文件系统中时

df -h 以人类易读方式查看所有已挂载磁盘的使用情况

du -sh	查看当前文件夹大小
ncdu # du 增强版

11. 处理数据文件

11.1 数据排序

sort 对文本文件中的数据进行排序
sort -n 将字符串按数值排序
sort -M 将三字符的月份名按月份排序(常用于Linux日志文件每行起始的时间戳)
sort -b 排序时忽略起始的空白字符
sort -r 逆序排序(升序变降序,便于查看目录中哪些文件占用磁盘空间最多)

sort -k 排序键从POS1位置开始,到POS2位置结束(如果指定了POS2的话)
sort -t 指定字段分隔符
例:sort -t ':' -k 3 -n /etc/passwd

11.2 数据搜索

grep 输出包含匹配模式的行
grep -v 反向搜索(输出不匹配指定模式的行)
grep -n 显示指定模式的那些行的行号
grep -c 显示有多少行含有匹配的模式
grep -e 指定多个匹配模式
grep [] file 默认使用正则表达式来匹配模式

11.3 数据压缩

bzip2 file1 压缩一个叫做 'file1' 的文件
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件

xz file1 压缩一个叫做 'file1' 的文件
unxz file1.bz2 解压一个叫做 'file1.bz2'的文件

gzip file1 压缩一个叫做 'file1'的文件
gzip -9 file1 最大程度压缩
gunzip file1.gz 解压一个叫做 'file1.gz'的文件
# bzip2、xz、gzip压缩或解压后原文件不保留,可以使用"*"通配符一次性压缩或解压多个文件

rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包

zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包
# rar、zip压缩或解压后原文件保留

11.4 数据归档

tar -c 创建新的tar归档文件
tar -t 列出tar归档文件内容
tar -x 从tar归档文件中提取文件
tar -f 将结果输出到文件
tar -C 切换到指定目录
tar -j 将输出传给bzip2命令
tar -J 将输出传给xz命令
tar -z 将命令传给gzip命令
tar -v 在处理文件时显示文件名

tar命令选项经常合并使用,如下:
tar -cvf archive.tar file1 创建一个非压缩的tar包
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar 显示一个包中的内容(不提取)
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
# tar会保留原文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值