首页 > 系统相关 >Shell 和 命令行格式

Shell 和 命令行格式

时间:2023-07-19 19:57:18浏览次数:27  
标签:文件 Shell ... 源文件 查找 命令行 格式 目录 man

一.shell

1)bash  

bash是linux里面默认的shell程序   位于/bin/bash

2)shell与内、外部命令

1.shell分为内部命令和外部命令,一般先执行内部命令,hash再执行外部命令

2.内外部命令的区别

内部命令 外部命令
集成于shell解释器程序内部的一些特殊指令,也称为内建(built-in)指令 linux系统中能够完成特定功能的脚本文件或二进制程序
属于shell的一部分 属于shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由shell加载后才能执行

3.help命令可以查看内部命令

例:#help

4.type命令区分内外部命令

例:type cd

5.hash

hash -d 加缓存里的命令  单独删除

hash -r 删除所有

将缓存的外部命令转移到其他默认的目录中,无法再次使用,需要清掉hash值之后,才可以继续使用

 

二.命令行格式

再linux中,凡是再字符操作界面中输入能够完成特定操作和任务的字符串都可以称为命令

严格来说,命令通常只代表实现某一类功能的程序的名称

 

1)格式

1.命令字  空格 【选项】 空格 【参数】

2.快捷键

快捷键 功能
tab键 自动补齐
反斜杠“\”

强制换行或转义

ctrl +a 

强制换行或转义

ctrl + e或end 光标移到最后
ctrl + U 清空至行首不包括当前光标处的字符
ctrl + k 清空至行尾包括当前光标处的字符
ctrl + w 从当前光标删除到开头
alt + d 从当前光标删除到开头
ctrl + l 清屏
ctrl + c 取消本次命令编辑
ctrl + s/+ q 锁屏/解锁
向上下箭头 回看执行过的命令

 2)帮助

help

--help 查看外部命令帮助

3) man

分为9个章节

man 1 :用户指令

man 2 :系统调用

man 3 : 程序库调用

man 4 : 设备

man 5 : 文件格式

man 6 :游戏

man 7 : 杂项

man 8 : 系统指令

man 9 : 内核内部指令

man n : Tcl 或Tk指令

 

三.目录操作

1)pwd

pwd为当前路径

pwd -P 为真实路径

2)cd

cd为目标位置

 ..表示上一级目录     .表示当前目录

 3)7种文件类型

- 普通类型                                包括纯文本文件 二进制文件 各种压缩文件等

l 连接                                        快捷方式

b 磁盘                                       块设备

c 字符文件                                字符设备文件

d 目录                                       目录 文件夹

s 套接字                                   通常用在网络数据连接,可以用做监听,进行数据通信

p 管道                                      解决多个程序同时存取一个文件所造成的错误

4)ls

-l 已长格式显示文件和目录列表 ll=ls -l

-a 显示全部包括隐藏文件

-A 显示全部文件或隐藏文件,但不包括 . 和..

-d 仅列出目录本身,而不是列出目录内的文件数据

-h 友好显示文件大小(human,人性化)

-R 递归显示该目录及该目录的子目录下的所有内容

-t 已时间顺序显示

-r 倒序显示

--color 显示颜色

-S 以文件容量大小排序

5)通配符

符号效果
匹配一个字符 f?.txt
* 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10} 1到10
{a..z} a b c ...z
{A..Z} A B C .....Z
[123]([此处括号里值代表一个字符]) 取其中之一有就显示没有也无所谓
[a-z]单个小写字母 范围需要注意
[0-9]单个数字 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示 a-z
[[:upper:]] 大写字母表示 A-Z
[^zhou] 匹配列表中的所有字符以外的字符
[[:digit:]] 任意数字,相当于0-9
[[:alpha:]] 任意字母

6)alias

alias   命令别名 = '命令'

unalias 别名命令                 删除别名

\加别名命令 (显示原始命令)

7)du

du 【选项】【文件或目录...】

-a  统计磁盘空间占用时包括所有的文件

-h  以更人性化的方式KB 显示出统计结果

-s  只统计所占用空间总的大小,而不是统计每个子目录和文件的大小

--max-depth = n (-d 1)  最大显示第几层 (第一层子文件)

--exclude  不计入统计

四.创建文件夹

1)创建目录 mkdir

 mkdir -p 递归创建 没有文件夹 会自动递归创建 

 mkdir 【选项】 目录位置及名称

 2)touch

 touch 新文件...(可为空)  文件名   不存在就是新建空文件

 touch 不会破坏已有文件     刷新文件

 3)硬连接与软连接文件

 硬连接 同一个文件取不同的名或者叫多个名字  不支持文件夹,创建一个连接数+1 , 多路径访问

 软连接 类似于windows里快捷方式,软连接,符号连接,会指向原来的文件 (应该使绝对路径) . /opt /mnt

 ln (link)

 ln[-s] 源文件 或 目录 ... 链接文件或者目标位置

 加s是软连接  符号连接

对比项 硬链接 软连接
本质 本质是同一个文件 本质不是一个文件
inode 相同 不同
连接数 创建新的硬链接,连接数会增加,删除硬链接,连接数减少 删除,新建都不会改变
文件夹   不支持 支持
删除原文件 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同 源文件的路径长度

