在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下
ls 显示当前路径下的文件,常用的有 -l 显示长格式 -a 显示所有包括隐藏 -R 显示文件夹内的内容 -c 按照最后一次修改时间排序 -t 按照修改时间排序输出
echo 显示 -n 不换行
touch 创建一个文件,或者修改文件的访问时间和修改时间 touch -a file 只更改访问时间 -m之更改修改实际那 -t指定特定时间
cp 复制文件 -a 保留文件的属性 -f强行复制,如存在则覆盖 -i 存在覆盖则提示 -r 复制文件夹中所有存在的内容 -u 只有源文件更新的情况下复制
mv 移动和重命名 mv a b 将a文件移动到b的路径
rm 删除 -i 删除时提示 -r 删除目录及其中内容 -f 不提示
file 查看文件类型
cat 查看文件内容
more 查看文件内容,满一页后暂停, 空格和z下一页 d下半页 q退出
less 增强版的more b可以向后翻页 u可以向后翻半页
tail 显示后几行的内容 tail -f可以动态刷新 很常用 tail -n指定行数
head 显示前几行的内容,和tail对应
ps 显示进程 ps aux 查看所有进程 常用 显示的比较多,一般配合 管道来查找
top 实时监控进程 命令 u 查看某个用户的进程 k 结束指定进程 q 退出
kill pid 结束进程 kill -9 pid 强制结束
killall 进程名 不用输入pid 直接输入进程名来进行结束进程
mount 挂载 mount -t type device directory type是磁盘类型 device是设备文件 directory 是挂载地址 经常用 一般是通过fdisk -l找到设备地址,然后进行挂载
umount 卸载 卸载挂载点或者设备文件 如果有程序使用则无法卸载 用lsof 来查看那些进程正在使用
df 查看磁盘使用情况
du 查看那特定目录下文件的磁盘使用情况 一般用du -h 直观一些
sort 排序 sort -n 按数字排序 -r 反序
cut 分割 cut -f1 -d':' 按:分割,取第一列
grep 搜索 一般配合管道使用 cat tt|grep number -n添加行号 -c有几个匹配的
tar 压缩和解压 常用的是tar 和tar.gz文件 打包 tar -cvf 拆包 tar -xvf 对于tar.gz 打包 tar -zcvf 拆包 tar -zxvf
export 将变量作为环境变量,想要重启不会消失,可以写在用户家目录的.bash_profile 中,写在/etc/profile则对所有用户都有效
unset 删除环境变量
array=(1 2 2 3 4) 用圆括号括起来作为数组 ${array[*]}显示所有 ${#array[*]} 显示个数
useradd 添加用户 -u 指定uid -g指定组名或gid userrm 删除用户 usermod 修改密码 passwd 修改自己的密码 相关文件 /etc/passwd /etc/shadow
groupadd 添加组 groupmod 修改组 grouprm 删除组 相关文件/etc/group
chmod 修改文件权限 chmod 666 a.sh 每个数字代表rwx权限 第一个数字是拥有着第二个是组第三个是其他,666就是所有人都用用写和执行的权限
chown 修改文件所有者 chgrp 修改文件所属组
fdisk磁盘管理工具
yum 下载安装工具 一般 yum install xxx 查看已安装的包 yum list installed 卸载 yum remove xxx 彻底卸载 yum erase xxx
rpm 安装rpm包 与yum功能类似
date 日期 一般用 date +%y%m%d
who查看用户信息
双引号 将其中的信息作为字符串 ,除了转义符 \ 反引号 和$变量
反引号 将其中的文本作为命令执行
单引号 将其中的所有东西作为字符
> 输出重定向 覆盖 >>输出重定向 追加
<输入重定向
|管道 前面的输出作为后面的环境
$[] 进行数学运算只支持整数
bc 具体不描述,支持小数运算
$? 上一条命令的运行结果 0是成功
exit 0 脚本退出并返回状态码
if语句依照如下结构
if command;then
xxxxxx
fi if command;then
xxxxxx
elif command; then
xxxxxxx
else
xxxxxxx
fi
test 由于if验证的只能是命令,所以引入test [ $a -gt $b ] 用方括号括起来可以作为判断条件,用于文件则是[ -f "$file"] 其中f是文件 e是存在 d是文件夹 等等
判断字符串只有 [ $str1 = $str2] = != > < -z -n
(()) 双圆括号支持更犀利一些的算术运算 如++ -- ** & | 等 [[]] 支持更犀利的字符串比较,比如正则表达式
case命令
case $param in
aaa) xxxxxxxxx;;
bbb) xxxxxxxxx;;
*) xxxxxxxxx;;
esac
for 循环控制 while 循环控制 until循环控制 比较简单,不再赘述
break n 退出n层循环 continue 重新回到n层外的循环
read 读取输入 -p 后面跟提示 read -p "please input a and b" a b 将用户输入读入并存在a b中 -n 指定超时时间
local temp 在函数中声明临时变量temp
$0 脚本名 $#参数数量 $1 $2 .. 第n个参数 $* 所有参数作为一个 $@ 所有参数
shift 向前移动参数
Ctrl+z暂停当前任务
Ctrl+c退出任务
Ctrl+d 结束输入
at 指定命令运行时间 atq查看已有 atrm删除
cron指定命令运行周期
目前先写这么多,用到了在进行添加
Linux Shell编程基础的更多相关文章
-
Linux Shell 编程基础详解——吐血整理,墙裂推荐!
第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
-
[Linux]shell编程基础/linux基础入门
声明执行程序 #!/bin/bash 用来告诉系统使用/bin/bash 程序来执行该脚本.譬如python 脚本,可以这样写: #!/usr/bin/python 赋值和引用 赋值公式: 变量名 ...
-
linux——Shell编程基础
1. shell 脚本的执行方式 1.1 直接绝对路径执行 1.2 相对路径执行 首先进入到shell脚本所造的目录 PS:用./执行要增加x权限.用bash执行可以不增加x权限 1.3 在当前she ...
-
linux —— shell 编程(整体框架与基础笔记)
导读 关于shell编程基础的学习,网上有很多资源,如果在校图书馆应该也有一些教程,所以这里对于零碎的基础不做详细记录,而只是对一些常用的概念.命令与操作做一个简要的记录,以备方便查找. (本文所有语 ...
-
Linux学习之二十一-shell编程基础
Shell编程基础 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...
-
详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
-
linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
-
linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
-
Linux shell入门基础(六)
六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...
随机推荐
-
订单支付成功后存储过程 - MYSQL
BEGIN SET @userId = (SELECT user_id FROM t_shoporder WHERE id = orderId); /*修改订单状态,改成已支付*/ ,update_t ...
-
WIN7下VS2008生成Detours3.0
Detours是微软开发的一个函数库,可用于捕获系统API.在用其进行程序开发之前,得做一些准备工作: 一.下载Detours 在http://research.microsoft.com ...
-
带你玩转JavaWeb开发之六-mysql基本语法详解及实例(1)
1.1.1 对数据库的表进行操作 1.1.1.1 对数据库中表进行创建 [语法:] create table 表名( 列名 列类型 [列约束], 列名 列类型 [列约束], 列名 列类型 [ ...
-
[IIS][ASP.NET]“拒绝访问临时目录”的解决方法
开始以为是“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”文件夹权限的问题,但怎么设置这个权限也解决不 ...
-
山东省第五届ACM省赛
题目链接:http://acm.sdut.edu.cn/sdutoj/contest_show.php?contest_id=1449 相关总结:http://www.cnblogs.com/mcfl ...
-
Dumpbin的使用方法
推荐:http://blog.csdn.net/blpluto/article/details/5706757
-
ubuntu 安装mysql, 以及全然又一次安装的方法
sudo apt-get install mysql-server 装完后 是无法远程訪问的. 要先改动 sudo vim /etc/mysql/my.cnf 找到 bind-address = 12 ...
-
C#经典之Application.DoEvents()的使用
最近做了一个文件上传的模块,因为牵扯到电脑文件的扫描,想做一个实时显示当前扫面文件的功能,就类似于360文件扫描时的效果,本来打算用多线程来实现,但是方法太多没有实现,后来在程序中进行控制,由于文件太 ...
-
linux下的开源移动图像监测程序--motion编译与配置
前几天在网上偶然看到一篇博客,是利用linxu下的开源的motion搭建嵌入式视频动态监控系统,感觉很好很强大于,是就想自己编译移植一下试试. 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域 ...
-
Swing小技巧总结
1. 使JDialog位于屏幕的* public void setToScreenCenter(JDialog jd) { Dimension screenSize = Tool ...