ubuntu 打开终端
ctrl+alt+t #ubuntu
查看Ubuntu版本
lsb_release -a
cat /etc/issue
登录/退出用户
超级用户登录 sudo su
退出当前用户 exit
登录普通用户 # login zl
文件操作
cd
cd ..
cd -
列出所有文件包括隐藏文件
ls -a
时间排序(tac是cat反向输出)
ll -t | tac
移动/更改文件名
mv dispservice dispservice.bak
mv !(hadoop|hackthon) hackthon #反转移动
递归拷贝
cp -r source_dir target_dir
递归删除
rm -rf <path>
递归创建目录
mkdir -p <path>
新建文件
touch README.md
查找文件
find dir -name file
软连接(快捷方式)
ln -s 源文件 目标文件 (后面指向前面)
touch 456{1,2,3,4,5} 会在目录中生成(4561,4562,4563,4564,4565)五个目录文件
mkdir 456{1,2,3,4,5} 会在目录中生成(4561,4562,4563,4564,4565)五个文件夹
重定向
>
输出重定向到一个文件或设备 覆盖原来的文件
>!
输出重定向到一个文件或设备 强制覆盖原来的文件
>>
输出重定向到一个文件或设备 追加原来的文件
<
输入重定向到一个程序
2>
将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>>
将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1
将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
&
将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|&
将一个标准错误 管道 输送 到另一个命令作为输入
command 1>>result #输出定向到文件,错误打印到屏幕
command 2>>result #输出打印到屏幕,错误定向到文件
command >>result 2>&1 #输出和错误都定向到文件
command 2>&1 | tee -a result #输出和错误全部定向到文件,并在屏幕上显示
ls -al > list.txt
将显示的结果输出到 list.txt 文件中,若该文件以存在则予以取代!
ls -al >> list.txt
将显示的结果累加到 list.txt 文件中,该文件为累加的,旧数据保留!
ls -al 1> list.txt 2> list.err
将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err
ls -al 1> list.txt 2> &1
将显示的数据,不论正确或错误均输出到 list.txt 当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式!
ls -al 1> list.txt 2> /dev/null
将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! /dev/null ,可以说成是黑洞装置。为空,即不保存。
常用命令
清空面板 clear
调试脚本
set -x 开启调试
set +x 关闭调试
set -o 查看(xtrace),set去追中一段代码的显示情况。
sh -x build.sh 对整个脚本进行调试
查看内存
free
查看环境变量
echo $PATH
echo $LD_LIBRARY_PATH
查看软件路径
which pip
查看文件/文件夹大小
du -sh *
df -lh #查看磁盘使用情况(h:human)
进程
查看进程
top / htop
查看当前tcp监听端口
netstat -nltp | grep 8879
列出当前系统打开文件 (list open files),查看端口占用
lsof -i :8879
查看进程
ps: process status
ps -ef | grep dispservice
ps aux | grep python
强制结束进程
kill -9 pid
Ctrl+Z - 暂停进程并放入后台
jobs - 显示当前暂停的进程
bg N 使第N个任务在后台运行
fg N 使第N个任务在前台运行
bg, fg 不带 N 时表示对最后一个进程操作
后台运行程序不中断
nohup ./run.sh &
重定向输出
nohup sh do_show9.sh startDay.log 2>&1 &
查看nohup日志
tailf nohup.out
判断循环
判断
if [ $startDay != '20170409' ];
then
echo $startDay
fi
if [ command ];
then
...
elif [ command ];
then
...
else
...
fi
循环
while [ $start != $end ]
do
...
done
退出
if [ $? -ne 0];
then
...
fiexit 0