Linux命令速查

Unix哲学

  • 每个程序只做一件事, 但做到极致
  • 用程序之间的相互协作来解决复杂问题
  • 每个程序都采用文本作为输入和输出, 这会使程序更易于使用
filename、file1、file2都是文件名。有时文件名有后缀,比如file.zip
command,命令名
dir,文件夹名
string,字符串
username,用户名
groupname,组名
regex,正则表达式
path,路径
device,设备名
partition,分区名
IP, IP地址
domain,域名
ID,远程用户ID
host,主机名,可以为IP地址或者域名
var,变量名
value,变量值

1. 命令帮助

$man command
 # 查询命令command的说明文档
# man还可以用于查询系统函数、配置文件 $
man -k keyword # 查询关键字 $info command # 更加详细的说明文档 $whatis command # 简要说明 $which command # command的binary文件所在路径 $whereis command # 在搜索路径中的所有command

2. 用户

$finger username
  # 显示用户username的信息
$who
  # 显示当前登录用户
$who am I
  # 一个有趣的用法
$write username
  # 向用户发送信息(用EOF结束输入)
$su
  # 成为root用户
$sudo command
  # 以root用户身份执行
$passwd
  # 更改密码

3. SHELL (BASH)

$history
  # 显示在当前shell下的命令历史
$alias
  # 显示所有的命令别称    
$alias new_command='command'
  # 命令command的别称为new_command
$env
  # 显示所有的环境变量      
$export var=value
  # 设置环境变量var为value
$expr 1 + 1
  # 计算1+1

4. 文件系统

$du -sh dir
  # 文件夹大小,-h人类可读的单位,-s只显示摘要
$find . -name filename
  # 从当前路径开始,向下寻找文件filename
$locate string
  # 寻找包含有string的路径       
$updatedb
  # 与find不同,locate并不是实时查找,你需要更新数据库,以获得最新信息
$ln -s filename path
  # 为文件filename在path位置创建软链接
$pwd
  # 显示当前路径      
$cd path
  # 更改当前工作路径为path     
$cd -
  # 更改当前路径为之前的路径

5. 文件

$touch filename
  # 如果文件不存在,则创建一个空白文件;如果文件存在,则更新文件读取并修改时间
$rm filename
  # 删除文件
$cp file1 file2
  # 复制file1为file2
$ls -l path
  # 显示文件和文件相关信息
$mkdir dir
  # 创建dir文件夹      
$mkdir -p path
  # 递归创建路径path上的所有文件夹       
$rmdir dir
  # 删除dir文件夹,dir必须为空文件夹      
$rm -r dir
  # 删除dir文件夹及其包含的所有文件
$file filename
  # 文件filename的类型描述
$chown username:groupname filename
  # 更改文件的拥有者为owner,拥有组为group
$chmod 755 filename
  # 更改文件的权限为755: owner r+w+x, group: r+x, others: r+x
$od -c filename
  # 以ASCII字符显示文件

6. 文件显示

$cat filename
  # 显示文件       
$cat file1 file2
  # 连接显示file1和file2
$head -1 filename
  # 显示文件第一行
$tail -5 filename
  # 显示文件倒数第五行
$diff file1 file2
  # 显示file1和file2的差别
$sort filename
  # 对文件中的行排序,并显示        
$sort -f filename
  # 排序时,不考虑大小写     
$sort -u filename
  # 排序,并去掉重复的行
$uniq filename
  # 显示文件filename中不重复的行(内容相同,但不相邻的行,不算做重复)    
$wc filename
  # 统计文件中的字符、词和行数       
$wc -l filename
  # 统计文件中的行数

7. 文本

$echo string
  # 显示string
$echo string | cut -c5-7
  # 截取文本的第5列到第7列
$echo string | grep regex
  # 显示包含正则表达式regex的行
$echo string | grep -o regex
  # 显示符合正则regex的子字符串

8. 时间与日期

$date
  # 当前日期时间      
$date +"%Y-%m-%d_%T"
  # 以YYYY-MM-DD_HH:MM:SS的格式显示日期时间(格式可参考$man date)
$date --date="1999-01-03 05:30:00" 100 days
  # 显示从1900-01-03 05:30:00向后100天的日期时间
$sleep 300
  # 休眠300秒

9. 进程

$top
  # 显示进程信息,并实时更新
$ps
  # 显示当前Shell下的进程
$ps -lu username
  # 显示用户username的进程
$ps -ajx
  # 以比较完整的格式显示所有的进程
$kill PID
  # 杀死PID进程(PID为Process ID)
$kill %job
  # 杀死job工作(job为job number)
$lsof -u username
  # 用户username的进程打开的文件
$dmesg
  # 显示系统日志
$time a.out
  # 测试a.out的运行时间

10. 硬件

$uname -a
  # 显示系统信息
$df -lh
  # 显示所有硬盘的使用状况
$mount
  # 显示所有的硬盘分区挂载
$mount partition path
  # 挂载partition到路径path
$umount partition
  # 卸载partition
$sudo fdisk -l
  # 显示所有的分区
$sudo fdisk device
  # 为device(比如/dev/sdc)创建分区表,进入后选择n、p、w
$sudo mkfs -t ext3 partition
  # 格式化分区patition(比如/dev/sdc1)

11. 网络

$ifconfig
 # 显示网络接口及相应的IP地址。ifconfig可用于设置网络接口
$ifup eth0
 # 运行eth0接口
$ifdown eth0
 # 关闭eth0接口
$iwconfig
 # 显示无线网络接口
$route
 # 显示路由表。route还可以用于修改路由表
$netstat
 # 显示当前的网络连接状态
$ping IP
 # 发送ping包到地址IP
$traceroute IP
 # 探测前往地址IP的路由路径
$dhclient
 # 向DHCP主机发送DHCP请求,以获得IP地址及其他设置信息
$host domain
 # DNS查询,寻找域名domain对应的IP
$host IP
 # 反向DNS查询
$wget url
 # 使用wget下载url指向的资源
$wget -m url
 # 镜像下载

12. SSH登录与文件传输

$ssh ID@host
 # ssh登录远程服务器host, ID为用户名
$sftp ID@host
 # 登录服务器host, ID为用户名。
sftp登录后,可以使用下面的命令进一步操作
$get filename   # 下载文件
$put filename   # 上传文件
$ls            # 列出host上当前路径的所有文件
$cd            # 在host上更改当前路径
$lls           # 列出本地主机上当前路径的所有文件
$lcd           # 在本地主机更改当前路径
$scp localpath ID@host:path
 # 将本地localpath指向的文件上传到远程主机的path路径
$scp -r ID@site:path localpath
 # 以ssh协议,遍历下载path路径下的整个文件系统,到本地的localpath

13. 压缩与归档

$zip file.zip file1 file2
  # 将file1和file2压缩到file.zip
$unzip file.zip
  # 解压缩file.zip
$gzip -c filename > file.gz
  # 将文件filename压缩到file.gz
$gunzip file.gz
  # 解压缩file.gz文件
$tar -cf file.tar file1 file2
  # 创建tar归档
$tar -zcvf file.tar file1 file2
  # 创建tar归档,并压缩
$tar -xf file.tar
  # 释放tar归档
$tar -zxf file.tar.gz
  # 解压并释放tar归档

14. 打印

$lpr filename
  # 打印文件
$lpstat
  # 显示所有打印机的状态
来源《树莓派开始,玩转Linux》
posted @ 2023-08-23 18:42  asandstar  阅读(57)  评论(0编辑  收藏  举报