此处更新的原则是用到什么学什么, 学了什么记什么,不是大而全的记录。
若需要教程, 可以参考http://c.biancheng.net/cpp/shell/
if-else
#!/bin/bash
a=test
if [ $a == 'test' ] #注意空格
then
echo test
else
echo train
fi
文件头
#!/bin/bash
字符串
分割
OLD_IFS="$IFS"
IFS=","
arr=($a)
IFS="$OLD_IFS"
for s in ${arr[@]}
do
echo "$s"
done
数组
reference: http://c.biancheng.net/cpp/view/7002.html
#!/bin/bash
# 使用括号定义数组
arr=(1 2) #也可以分行写
#使用[]访问单个元素,下标从0开始
#记得加上花括号
echo ${arr[0]}
NAME[0]="Zara" #事先可以不声明
NAME[1]="Qadir"
NAME[20]="Daisy" #不用连续
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[8]}" # 不会报错, 但输出为空
# 使用@或*访问所有元素
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"
# 数组长度
echo ${#arr[@]}
整数运算
使用(())
或let
或expr
, 例如:
#!/bin/bash
var=0
((var = $1+ $2))
let var=$1+$2 #不可包含空格
var=`expr $1 + $2`
echo $var
运算
- 乘法
var=`expr $1 \* $2`
一定要转义符
压缩/解压缩
zip
zip zipname.zip files
得到的zip文件里会自动创建文件目录结构,相对于当前路径的。
加上-j
可以去掉所有目录结构
System
修改系统时间
dpkg-reconfigure tzdata
会有TUI出现,按着操作就行
ftp
install
apt-get install vsftpd
查看是否启动
ps -e | grep ftp
ls -l
http://blog.csdn.net/sjzs5590/article/details/8254527
Ubuntu:connect to server
地址格式为:
scheme://servername.example.com[:port][/folder]
scheme
可以为ftp, ssh, sftp...
chmod
改变文件夹及其子文件夹的属性
chmod -R 644 dirname
注意,是大写的R
注意,x
对文件夹来说是是否能cd
,对文件来说是是否能通过./xxx
执行。
chown 改变文件所有者
chown username filename
加上-R
可以改变子目录的所有者
查看系统版本
uname -a
scp
install ssh
linux系统一般默认不安装ssh服务器,需要自己安装
sudo apt-get install openssh-server
apt
搜索
apt-cache search pkgname
卸载
apt-get remove --purge name
修改源
- backup original source list file
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk
sudo vim /etc/apt/sources.list
添加以下内容
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
-x
“-x”选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个”+”号。 “+”号后面显示的是经过了变量替换之后的命令行的内容,有助于分析实际执行的是什么命令
set -x #启动"-x"选项
#要跟踪的程序段
set +x #关闭"-x"选项
zip
- 压缩当前文件夹的所有文件到一单独的zip文件
zip filename.zip *
安装opencv
http://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
用户管理
添加新用户
useradd username
将用户加入sudo组
usermod -G sudo username
修改用户密码
- 修改当前用户密码
passwd
- 修改特定用户密码
passwd username
需要sudo权限