- 博客(210)
- 资源 (1)
- 收藏
- 关注
原创 Shell基础教程十三:Shell case esac语句
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:case 值 in模式1) command1 command2 command3 ;;模式2) command1 command2 command3 ;;*) command1 command2 command3
2020-12-23 11:22:35
2794
原创 Shell基础教程十二: Shell test命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真例如:num1=100num2=100if test $[num1] -eq $[num2]then echo 'The two numbers are equal!'else echo 'Th
2020-12-23 11:18:17
259
原创 Shell基础教程十一: Shell if else语句
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if … else 语句:if … fi 语句;if … else … fi 语句;if … elif … else … fi 语句。1. if ... else 语句if ... else 语句的语法:if [ expression ]then Statement(s) to be executed if expression is truefi如果 expression 返回 true,then
2020-12-23 11:08:48
915
原创 Shell基础教程十: shell printf命令:格式化输出语句
printf 命令用于格式化输出, 是echo命令的增强版。它是C语言printf()库函数的一个有限的变形,并且在语法上有些不同。注意:printf 由 POSIX 标准所定义,移植性要比 echo 好。如同 echo 命令,printf 命令也可以输出简单的字符串:$printf "Hello, Shell\n"Hello, Shell$printf 不像 echo 那样会自动换行,必须显式添加换行符(\n)。printf 命令的语法:printf format-string
2020-12-23 11:02:02
4352
1
原创 Shell基础教程九:Shell echo命令 、shell输出颜色代码
echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。命令格式:echo arg您可以使用echo实现更复杂的输出格式控制。显示转义字符echo "\"It is a test\""结果将是:"It is a test"双引号也可以省略。显示变量name="OK"echo "$name It is a test"结果将是:OK It is a test同样双引号也可以省略。如果变量与其它字符相连的话,需要使用大括号({ }):mouth=8echo "$
2020-12-23 10:56:37
463
1
原创 Shell基础教程八: Shell数组:shell数组的定义、数组长度
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。定义数组在Shell中,用括号()来表示数组,数组元素用空格符号分割开。定义数组的一般形式为:array_name=(value1 … valuen)例如:array_name=(value0 value1 value2 value3)或者
2020-12-21 22:34:26
884
原创 Shell基础教程七:Shell字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。单引号str='this is a string'单引号字符串的限制:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字串中不能出现单引号(对单引号使用转义符后也不行)。双引号your_name='qinjx'str="Hello, I know your are \"$your_name\"! \
2020-12-21 22:28:49
271
原创 Shell基础教程六:Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加:#!/bin/bashval=`expr 2 + 2`echo "Total value : $val"运行脚本输出:Total value : 4两点注意:表达式和运算符之间要有空格,例如 2+2
2020-12-21 22:20:37
306
原创 Shell基础教程五、Shell替换:Shell变量替换,命令替换,转义字符
如果表达式中包含特殊字符,Shell 将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换。举个例子:#!/bin/basha=10echo -e "Value of a is $a \n"运行结果:Value of a is 10这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:Value of a is 10\n下面的转义字符都可以用在 echo 中:转义字符含义\\反斜杠\a警报,响铃\b退格(
2020-12-21 21:59:39
2000
原创 Shell 基础教程三、Shell的特殊变量
变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果29949特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参数。被双引号(
2020-12-21 21:47:46
297
原创 Shell 基础教程四、Shell注释
以#开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。只能像这样:#--------------------------------------------# 这是一个自动打ipa的脚本,基于webfrogs的ipa-build书写:# https://github.com/webfrogs/xcode_shell/blob/master/ipa-build# 功能:自动为etao ios app打包,产出物为14个渠道的ipa包# 特色:全自动打包,不需要输入任何参数
2020-12-20 21:29:41
279
原创 shell 基础教程二、变量
变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。例如在 C/C++ 中,变量分为整数、小数、字符串、布尔等多种类型。当然,如果有必要,
2020-12-20 21:25:36
308
原创 Shell实战:创建sh脚本时自动生成头部注释信息
前言作为一个进场在Linux系统上写shell脚本的开发人员, 对每个shell脚本都要编写重复的头部信息.这是一个很麻烦的事情,所以,有什么办法,在新建.sh文件的时候自动生成头部注释信息吗??当然是有的. 一下介绍几种方式.都是可以使用的一、创建脚本时自动添加头部信息(全自动)在Home目录下,新建一个文件.vimrc文件. 内容如下:autocmd BufNewFile *.sh exec ":call AddTitleForShell()"function AddTitleFor
2020-12-20 11:49:54
3411
3
原创 shell 基础教程一、shell简介
文章目录前言参考一. 简介shcshtcshashbash查看 `Shell`二、第一个Shell脚本三、Shell 的提示符前言使用Linux好几年了.一直没有系统的来学过Shell脚本,零零散散的学了不少.但是使用的时候总是到处去找资料,所以趁此机会好好的系统的学习一遍Shell脚本的语法.记录所学.参考菜鸟教程: >>点击查看<<C语言中文网:>>点击查看<<Shell 在线工具:>>Shell 在线工具<<一.
2020-12-20 11:09:41
518
1
原创 AndroidStudio开发: SSL peer shut down incorrectly 问题
AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。这时候我们就需要配置镜像来解决这个问题。(为了提高jar包的下载速度也可以配置)配置的方法就是在根build.gradle中添加镜像仓库,一般我们选择阿里的 http://maven.aliyun.com/nexus/content/groups/public/完整的如下所示buildscript { repositories {
2020-11-29 22:36:12
228
原创 Ubuntu初始化安装ssh服务,使用MobaXterm进行连接
一. 摘要刚安装好的虚拟机, 由于是断网状态下安装的,所有新系统上没有安装ssh的服务. 当使用MobaXterm连接虚拟机的时候,就会显示连接Network error : Connection refused二. 查看ssh服务是否存在三. 安装ssh服务sudo apt openssh-server四. 启动服务# 启动服务sudo service ssh start# 查看ssh的状态service sshd status...
2020-11-28 20:47:16
678
原创 从零开始使用Ubuntu系统(个人实战总结)
一. 前言开发五六年了, 一直都是在Windows下进行开发. 但是很多时候Linux下开发真的是比Linux更爽,更香.前前后后也很多次想完全脱离Windows,但是由于很多生日常软件对Linux不兼容所以也没有完全的转过来. 但是最近对技术要有更深更广的尝试, 要持续在Linux上进行编译,调试等操作. 所以把这一些列的经验都总结起来.形成此博客.此篇博客主要用于对系列文章的一个总结,作为目录引导.(此博客会长期的更新,目前先把问题提出来,然后不断的完善)二. 基础篇2.1 如何在VMWare
2020-11-28 20:29:44
1332
原创 Ubuntu修改时区和更新时间
1. 查看当前系统的时间> date -R我这儿已经修改好了,所以显示的是-0800一般情况是这个2 . 运行tzselect来选择时区3. 复制文件到/etc/localtime目录下也可以直接跳过步骤2 直接将Shanghai的文件复制到/etc/localtime目录下cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime4. 再次查看时区date -R# 此时,时区应该为北京时区'+0800'5. 设置时间
2020-11-28 11:23:15
2077
2
原创 Ubuntu 系统上构建FFmpeg for android(主要用fanplayer代码进行构建)
一. 前言首先感谢 fanplayer作者ck大神提供的优质项目由于在fanplayer不够详细,在构建的途中各种踩坑,至此终于完美的构建后了项目,所以将此过程记录下来,供大家学习参考,也给自己留下笔记,以免后续踩坑为了避免不必要的麻烦,所以我使用的是Ubuntu 20.04系统上进行编译(作为开发者不懂点Linux也说不过去吧~~)二. 环境准备NDK: android-ndk-r13-linux-x86_64.zip说明:之前搜使用的是android-ndk-r21b-li
2020-11-26 22:24:06
501
1
原创 超级牛逼的骚操作搞定GitHub龟速下载,让你从此告别抓狂.github提速骚操作
一. 超抓狂的GitHub龟速下载众所周知,GitHub是一个巨大的开源宝库,以及程序员和编程爱好者的聚集地,包括我之前推荐的诸多优秀的开源项目全部都是位于GitHub上。但是每当我们看到优秀的开源项目,准备去下(bai)载(piao)时,会发现git clone的速度异常之慢!就我个人而言,在我50M移动宽带的环境下,我克隆开源项目就没发现速度大于过20.00 KiB/s的时候,这简直太难受了。哪怕是搭建TZ 也解决不了龟速下载的问题.恶心的一批.小项目倒还好,我等几分钟无所谓;一旦项目庞大起来,
2020-11-26 21:09:53
2821
原创 ubuntu sudo update与upgrade的作用及区别
每个LINUX的发行版,比如UBUNTU,都会维护一个自己的软件仓库,我们常用的几乎所有软件都在这里面。这里面的软件绝对安全,而且绝对的能正常安装。在UBUNTU下,我们维护一个源列表,源列表里面都是一些网址信息,这每一条网址就是一个源,这个地址指向的数据标识着这台源服务器上有哪些软件可以安装使用。编辑源命令:sudo gedit /etc/apt/sources.list在这个文件里加入或者注释(加#)掉一些源后,保存。这时候,我们的源列表里指向的软件就会增加或减少一部分。获得最近的软件包的列
2020-11-26 16:31:17
3328
原创 Linux(Ubuntu)安装ssh服务
打开终端查看ssh服务是否存在# 查看ssh服务是否存在> ps -e | grep ssh安装SSH服务> sudo apt-get install openssh-server启动服务> /etc/init.d/ssh start停止服务> /etc/init.d/ssh stop重启服务> /etc/init.d/ssh restart注意:# 如果 出现警告的话,可以使用service ssh startse.
2020-11-24 21:20:09
296
原创 编译ijkplayer最详尽的编译过程教程以及编译过程中的各种坑
一. 摘要从开始接触ijkplayer,到全流程编译ijkplayer真的是各种的惨痛教训和坑,经历了3天才算成功.所以把这一路的填坑过程全部记录下来,一方面,下次需要编译的时候直接使用. 另一方面,分享给更多的朋友们.让朋友能够快速的编译.二. 环境要求以及注意事项这是我的环境和建议,建议大家可以好好参考,特别是NDK版本另一方面,我已经将我验证过的所有文件放在百度云,供大家快速下载虚拟机: VMware Workstation 16 Pro建议使用比较新的版本,原因:①我最初使用
2020-11-23 23:08:54
3700
2
原创 ubuntu 执行shell脚本报错信息 /usr/bin/env: “bash\r“: 没有那个文件或目录
1. 问题:用 ./ 运行bash脚本文件出现 报错信息/usr/bin/env: "bash\r": 没有那个文件或目录2. 错误原因:这主要是因为bash后面多了\r这个字符的原因。在linux终端下,输出\r会什么都不显示,只是把光标移到行首。于是终端虽然输出了/usr/bin/env bash,但是碰到\r后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息了3. 解决办法:用vim打开sh脚本文件, 重新
2020-11-23 10:21:20
2740
原创 Vmware workstation 安装解压 vmwaretools 提示只读文件“tar: vmware-tools-distrib:无法 mkdir: 只读文件系统”解决办法
问题: 在VMware wokstation中安装vmwaretools 提示只读文件,解压不了系统Ubuntu解决:其实这个与系统无关,与VMwareTools-xxx.tar.gz的目录与有关,细心的可以看到这个安装文件是在 挂载的文件夹下将安装文件复制到自己本地的目录# 我这儿是复制到自己的home目录下> cp VMwareTools-10.3.22-15902021.tar.gz /home/dreamhai/sorftware/修改文件权限(读写权限)chm
2020-11-23 09:04:04
11579
8
原创 Ubuntu 更新 apt-get 源
需要注意的地方/etc/apt/sources.list 文件/etc/apt/sources.list.d 目录sources.list 文件# 里面保存的是官方的软件源,你可以任一选择阿里、网易等国内的源复制粘贴进去,保存。 然后更新源> sudo apt-get updatesources.list.d 目录# 该文件夹下的文件是第三方软件的源,可以分别存放不同的第三源地址,只需“扩展名”为list即可# 修改之后,同样需要更新一下源> sudo apt
2020-11-23 08:42:53
1250
原创 国内各种镜像仓库
开源平台链接网易开源镜像http://mirrors.163.com清华大学https://mirrors.tuna.tsinghua.edu.cn/中科大http://mirrors.ustc.edu.cn/东软信息学院http://mirrors.neusoft.edu.cn/linux官网镜像https://mirrors.kernel.org/阿里http://mirrors.aliyun.com搜狐http://mirrors....
2020-11-22 14:46:49
16727
原创 Ubuntu各个版本下载
官网下载:https://cn.ubuntu.com/download找不到历史版本,而且下载速度很慢使用网易云镜像下载Ubuntu:添加链接描述
2020-11-22 14:24:50
585
原创 Ubtuntu安装Android SDK(android-sdk_r24.2-linux.tgz)
下载SDKwget http://dl.google.com/android/android-sdk_r24.2-linux.tgz解压文件tar -zxvf android-sdk_r24.2-linux.tgz进入android-sdk-linux文件夹在文件夹中有一个SDK Readme.txt文件,可以看一下.执行tools/android update sdk --no-ui执行这个命令会下载各种的SDK API 要网速不好的话,要等很久,反正我网速很.
2020-11-21 22:21:22
649
原创 Ubuntu安装JDK并配置环境变量
1、官网下载jdk下载链接http://www.oracle.com/technetwork/java/javase/downloads/index.html可以根据自己的系统进行下载2、进行解压# 解压到当前目录> tar -zxvf jdk-8u171-linux-x64.tar.gz # 重命名> mv jdk-8u171-linux-x64 jdk1.8# 将解压后的文件移动到指定目录> mv jdk1.8 /usr/lib/java3、进行配置使用全局
2020-11-21 17:51:56
1281
原创 Android开发实战: The application could not be installed: INSTALL_FAILED_OLDER_SDK
错误问题:11/21 15:54:10: Launching 'app' on armeabi v7a.Installation did not succeed.The application could not be installed: INSTALL_FAILED_OLDER_SDKList of apks:[0] 'xxxxxxxxxx\app\build\outputs\apk\debug\app-debug.apk'The application's minSdkVersion.
2020-11-21 15:59:11
6120
4
原创 Android NDK开发指南(四):Android.mk(官方)
本页介绍了 ndk-build 所使用的 Android.mk 构建文件的语法。具体查看: https://developer.android.google.cn/ndk/guides/android_mk
2020-11-21 15:23:19
263
原创 Android NDK开发指南(三):ndk-build 脚本(官方)
说明:ndk-build 脚本使用 NDK 的基于 Make 的构建系统构建项目。我们针对 ndk-build 使用的 Android.mk 和 Application.mk 配置提供了更具体的文档。一. 内部原理运行ndk-build 脚本相当于运行以下命令:$GNUMAKE -f <ndk>/build/core/build-local.mk<parameters>$GNUMAKE 指向 GNU Make 3.81 或更高版本,<ndk> 则指向 NDK
2020-11-21 14:58:07
1515
原创 Android中的ABI以及对应CPU的版本说明
一. Android中的ABIABI是Application Binary Interface的缩写。ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。ABI定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节。Android目前支持以下七种ABI:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mips64。二. Android中的CPU不同的Android设备使用支持不
2020-11-21 10:40:05
3731
2
原创 Android NDK官方下载链接(各个版本)
1、NDK官方网站https://developer.android.google.cn/ndk/downloads/index.html?hl=zh-cn2、Google Android NDK官网2.1 ndk_r14b(March 2017)Windows 32 位:android-ndk-r14b-windows-x86.zipSHA1校验:707533928070443eaa7fa37ed337f91c655e02ca708d37c92Windows 64 位:android-ndk-
2020-11-21 10:01:30
11001
原创 Msys2添加鼠标右键,在当前目录打开
1.找到安装目录的msys2_shell.cmd文件,在开头添加set "_T=%cd%" ,用以把当前目录保存到_T变量set "_T=%cd%"2.找到安装目录的home/用户/.bashrc开头加上export _T=${_T//\\//} # 把反斜杠换位正斜杠export _T="/${_T/:/}"if [[ $_T == "" ]]; then export _T="/c/" fi echo "cd $_T"cd "$_T"3.打开注册.
2020-11-20 22:28:07
1284
原创 Android NDK开发指南(二)Android.mk文件
1. 概述Android.mk文件是用来描述build system(编译系统)的,更准确的说:该文件是一个微型的GNU Makefile片段,将由build system解析一次或者多次。这个文件的目的是用来允许你将源文件组织成模块,这个模块中含有:一个静态库(.a文件) 或 一个动态库(.so文件)只有动态库才会被安装/复制到你的应用程序包,尽管静态库可以被用来生成动态库。你可以在每个模块中 都定义一个Android.mk文件,你也可以让多个模块共用一个Android.mk文件。build
2020-11-20 22:12:10
409
原创 Android NDK开发指南(一) Application.mk文件
Application.mk目的是描述在你的应用程序中所需要的模块(即静态库或动态库)。Application.mk文件通常被放置在 $PROJECT/jni/Application.mk下,$PROJECT指的是您的项目。一. 简介要将C\C++代码编译为SO文件,光有Android.mk文件还不行,还需要一个Application.mk文件。本文档是描述你的Android应用程序中需要的本地模块的Application.mk的语法使用。APP_PROJECT_PATH – 强制这个
2020-11-20 21:49:37
528
原创 MSYS2 镜像使用帮助
获取基本组件包Permalink请访问该镜像目录下的 distrib/ 目录(x86_64、i686),找到名为 msys2-<架构>-<日期>.exe的文件(如 msys2-x86_64-20141113.exe),下载安装即可。pacman 的配置Permalink1. 编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加: Server = http://mirrors.ustc.edu.cn/msys2/mingw/i6862.
2020-11-20 16:31:33
541
原创 MSYS2使用教程——win10系统64位安装msys2最新版(msys2-x86_xxxx.exe)
一、安装测试系统: windows 10首先需要msys2的安装包,可以去官网下载安装包官网地址: http://www.msys2.org/本次下载的是 msys2-x86_64-latest.exe注意:1. msys2不可以安装在FAT*分区2. msys2不能安装在win XP系统上指定好安装路径(一般D根目录即可)本人使用的是默认路径,win10的c盘,一路下一步就好。安装好后,不要直接运行,先配置,软件源,否则下载超级慢安装完成后点击完 成退出安装程序注意: 此处不
2020-11-20 15:31:03
13367
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人