基本shell命令

基本shell命令

帮助手册

  • man: 查看命令、系统调用和库函数等帮助手册。
  • info: 类似man,但不是以分页的形式显示。
  • -help选项: 大多数命令都有这个选项,显示其使用方法。

文件和目录

pwd: 查看当前工作目录

cd: 改变工作目录

  • .代表当前目录
  • ..代表上级目录
  • -代表上次所在的目录

pushd: 相当于先cd一个目录,再把它压到路径栈中。
popd:从路径栈中弹出一个路径并进入该目录。

ls: 列出当前目录中的文件

  • -l: 长列表形式,输入各个文件的具体信息
  • -a: 列出所有文件,包括以.开头的隐藏文件
  • -h: 以易于阅读的形式输出,比如文件大小以KB,MB为单位
  • -R: 递归地列出子目录的内容

touch: 创建一个空文件,如果文件已存在,更新访问时间和修改时间。

cp: 复制文件
cp source destination
cp source... directory
如果destination是一个目录,则把source放到该目录下,文件名不变。如果destination是一个文件名,则把source复制到该路径处,如果已存在该文件,则被覆盖。

  • -i: 覆盖前提示(info)
  • -r: 递归复制(recursive),包括其中的子目录和文件。
  • -v: 显示操作结果(verbose下同)

ln: 创建文件链接

  • ln target link-name
    创建硬链接,目标文件和链接必须在同一个分区上,不能跨文件系统分区,inode相同,本质上是同一个文件。

  • ln -s target link-name创建符号链接文件(是一个新文件,只不过对它的处理方式不同),可以跨文件系统。

  • -v: 显示操作结果

  • -f: 如果链接已存在,强制覆盖(force)

mv: 移动、重命名文件

  • mv source dest
  • mv source... directory

rm: 删除文件

  • -r: 递归删除,包括目录和子目录
  • -f: 强制删除,忽略参数中不存在的文件,不报错。
  • -i: 删除前提示

mkdir: 创建目录
创建一个目录,如果该目录已存在,报错。

  • -p: 如果目录已存在,不报错;如果需要创建的目录的父目录不存在,则自动创建。

rmdir: 删除目录

默认只能删除空目录,不如用rm

file: 查看文件类型

cat: 显示文本文件到标准输出

less: 以分页的方式查看文件,内部操作类似vim。j上移,k下移。

tail: 查看文件的最后10行

  • -n: 指定行数
  • -f: 跟随文件的变化(follow),可以对日志文件动态跟踪。

head: 查看文件的开头10行

  • -n: 指定行数或者用-n直接指定。

检测程序

ps: 查看运行在系统上的进程。
默认情况下,ps只会显示运行在当前控制台下的属于当前用户的进程。

  • -e: 显示所有进程
  • -f: 显示完整格式的输出
  • -l: 显示长列表输出

top: 动态显示系统上的进程
top命令可实时显示进程信息。运行时允许键入单字符的交互命令,改变top的行为。想要屏幕不再刷新,输个命令就可以,比如d

  • space/enter: 刷新
  • q: 退出
  • d: 修改轮询间隔
  • f: 选择进程信息的输出字段
  • k: 给进程发送信号,需要输入pid,默认为第一个进程。

kill: 不只是杀死进程,它可以给进程发送各种信号,默认是TERM。参数只能是pid

  • -s sig: 指定信号类型。

killall: 可以通过进程名和通配符指定接受信号的进程。

监测磁盘空间

linux系统中的所有的文件都被安排到一个文件树(也称虚拟目录)下,根目录是/。硬盘中的文件系统挂载到这个文件树下才能被访问。

mount: 挂载媒体设备。

默认时,输出当前系统挂载的设备列表。包括四部分信息:媒体的设备文件名、挂载到虚拟目录的挂载点、文件系统类型和已挂载媒体的访问状态。
挂载设备的完整命令:

mount [-fnrsvw] [-t fstype] [-o options] device dir

umount: 卸载设备。

参数可以是挂载点或者设备名,如果有程序使用设备上的文件,卸载失败。

df: 查看已挂载设备的使用情况

  • -h: human readable

du: 显示某个目录的磁盘使用情况
默认情况下,du显示当前目录下所有文件和目录占用磁盘的大小。

  • -c: 显示所有列出文件的总大小
  • -h: 以用户易读的方式输出
  • -s: 显示每个输出参数的总计

处理数据文件

sort: 对文件中的数据行按照字符串比较的结果进行排序

  • -n: 将字符串转化为数字进行比较
  • -r: 翻转输出的结果

grep: 在文件中查找包含匹配指定模式的文本行。
grep功能强大,这里只做简要介绍,具体查看man grep

grep [options] pattern [file]

pattern默认是正则表达式,也可以在options中指定其为扩展正则表达式。要想指定多个模式,输出匹配任一模式的文本行,可以使用-e pattern这种方式指定,可多次使用-e选项。file可以多个,不指定时为标准输入。

  • -n: 显示行号
  • -r: 递归搜索目录下的文件,不追踪软链接
  • -R:类似-r,但是追踪软链接
  • -v: 反向,输出不匹配的行
  • -e: 用来指定多个模式串

gzip: 压缩文件
gunzip: 解压缩文件

tar: Unix系统中最广泛使用的归档工具,用来打包文件。

tar function [options] object...

function:

  • -c: 创建新的归档文件
  • -A: 将一个归档文件追加到另一个归档文件
  • -r: 将文件添加到已有归档文件中
  • -t: 列出归档文件中的文件名
  • -x: 从归档文件中提取文件

options:

  • -f file: 输出结果到文件中
  • -v: 显示处理过程
  • -z: 将输出重定向给gzip来压缩内容,或者将输入先给gunzip解压缩
  • -J: 类似-z,但是工具是xz

理解shell

shell命令分为內建命令和外部命令。內建命令是编译在shell内部的命令,而外部命令是其他可执行程序,在执行外部命令的时候需要创建子进程。有的命令可能既有内部实现又有外部程序。

which: 查看命令的可执行程序的位置,如果只有内部实现,就显示built-in
type: 查看命令的类型,有的命令既是内部命令又有相应的可执行程序。可使用-a参数显示全部结果。

history: 查看历史命令
!!: 输入上条命令

alias: 创建命令别名
默认时查看系统中已经创建的别名。
alias new-name='command'
注意要有单引号或双引号

printenv: 显示全局环境变量的值

set: 显示全部变量,包括局部变量、用户定义变量和全局变量

var-name=content: 定义局部变量
局部变量不会被子进程继承。

export var-name: 把局部变量导出为全局变量
子shell就能访问此变量,但是子shell做的修改并不会呈现到父shell中。

unset: 删除某个环境变量,不会影响父进程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值