Linux

常用Linux命令与Shell脚本
本文汇总了常用的Linux文件管理、文档编辑、磁盘管理等命令,并介绍了Shell脚本的基础知识,包括变量、数据类型、流程控制等内容。

额,最近有空总结一下经常用到的以及容易混淆的命令


1.文件管理类

find:find命令用来在指定目录下查找文件

cat:命令用于连接文件并打印到标准输出设备上

more:命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读

less:命令用于查看文件,而且在查看之前不会加载整个文件,可前可后

tail:文件有更新时,tail会自己主动刷新,确保你看到最新的档案内容

tee:用于读取标准输入的数据,并将其内容输出成文件。

ln:为某一个文件或目录在另外一个位置建立一个同步的链接(注意软连接和硬链接的区别)

chmod:可以控制文件如何被他人所调用

chown:将文件的拥有者改为指定的用户或组

touch:该命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。(额,我承认吧!我就是一直用这个命令来创建文件的)

mkdir:用于创建文件目录

mv:为文件或目录改名、或将文件或目录移入其它位置

cp:用于复制文件或目录(注意用户使用指令复制目录时,必须使用参数-r)

rm:用于删除一个文件或者目录(注意啊!用时不小心就是灾难啊!)


2.文档编辑

sort:对文本文件的内容,以行为单位来排序

look:用于英文单字的查询

grep:用于查找文件里符合条件的字符串

rgrep:用于递归查找文件里符合条件的字符串

额,这类命令用的较少,暂时把vi命令也归过来吧

vi:打开或新建文件,并将光标置于第一行

vi +n :打开文件,并将光标置于第n行首

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

:w 保存当前文件

:q 退出vi

:q! 不保存文件并退出vi


3.磁盘管理

cd:切换当前工作目录(最常用到的)

pwd:用于显示工作目录

ls:用于显示指定工作目录下之内容

tree:用于以树状图列出目录的内容


4.系统管理

kill:杀死进程

ps : 用于显示当前进程的状态

pstree:将所有行程以树状图显示

top:命令用于实时显示 process 的动态。

screen:用于多重视窗管理程序

sudo:系统管理者的身份执行指令,由 sudo 所执行的指令就好像是 root 亲自执行

su:更为其他使用者的身份,除 root 外,需要键入该使用者的密码

who:命令用于显示系统中有哪些使用者正在上面

free:命令用于显示内存状态

5.网络通讯

ping:命令用于检测主机

dig:命令主要用来从 DNS 域名服务器查询主机地址信息


接下来稍微扩展一点,介绍一些概念

管道符:“|”

作用:是将上一个命令的标准输出当作后一个命令的标准输入,格式为“命令1|命令2”

重定向:

> 输出重定向到一个文件或设备 覆盖原来的文件

>! 输出重定向到一个文件或设备 强制覆盖原来的文件

>> 输出重定向到一个文件或设备 追加原来的文件

< 输入重定向到一个程序


shell

shell的意思是“壳”,它是一个c语言编写的程序,它主要是用来连接用户和操作系统内核的服务的。

当然shell脚本想要跑起来也需要一个解释器,将其转化为操作系统可以理解的语言,bash被用的最多,我们就也选择bash吧!

老规矩我们先来一个hello world吧!


代码块
Bash
复制代码
1
#!/bin/bash复制代码
2
echo "Hello World"复制代码

稍微解释一下#!是个标记,来告诉我们这个文件中的代码需要的解释器

要想让这个程序跑起来需要两点:1.具有执行权限2.输入执行命令

加上执行权限

代码块
Bash
复制代码
1
chmod +x ./a.sh 复制代码

执行代码:


代码块
Bash
复制代码
1
./a.sh复制代码

需要注意的是现在的脚本程序的位置,如果不加./ linux会去PATH中寻找,所以./是告诉系统脚本程序的位置。


1.变量:英文字母,数字和下划线,首个字符不能以数字开头

需要注意的是变量名和等号之间不能有空格

变量使用时需要在前面加$


代码块
Bash
复制代码
1
#!/bin/bash复制代码
2
t='hello world'复制代码
3
echo $t复制代码


readonly将变量定义为只读变量


代码块
Bash
复制代码
1
#!/bin/bash复制代码
2
t='hello world'复制代码
3
readonly t复制代码
4
t='you'复制代码
5
echo ${t}复制代码


unset删除变量,需要注意的是该命令不能删除只读变量

shell的变量可以简单的分为:局部变量(只在当前shell实例中有效),环境变量(所有的shell程序都可以访问),shell变量

2.数据类型

数字,字符串

双引号,单引号都可以用来定义字符串不过建议都用双引号,因为双引号里可以有变量,也可以出现转义字符

介绍一下字符串的几种常见操作

a.获取长度 b.获取子字符串 c.字符串查找


3.数组

用括号来表示数组,用"空格"符号分割开,元素的下标由 0 开始编号获取数组中的元素要利用下标


代码块
Bash
复制代码
1
#!/bin/bash复制代码
2
string=(a b c d)复制代码
3
echo ${string[0]}复制代码
4
echo ${string[1]}复制代码
5
length=${#string[*]}复制代码
6
echo ${length}复制代码


我们用数组的时候经常用到数组遍历,我们来看一下shell中数组怎样遍历的


4.参数传递


n 代表一个数字,0为脚本的文件名,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推


5.运算符

a.算数运算符,注意:bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 expr

至于算数运算符和其它语言没有类似大家可以自行查阅

b.关系运算符:

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

-eq //等于

-ne //不等于

-gt //大于 (greater )

-lt //小于 (less)

-ge //大于等于

-le //小于等于


c.布尔运算符

-a:与运算 -o:或运算 !:非运算


逻辑运算符:

&&:逻辑的 AND ||:逻辑的 OR


还有字符串运算符,以及文件测试运算符(查文档)


6.函数

关于函数参数的问题在函数体内部,通过 $n 的形式来获取参数的值


7.流程控制

a.if


b.case



八.文件的引用

在shell中我们如何引用其它的shell脚本,是通过import或者require吗?答:不是的

来个例子吧!


source 搞定。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值