bash 基础命令
bash的基础特性(): () 命令历史
history
环境变量:
HISTSIZE:命令历史记录的条数;
HISTFILE:~/.bash_history;
HISTFILESIZE:命令历史文件记录历史的条数; history -d OFFSET
-c
history #: 显示历史中最近的#条命令;
-a: 手动追加当前会话缓冲区的命令历史至历史文件中; 调用历史中的命令:
!#: 重复执行第#条指令;
!!:
!string 调用上一条命令的最后一个参数:
!$:
ESC, .
Alt+. 控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”;
ignorespace:忽略所有以空白开头的命令;
ignoreboth:ignoredups, ignorespace; 修改环境变量值的方式:export 变量名="值"
变量赋值:把赋值符号后面的数据存储于变量名指向内存空间; () 命令补全
bash执行命令:
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令; 直接补全:Tab,用户给定的字符串只有一条惟一对应的命令;
以用户给定的字符串为开头对应的命令不惟一,则再次Tab会给出列表; () 路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名;
如果惟一:则直接补全;
否则:再次Tab,给出列表; () 命令行展开
~: 展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi () 命令的执行结果状态
成功
失败 bash使用特殊变量$?保存最近一条命令的执行状态结果:
:成功
-:失败 程序执行有两类结果:
程序的返回值;
程序的执行状态结果; 目录管理类命令:
cd, pwd, ls mkdir, rmdir, tree mkdir [options] /path/to/somewhere
-p: 存在于不报错,且可自动创建所需的各目录;
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限; [root@localhost games]# mkdir -pv /{,}/{,}
mkdir: 已创建目录 ""
mkdir: 已创建目录 "1/2"
mkdir: 已创建目录 "1/2/4"
mkdir: 已创建目录 "1/2/5"
mkdir: 已创建目录 "1/3"
mkdir: 已创建目录 "1/3/4"
mkdir: 已创建目录 "1/3/5"
[root@localhost games]# mkdir -pv {x,y}_{,}
mkdir: 已创建目录 "x_1"
mkdir: 已创建目录 "x_2"
mkdir: 已创建目录 "y_1"
mkdir: 已创建目录 "y_2"
tree:
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径; rmdir:删除空目录
rmdir [OPTION]... DIRECTORY...
-v: 显示过程; 文本文件查看类命令:
cat, tac
more, less, tail, head more
more [OPTIONS...] FILE...
-d: 显示翻页及退出提示 less
less [OPTIONS...] FILE... head
head [OPTION]... [FILE]...
-c #: 指定获取前#字节
-n #: 指定获取前#行
-#: tail
tail [OPTION]... [FILE]...
-c #: 指定获取后#字节
-n #: 指定获取后#行
-#:
-f: 跟踪显示文件新追加的内容; 文件的时间戳管理工具:
touch 文件:metadata, data
查看文件状态:stat 三个时间戳:
access time:访问时间,简写为atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变 touch命令:
root@localhost games]# stat /etc/rc.d/init.d/functions
文件:"/etc/rc.d/init.d/functions"
大小:18104 块:40 IO 块:4096 普通文件
设备:fd00h/64768d Inode:269800 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:bin_t:s0
最近访问:2019-03-13 06:31:06.556356472 -0400
最近更改:2018-01-02 11:29:40.000000000 -0500
最近改动:2019-02-26 18:43:45.841001981 -0500
创建时间:-
[root@localhost games]#
touch [OPTION]... FILE...
-a: only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c: 如果文件不存,则不予创建 文件管理:
cp, mv, rm 复制命令:cp
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE... cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中;
如果目录存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中;
此时建议为cp命令使用-i选项;
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中; cp SRC... DEST
SRC...:多个文件
DEST必须存在,且为目录,其它情形均会出错; cp SRC DEST
SRC是目录:
此时使用选项:-r 如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中; 常用选项:
-i:交互式
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR --preserv=all
-d:--no-dereference --preserv=links
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
-p: --preserv=mode,ownership,timestamp
-v: --verbose
-f: --force mv: move,移动文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE... 常用选项:
-i: 交互式
-f: 强制 rm: remove,删除
rm [OPTION]... FILE... 常用选项:
-i: 交互式
-f: 强制删除
-r: 递归 rm -rf 文本编辑器:nano
全屏编辑器 、命令别名(alias)
通过alias命令实现:
() alias
显示当前shell进程所有可用的命令别名;
() alias NAME='VALUE'
定义别名NAME,其相当于执行命令VALUE; 注意:在命令行中定义的别名,仅对当前shell进程有效;如果想永久有效,要定义在配置文件中;
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc Note: 编辑配置给出的新配置不会立即生效;
bash进程重新读取配置文件:
source /path/to/config_file
. /path/to/config_file
撤消别名:unalias
unalias [-a] name [name ...] Note: 如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND";
[root@localhost games]# alias cdnet='cd /etc/sysconfig/network-scripts/'
[root@localhost network-scripts]# unalias cdnet
、glob (globbing)
bash中用于实现文件名“通配” 通配符:*, ?, [] () *
任意长度的任意字符
a*b:
aab, ab, a123b,
abc
() ?
任意单个字符
a?b:
aab
ab, a12b, abc () []
匹配指定范围内的任意单个字符
[-]
[a-z]:不区分字符大小写 () [^]
匹配指定范围外的任意单个字符
[^-] 专用字符集合:
[:digit:]:任意数字,相当于0-
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:
[:punct:]:标点符号 3、bash的快捷键 Ctrl+l: 清屏,相当于clear命令; Ctrl+a:跳转至命令开始处;
Ctrl+e:跳转至命令结尾处; Ctrl+c:取消命令的执行; Ctrl+u: 删除命令行首至光村所在处的所有内容;
Ctrl+k: 删除光标所在处至命令行尾部的所有内容; 4、bash的的I/O重定向及管道 程序:指令+数据
读入数据:Input
输出数据:Output 打开的文件都有一个fd: file descriptor (文件描述符) 标准输入:keyborad, 0
标准输出:monitor, 1
标准错误输出:monitor, 2 I/O重定向:改变标准位置 输出重定向:COMMAND > NEW_POS, COMMAND >> NEW_POS
>:覆盖重定向,目标文件中的原有内容会被清除;
>>: 追加重定向,新内容会追加至目标文件尾部; # set -C: 禁止将内容覆盖输出至已有文件中;
强制覆盖:>|
# set +C: 2>: 覆盖重定向错误输出数据流;
2>>: 追加重定向错误输出数据流; 标准输出和错误输出各自定向至不同位置:
COMMAND > /path/to/file.out 2> /path/to/error.out 合并标准输出和错误输出为同一个数据流进行重定向:
&>:覆盖重定向
&>>:追加重定向 COMMAND > /path/to/file.out 2> &1
COMMAND >> /path/to/file.out 2>> &1
COMMAND > /dev/null 2>&1
2>&1 的意思就是将标准错误重定向到标准输出。这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null
输入重定向:< tr命令:转换或删除字符
tr [OPTION]... SET1 [SET2]
[root@localhost /]# tr abc ABC
hello
hello
atest
Atest
abc33
ABC33
cat anaconda-ks.cfg |head -10 |tr 'a-z' 'A-Z'
#前10行转换为大写
HERE Documentation:<<
# cat << EOF
# cat > /path/to/somefile << EOF 管道:
COMMAND1 | COMMAND2 | COMMAND3 |... Note:最后一个命令会在当前shell进程的子shell进程中执行; tee命令: 当前屏幕输出,然后重定向到一个文件
tee [OPTION]... [FILE]... [root@localhost ~]# ping www.baidu.com |tee ping.out 文本处理工具:wc, cut, sort, uniq wc命令:
wc [OPTION]... [FILE]...
-l: lines
-w: words
-c: characters cut命令:
cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
[root@localhost ~]# cut -d: -f1 /etc/passwd #冒号为分隔符,显示第一列
混合使用:1-3,7
--output-delimiter=STRING sort命令:
sort [OPTION]... [FILE]...
-f: 忽略字符大小写
-r: 逆序
-t DELIMITER: 字段分隔符
-k #:以指定字段为标准排序
-n: 以数值大小进行排序
-u: uniq,排序后去重 cut -d: -f1 /etc/passwd #排序,: 为分隔符。指定第一列 uniq命令:
uniq [OPTION]... [FILE]...
-c: 显示每行重复出现的次数;
-d: 仅显示重复过的行;
-u: 仅显示不曾重复的行; Note: 连续且完全相同方为重复
bash 基础命令的更多相关文章
- cmd 与 bash 基础命令入门
身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>∀<) cmd 与 bash 基础命令入门 简介 CMD 基础命令 ...
- GITHUB中GIT BASH基础命令行
PS:转自https://www.cnblogs.com/WangXinPeng/p/8016293.html 1.常用命令行工具: ①cmd ②powershell ③git ba ...
- Bash基础——命令替换
参考:Linux 下Shell 脚本几种基本命令替换区别 Command substitution 命令替换Command substitution https://www.jb51.net/arti ...
- Linux就该这样学--之常用linux命令及bash基础
Linux就该这样学--之常用linux命令及bash基础 Linux命令 管道 重定向 环境变量 常用命令 常用系统工作命令 系统状态检测命令 工作目录切换命令 文本文件编辑命令 文件目录管理命令 ...
- Linux安全基础:shell及一些基础命令
1.什么是shell?Shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash. 2.shell的分类(1)bash bash shell 是 Bourn ...
- Linux(三)——Unix&Linux 的基础命令
Linux(三)--Unix&Linux 的基础命令 快捷键 Ctl-A 光标移动到行首 Ctl-C 终止命令 Ctl-D 注销登录 Ctl-E 光标移动到行尾 Ctl-U 删除光标到行首的所 ...
- Docker 容器安装及常用基础命令
为什么用docker 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. Docker 在如下几个方面具有较大的优势: 更快速的交付和部署 Docker在整个开发周期都可以 ...
- 【Linux】常见基础命令之系统操作
linux现在基本上已成为面试的必考题目,特此总结一些常用的基础命令. cd:切换目录 lilip@ubuntu:~$ cd /home/lilip/test pwd:打印当前目录 lilip@ubu ...
- Linux最常用的基础命令
Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存64bit=内存的最大 ...
随机推荐
- 解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题
我们基于 Razor Class Library 实现了自定义错误页面的公用类库(详见之前的随笔),但是在实际使用时发现如果在 middleware 中发生了异常,则不能显示自定义错误页面,而是返回默 ...
- Python全栈-magedu-2018-笔记1
第一章 - Python 环境搭建 操作系统准备 准备Linux最小系统即可. 如果在虚拟机中克隆,MAC地址会变. 这里使用CentOS 6.5+ Pyenv 安装 安装git yum instal ...
- tableview Footerview有多余的间距
调整footerView的高度 UIView *footerV = [[UIView alloc] initWithFrame:CGRectMake(, , Main_Screen_Width, )] ...
- KXO151 Programming & Problem Solving
Page 1 of 9KXO151 Programming & Problem SolvingAIEN-SOU - 2019Assignment 2Deadline for Submissio ...
- 缓存机制 ehcache、redis
本文主要记录ehcache和redis实现缓存(redis版本号:5.0.3) 一.ehcache 1.ehcache:用来管理Java中缓存的轻量级工具,其核心通过CacheManager使用,一般 ...
- java -cp通配符
JDK6支持java -cp后面跟通配符'*',试了一下发现还是需要注意: 错误方式(Wrong way): java -cp /data/apps/lib/*.jar com.chinacache ...
- python练习题-day17
1.计算n!,例如n=3(计算321=6), 求10! 2.已知一个数列:1.1.2.3.5.8.13.....的规律为从3开始的每一项都等于其前两项的和,这是斐波那契数列.求满足规律的100以内的所 ...
- 改造一下jeecg中的部门树
假装有需求 关于 jeecg 提供的部门树,相信很多小伙伴都已经用过了,今天假装有那么一个需求 "部门树弹窗选择默认展开下级部门",带着这个需求再次去探索一下吧. 一.改造之前的部 ...
- 了解 yarn 、npm、nodejs
一.前言 针对即将上线的 jeecg-boot 做一些准备. 二.了解系列 1.了解 nodejs Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrom ...
- 马拉车算法,mannacher查找最长回文子串
作用: 在线性时间内找到一个字符串的最大回文子串 原理: 奇偶变换:为处理字符串方便,现将给定的任意字符串进行处理,使所有可能的奇数/偶数长度的回文子串都转换成了奇数长度. 具体就是在每个字符的两边都 ...