常用shell命令归纳总结
一.首先,什么是shell
shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。
总括,shell是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 和Shell Script不是一回事,通常我们说的都是Shell Script。
由定义可知, shell相当于经过装饰的命令行,和命令行一样,都能操作linux。但是shell是面向过程的,相当于有了一定的逻辑和过程,而命令行只是单一的操作。
二.常用命令
1. telnet
语法:telnet 主机名 或 telnet IP地址telnet 130.129.21.250
2.ll 文件或目录处理:列出文件或目录下的文件名。
语法: ls [-atFlgR] [name]
ls 列出目前目录下的文件名。
ls -a 列出包括以 .开始的隐藏文件的所有文件名。
ls -t 依照文件最后修改时间的顺序列出文件名。
ls -F 列出当前目录下的文件名及其类型。以/ 结尾表示为目录名,以* 结尾表示为可执行文件,以@ 结尾表示为符号连接。
ls -l 列出目录下所有文件的权限、所有者、文件大小、修改时间及名称。
ls -lg 同上,并显示出文件的所有者工作组名。
ls -R 显示出目录下以及其所有子目录的文件名。
3.cd 改变工作目录
语法:cd [name]name:目录名、路径或目录缩写。cd - //返回到原来的目录
4.cp: 复制文件
语法: cp [-r] 源地址 目的地址cp -r dir1 dir2 复制整个目录。
5.mv : 移动或更改文件、目录名称
语法:mv 源地址 目的地址
6.mkdir: 建立新目录
语法: mkdir 目录名
7.rm 和rmdir: 删除目录
语法: rmdir 目录名 或 rm 目录名rmdir dir1 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除。
rm -r dir1 删除目录 dir1及其子目录下所有文件
8.rm: 删除文件
rm file? 删除文件名中有五个字符且前四个字符为file 的所有文件。rm f* 删除文件名中以 f 为字首的所有文件。
9.pwd: 列出当前所在的目录位置
10.cat: 查看文件内容
cat file1 以连续显示方式,查看文件名 file1 的内容。
11.more:分页查看文件内容
语法: more 文件名 或 cat 文件名 | more
12.查看目录所占磁盘容量
语法: du [-s] 目录du dir1 显示目录 dir1 的总容量及其子目录的容量(以KB 为单位)。
du -s dir1 显示目录 dir1 的总容量(以KB 为单位)。
du -sh dir1 显示目录 dir1 的总容量(以M 为单位)。
13.文件权限的设定
(1)改变文件或目录的读、写、执行权限
语法:chmod [-R] mode namename :文件名或目录名chmod -R 777 xml.go
(2)改变文件或目录的所有权
语法:chown [-R] 用户名 namechown vagrant xml.go
14. groups: 检查自己所属的工作组名称
15. touch:改变文件或目录的最后修改时间(没啥意义)
语法:touch name
16.grep "关键字" 文件名: 查询关键字在文件中的位置
grep string file
17.查找文件或命令的路径
语法:whereis command 显示命令的路径。
语法:which command 显示命令的路径,及使用者所定义的别名。
语法:whatis command 显示命令功能的摘要。sudo find / -name xml.go //查找文件的路径
18.比较文件或目录的内容
语法:d i ff [-r] name1 name2
name1 name2:必须同时为文件名或目录名。diff file1 file2 比较文件file1 与 file2 内各行的不同之处。
diff -r dir1 dir2 比较目录 dir1 与 dir2 内各文件的不同之处
19.进程控制
(1)查看系统中的进程
语法:ps [-aux]
ps或ps -x 查看系统中,属于自己的进程。
ps -au 查看系统中,所有用户的进程。
ps -aux 查看系统中,包含系统内部的及所有用户的进程。
(2)结束或终止进程
语法:kill [-9] PID
(3)在后台执行进程的方式(不常用)
语法:命令 &
(4)jobs: 查看正在后台中执行的进程
20.history: 查看命令记录表的内容
!!: 重复执行前一个命令
! n: n代表记录表的命令编号
! cat : 重复前面执行过的以 cat 为起始字符串的命令。
显示前一个命令的内容
语法: ! !:p
21.文件的压缩
(1). 压缩文件
语法:compress 文件名 压缩文件
语法:compressdir 目录名 压缩目录
(2). 解压缩文件
语法:uncompress 文件名 解压缩文件
语法:uncompressdir 目录名 解压缩目录
22.| :管道命令的使用
语法:命令1 | 命令2 将命令1的执行结果送到命令2,做为命令2的输入。
23.输入/输出控制
(1)标准输入的控制
mail -s “mail test” 电子邮件地址 < file1 将文件file 当做信件的内容,主
题名称为 mail test,送给收信人。
mail -s "mail test" xiaowangli@huashenggroups.com < xml.go
(2)标准输出的控制
语法:命令 > 文件 将命令的执行结果送至指定的文件中。ls -l > list 将执行 “ls -l” 命令的结果写入文件list 中。语法:命令>! 文件 将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。ll >list.txt
tail -30 xml.go>list2.txt
结果:list.txt内容
24.awk: 非常有用的一个文本处理命令,逐行运行,默认使用空格分割,-F
表示分割的样式
25,shell 语法
if then else : shell 文件
例子1:
#判断文件是否存在#!/bin/bashif [ -f Af.php ];then
echo 'file exist'
else
echo 'file not exist'
fiexit 0
执行shell文件
bash test.sh
结果:
例子2:根据输入判断正负数
注意:[ ] 内两边要空一格.关键词左右都要空一格
#!/bin/bash
#提示用户输入一个值
echo -n "请输入一个数字:"#保存用户输入的值到num中
read num#[ ] 内两边要空一格
if [ "$num" -gt 0 ];then
echo '正数'
elif [ "$num" -lt 0 ];then
#elif [ "$num" -lt 0 ];then
echo '负数'
else
echo '零'
fiexit 0
例子3:case 语句
#!/bin/bashecho -n "你单身吗? (y/n)"read valcase $val in Y|y)
echo "我们约会吧"
;;N|n)
echo "不约,再见"
;;*)
echo "输入有误"
;;esacexit 0
结果:
例子4:ls 列出当前目录中文件列表
#!/bin/bash#将结果存在CUL_DIR中
CUR_DIR=`ls` #此处不是单引号,而是`` 撇号#显示ls 的结果
echo $CUR_DIRfor v in $CUR_DIR
do
if [ -f $v ];then
echo "FILE: $v"
fi
doneexit 0
计算输出 1-10 之间数字的总和
#!/bin/bashsum=0
for ((i=0;i<10;i++))
do
((sum=$sum+$i))
doneecho "sum=$sum"exit 0
例子5:使用 break 和 continue 控制循环
break 命令允许跳出循环
continue 命令类似于 break 命令,只有一点重要差别,它不会跳出循环,只是跳过这个循环步。:[break 应用] 从 0 开始逐步递增,当数值等于 5 时跳出本次循环,等于10时停止递增。
#!/bin/bash#设置起开始值
val=0while true
do
if [ "$val" -eq "5" ];then
#如果是val=5,则挑出循环
((val++))
continue;
elif [ "$val" -eq "10" ];then
break;
else
#输出值
echo "val:$val"
#将数值加1
((val++))
fi
doneexit 0
结果:
数组:
例子6:
数组定义:
- array=(10 20 30 40 50) 一对括号表示是数组,数组元素用 “空格” 符号分割开。引用数组时从序号 0 开始。
- var="10 20 30 40 50"; array=($var)
- 除了上面的定义方式外,也可以单独定义数组:
array[0]=10
array[1]=20
array[2]=30
array[3]=40
array[4]=50
数组操作:
#!/bin/bash
array=(10 20 30 40 50)#显示数组中所有元素
echo "数组列表:"
echo ${array[*]}
echo ${array[@]}#显示数组第2项
echo "显示数组第二项"
echo ${array[1]}#a显示数组长度
echo "显示数组长度:" ${#array[*]}
echo ${#array[@]}#输出数组的第1-3项
echo "数组的第1-3项:" ${array[@]:0:3}#将数组中的0替换成1
echo "将数组中的0替换成1" ${array[@]/0/1}#删除数组的第2项
#unset 仅只是清除array[1]的值,并没有将array[1]删除掉
echo '删除数组的第2项'
unset array[1]
echo ${array[@]}exit 0
函数:
#!/bin/bashfunction foo()
{#定义局部变量ilocal i=0#定义局部变量total,传入foo 的参数总数local total=$##输出参数总数echo "total param=$total"#输出传入foo的每一个参数for val in $@do((i++))echo "$i -- val= $val"done#返回参数总数
return $total}foo
foo param1 param2 param3
echo "return value=$?"exit 0
~
数值运算
数值元算主要有4种实现方式:(())、let、expr、bc。
工作效率:(()) == let > expr > bc**
(())和let是bash内建命令,执行效率高;而expr和bc是系统命令,会消耗内存,执行效率低。
(())、let和expr只支持整数运算,不支持浮点运算;而bc支持浮点运算。
#!/bin/bash
#4 种方式计算3*(2+5)#1.(())
val1=$((3*(2+5)))
echo "val1=$val1"#2.let
let "val2=3*(2+5)"
echo "val2=$val2"#3.expr
val3=`expr 3 \* \(5+2\)`
echo "val3=$val3"#4.bc
val4=`echo "3*(5+2)"| bc`
echo "val4=$val4"
第3,4种有问题
字符运算
#!/bin/bashstr='hello world'echo "显示字符串:" ${str}echo '显示字符串长度:' ${#str}echo '提取world:' ${str:6}echo '提取or:' ${str:7:2}echo '删除hello: '${str#hello}echo '删除world: ' ${str%world}echo '将所有的l替换为m: '${str//l/m} #此处l 前两个/,一个的话只会替换一个lexit 0
bash 调试
bash [-nvx] scripts.sh
- 选项与参数:
- -n: 不要执行 script,仅查询语法的问题;
- -v: 再执行 sccript 前,先将 scripts 的内容输出到屏幕上;
- -x: 将使用到的 script 内容显示到屏幕上,这是很有用的参数!
例子:想要执行 bash 脚本,并查看 bash 的调用流程,可以通过以下命令:bash -x test.sh
echo [-neE] string
选项与参数:
- -n: 输出内容之后,不换行。默认是输入内容之后,换行。
- -e: 开启反斜线“\”转义功能
- -E: 开启反斜线“\”转义功能(默认)。
- 例子:输出 please input a number: 之后不换行
bash 内建指令
echo
在屏幕上显示出指定的字串read
从标准输入设备读入一行,分解成若干字,赋值给 bash 程序内部定义的变量alias
别名,alias l='ls -al'export
export 可以把 bash 的变量向下带入子 bash (即子 bash 中可以使用父 bash 的变量),从而让子进程继承父进程中的环境变量。但子 bash 不能用 export 把它的变量向上带入父 bash。exec
当 bash 执行到 exec 语句时,不会去创建新的子进程,而是转去执行指定的命令,当指定的命令执行完时,该进程(也就是最初的 bash)就终止了,所以 bash 程序中 exec 后面的语句将不再被执行。.
使 bash 读入指定的 bash 程序文件并依次执行文件中的所有语句。exit
退出 Shell 程序,在 exit 之后可有选择地指定一个数位作为返回状态。
参考:linux的命令行操作和shell的区别
bash 命令和语法
常用shell命令归纳总结相关推荐
- hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令
HBase之常用Shell命令 1.进入 HBase客户端命令操作界面 2.查看帮助命令 3.查看当前数据库中有哪些表 4.创建一张表 创建user表,包含info.data两个列族 或者 5.添加数 ...
- 八、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(中)
@Author : Runsen @Date:2020/9/11 文章是Runsen在Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到C ...
- 七、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(上)
@Author : Runsen @Date:2020/9/11 文章是Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到CSDN中,这里 ...
- Hadoop之HDFS常用Shell命令
Hadoop之HDFS常用Shell命令 启动Hadoop集群 sbin/start-dfs.shsbin/start-yarn.sh -help:输出这个命令参数 hadoop fs -help r ...
- Windows常用shell命令大全
From: http://blog.csdn.net/yunzhongfeiniao/article/details/6564577 基于鼠标操作的后果就是OS界面外观发生改变,就得多花学习成本.更主 ...
- Linux基础(2)--Linux常用shell命令
Linux常用shell命令 显示命令 查看当前工作路径 切换目录 清屏 显示和配置网络属性 新建文件夹 删除命令 压缩和解压命令 拷贝命令 帮助命令man 显示命令 – 命令:ls – 参数:a,l ...
- Linux 基础操作、常用shell命令、vi常用命令、man帮助手册
Linux 基础操作.常用shell命令.vi常用命令.man帮助手册 一.简述 记录简单的Linux 基础操作.常用shell命令.vi编辑器常用命令.man帮助手册的使用. 二.Linux 基础操 ...
- hadoop fs –ls /hbase 无内容_Hadoop学习---HDFS的常用shell命令详解
注意:访问hdfs系统的指令 hadoop dfs --- 已过时 hadoop fs -- 使用范围更大 hdfs dfs --范围相对较小hadoop fs 和 hdfs dfs之间没有太大的区别 ...
- Hadoop2常用Shell命令
1. FS Shell 1.1 简介 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 所有的的FSshell命令使用URI路 ...
- Linux Android 常用shell命令汇总 不断更新
文章目录 @[toc] 01 前言 02 正文 01 前言 Linux shell命令应该算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天我在我们的项目上需要做一个功能,根据进 ...
最新文章
- happy 99 (转载)
- L3-006 迎风一刀斩 (30 分)-PAT 团体程序设计天梯赛 GPLT
- Apache 配置SSL网站
- java实验十三io_Java语言基础13—IO
- 清明上河图30亿像素_清明上河图高清下载|
- 深度Linux操作系统使用体验
- 群晖Nas通过jellyfin搭建本地影音库详细全过程(一):通过群晖系统docker容器安装jellyfin影音库服务器
- dev chart 绘制图形
- Android 智能手机程序使用历史记录查询
- 活久见:都 2203 年了,你还在使用 word 调试 API
- 深踩 AndroidStudio 缓存的坑
- python filter函数_python 内置函数filter
- Centos6.4忘记密码 单机下修改root密码
- 如何在C加加的面向对象写游戏 我的世界
- 带有播放列表的网页播放器
- 不为人知的腾讯创业史---蜗牛创业网
- 百汇BCR:通过K线可以判断出外汇市场有哪些形态?
- sudo su后获取不到JAVA_HOME环境变量的解决方案
- 什么是域名?如何注册域名?
- C语言 统计一篇英文短文中单词的个数
热门文章
- 2022年武汉科技大学成人高等学历教育招生简章--学历提升、高起专、专升本
- 帆软日期格式转换_日期和时间函数- FineReport帮助文档 - 全面的报表使用教程和学习资料...
- php 判断来访IP地址是国内还是国外的
- 垃圾处理设备远程调试远程运维方案
- 在app上查看开发代码
- 等宽字体与非等宽字体_我最喜欢的等宽字体
- Process v3.5发布了!调节中介分析利器 SPSS process macro 插件
- 华为笔记本电脑安装 Linux 操作系统之Manjaro(手把手教学)
- 64位 mxcomponent_三菱MX Component 4.16S下载
- 2022年上半年软件设计师上午真题及答案解析