4)复制

cp 备份

1.   cp[选项]...源文件  目标  相当改名复制  文件夹  文件相当于  改名字另存为

2.   cp[选项]...源文件...文件夹  多个源文件只能复制到文件夹

3.选项  

-f  强制复制,不提醒

-i  覆盖目标同名文件或目录时提醒用户确认

-p 复制时保持原文件的权限、属主及时间标记等属性不变

-r 复制目录时必须使用此选项

-a 完整保留所有的信息

-v 可视化

-u 相当于增备,差异备份(只对文件夹起作用)

5)移动

mv [选项] ... 源文件或目录... 目标文件或者单个文件

移动 或者改名

-f 强行覆盖

-i 交互移动

-n 如果目标文件已经存在,则不会覆盖移动,而且不询问用户

-v 显示文件或者目录的移动过程

6)删除文件

rm [选项] 要删除的文件或者目录

-f 强制

-i 交互

-r 递归

7)查找文件

1.locate

2.find

格式: find 【查找路径】 【option】 ... 【查找条件】 【处理动作】

find /

查找路径:指定具体目标路径:不指定为默认为当前目录

查找条件:可以对文件名 大小 类型 权限进行查找:默认为找出制定路径下的所有文件

处理动作:符合条件的文件做操作,默认输出至屏幕

常用可选项

-name   根据目标名字查找

-size     根据目标大小查找——+  -  kB MB GB

-user     根据是否属于目标用户进行查找

-type     根据文件类型进行查找

-inum    根据文件inode 号查找

-perm   按文件权限查找

-maxdepth level 将你的文件已分级的形式查找

-mindepth level  同上

-mtime 根据时间戳time天  min分钟

 

8)程序查找which

which 命令 |程序名

which ls

 

标签:文件,Shell,...,源文件,查找,命令行,格式,目录,man
From: https://www.cnblogs.com/tsumiki/p/17563072.html

相关文章

  • shell脚本中对数组的操作汇总
    方法用例备注创建数组arr=(val_1val_2val_3)数组间的元素以空格分割。创建空数组arr_new=()访问数组arr=(val_1val_2val_3)echo"${arr[0]}"数组的索引从“0”开始,在这个例子中,脚本会输出“val_1”。访问数组的长度arr=(val_1val_2val_3)e......
  • springboot——yaml格式
    ......
  • access 批量设置条件格式
    PrivateSubForm_Load()ForEachtempInMe.ControlsIfNotTypeOftempIsLabelThentemp.OnClick="=GetVal()"NextAddConditionalFormattingToFieldsEndSubFunctionGetVal()Me.Tag=Nz(Me.单据编号,"")'设......
  • .net 6 winform启动器:调用CMD命令行执行dotnet命令启动.net core程序并将控制台输出日
    背景历史遗留问题,生产车间运行的一个.netcoresignalr程序使用命令行程序启动,经常由于生产人员误操作将光标停留在控制台上导致程序假死,丢失部分测试数据,车间随便找了一台win10系统部署的程序,源代码遗失,电脑也是阉割版,原开发者已经离职多年无人敢动,于是想了一个歪门邪道发方......
  • shell subsitute替换分割符
     sed awk - s - 是替换(substitute)命令- #keyword# -匹配 keyword 字符串,使用`#`作为分隔符- #replacement1# -将匹配到的字符串替换为 replacement1- g -全局(global)标志,表示替换所有匹配,不止替换第一处使用`#作为分隔符的好处是,可以避免正斜杠/......
  • Shell脚本学习:提升系统运维效率的利器
    Shell脚本:提升系统运维效率的利器Day1:Shell基础入门学习目标学习内容1.Shell是什么?2.基本Shell命令行操作3.练习任务Shell脚本:提升系统运维效率的利器自动化任务:Shell脚本能够帮助系统管理员自动化繁琐的重复任务,如备份数据、清理临时文件等,从而节省时间和精力,并降低出错......
  • Go语言读取网上Json格式的天气预报数据例子
    天气预报接口使用的是:http://www.weather.com.cn/data/sk/101010100.html这里的Json数据如下:{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"1......
  • 时间戳格式化生成毫秒级
    std::stringmillisecond_to_str(conststd::int64_t&milliseconds){std::chrono::millisecondsms(milliseconds);std::chrono::time_point<std::chrono::high_resolution_clock,std::chrono::milliseconds>t1(ms);std::time_tt=std::chrono......
  • 图片格式介绍
    BMP,JPG(orJPEG),PNG,和RAW是四种常见的图像文件格式,它们在图像存储和使用方面有一些区别。下面是它们之间的主要区别:1.BMP(Bitmap):BMP是一种无损的图像文件格式,意味着图像质量不会因为文件大小的压缩而降低。它使用像素映射来存储图像数据,可以包含多种颜色和透明度。......
  • hive parquet格式不能为空
    HiveParquet格式不能为空在大数据领域中,Hive是一种常用的数据仓库工具,用于处理和分析大规模数据集。HiveParquet格式是Hive中一种常用的数据存储格式。本文将介绍HiveParquet格式以及为什么它不能为空。什么是HiveParquet格式?HiveParquet格式是一种列式存储格式,它使用了Apa......