运行脚本的方法
常用运行方法:
|
|
用bash和用source的不同在于:
- 用bash执行时,shell script其实是在在父程序bash下新建了一个 bash子程序,之后这个子程序中执行,当程序执行完后,shell script里定义的变量都会随子程序的结束而消失;
- 用source执行时,是在父程序bash中执行,shell script里定义的变量都还在。
shell script的追踪与Debug
|
|
脚本输入输出例子
|
|
输入和输出为:
test命令
|
|
当a.txt存在时,执行echo “exists”,否则执行echo “not exists”,多个命令用&&连接即可。改变test参数可以进行多种决策判断,可以研究一下。
关闭apache
版本一
|
|
版本二
|
|
查看端口
|
|
参数说明:
进程相关
top
相关命令:c,m,u等
ps
显示瞬间行程(process)的动态
使用权限:所有使用者
使用方式:
参数:
ps的参数非常多,在此仅列出几个常用的参数并大略介绍含义
可添加过滤用户:
杀死进程:
查看运行进程的绝对路径
先通过top或其它命令查看pid,再通过以下命令查看真实运行路径:
文件编码
当将可执行的文件从windows系统搬到linux下,可能会报类似’\r’ 找不到命令的错误,那是因为shell命令中格式与dos命令格式不对造成的,只需要运行:
文件统计
对当前路径下文件的存储进行从大到小的排序并打印,显示G,MB,K等
1du -sh * | sort -rh统计第二行逗号出现的次数
1sed -n '2 p' test.csv/part-00000 |grep -o ","|wc -l合并操作
感受下paste的魅力:1paste -d " " - - - - < 16_1.fastq
用户操作
增加用户
方法1
12useradd -d /data/home/user1 -s /bin/bash -m user1passwd user1方法2
12adduser --home /software/home/xxx xxxvim /etc/passwd
添加组
|
|
移除组
|
|
无密码ssh
- 一般做法
- 生成两个重要文件1ssh-keygen -t rsa
id-rsa #私钥
id-rsa.pub #公钥
- 将公钥中的内容追加到另一台机器文件中1~/.ssh/authorized_keys
这样另一台机器就可以无密码ssh到生成公钥对应的机器。同理,其它机器也要这样做,那么假如有n台机器,每台机器authorized_keys文件需要n-1行,代表其它n-1台机器的公钥。优点麻烦,用第二种方法。
- 共用公私钥
- 生成两个重要文件1ssh-keygen -t rsa
id-rsa #私钥
id-rsa.pub #公钥
- 复制和分发
新建一个authorized_keys文件,内容为id-rsa.pub中的一行,然后将这三个文件共享到其它节点的~/.ssh目录下,切记,3个文件都要拷贝。
tmux工具
- 删除panel:
C-x + x - 迅速切换排版(水平或垂直):
C-x + 空格 - 创建新窗口(panel)
C-x + c - 进行切换:
C-x + 数字键 - 复制粘贴:
- C-x [ 进入复制模式
- 参考上表移动鼠标到要复制的区域,移动鼠标时可用vim的搜索功能”/“,”?”
- 安空格键开始选择复制区域
- 选择完成后安enter键退出
- C-x ] 粘贴
- 清除区域内容:
C-l
开机自启动
Example:
Ubuntu下,作为利用apt-get的常规软件,以Nginx为例
编辑开机nginx启动脚本(自动安装的忽略)
- /usr/local/nginx.sh
- 在/etc/init.d目录下创建链接文件到前面的脚本: ln -s /usr/local/nginx.sh /etc/init.d/nginx
设置nginx脚本可执行权限(自动安装的忽略)
1chmod u+x /etc/init.d/nginx进入/etc/init.d目录,将该脚本设为开启自启动
1update-rc.d -f nginx defaults [startnum] [killnum]
其中的[startnum]表示启动顺序,[killnum]表示退出顺序,都为可选参数,取值范围是0-99。序号越大的越晚执行。
- 如果想取消开机自启动1update-rc.d -f nginx remove
-f选项表示强制执行。
端口映射
nohup portforward :8080 cu01:8080 &
更改文件权限
chmod [who] [+ | - | =] [mode] 文件名
权限范围:
u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组权限代号:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
s :特殊权限,如root般操作该文件
e.g 为所有用户添加执行test.log的权限
用代号是最灵活的方式,但当只涉及对所有用户的,并且是直接设定某个权限,用数字是最直接的。
表示用户拥有所有权限,所在组其它成员拥有读写权限,其它用户只有读权限。
git
初始化远程仓库
|
|
初始化本地仓库
|
|
查看、添加、修改远程仓库
|
|
Tip:对于共享目录的仓库而言,修改client端的ip即可,远程仓库地址不变。
修改github仓库
|
|