目录
前言
Linux基础知识。
一、定时任务crontab
crontab默认开机自启,Ubuntu,Centos系统通用
crontab -l:查看所有定时任务
crontab -e:设置定时任务
crontab -r:删除所有定时任务
定时任务具体设置方法详见百度
【注】
1、如果定时运行的是python命令,python路径需要写成绝对路径,运行文件可写成-m格式或者绝对路径格式,比如
*/10 * * * * /home/work/anaconda/bin/python /home/work/test.py
或:
*/10 * * * * /home/work/anaconda/bin/python -m test
2、要注意,python文件加载的包,有没有与环境变量关联的,比如python连接oracle数据库时调用的cx_Oracle,就需要
在~/.bashrc中添加环境变量,此时,定时任务命令变为:*/10 * * * * . ~/.bashrc; /home/work/anaconda/bin/python /home/work/test.py
二、查看linux版本
cat /etc/issue
cat /etc/redhat-release(只适用redhat系的linux)
三、压缩解压
# 正常解压缩
# 解压
tar -zxvf FileName.tar.gz
#压缩
tar -zcvf FileName.tar.gz DirName
# 解压
tar -xvf FileName.tar
# 压缩
tar -cvf FileName.tar DirName
# 排除文件/文件夹进行压缩
# 压缩
tar -cvf FileName.tar --exclude=File1 --exclude=File2 ./*
四、nohup与&
nohup:
关掉session,不会终止服务,ctrl+c,会终止服务
&:
关掉session,会终止服务,ctrl+c,不会终止服务
nohup+&:
关掉session,不会终止服务;ctrl+c,不会终止服务;kill -9可以
例:nohup sh run.sh >> out.txt 2>&1 & (out.txt可以重命名)
五、命令行请求服务
curl -d '{"address": "方舟大厦", "location": {"province": "北京市", "city": "北京市"}, "format": "dict"}' -X POST "http://10.9.224.143:8318/v1/address_normalize" -H "Content-Type: application/json"
-H:请求头
-d:POST内容
-X:请求协议
六、端口监听
netstat -apn|grep 8443|grep LISTEN
七、软链接
# 创建软链接
ln -s [源文件或目录] [目标文件或目录]
# 例:
# 源文件夹/home/work/test,软链接当前路径test文件夹
ln –s /home/work/test test
【注】
1、当前路径test文件夹无需手动创建,软链接会自动生成
2、若源文件需要root用户权限才能构建,而当前路径在普通用户下,则先使用root用户创建源文件,再使用普通用户在当前路径创建软链接。另外需要在root用户下,对源文件进行权限调整:chmod 777 源文件
# 删除软链接
rm -rf test #切记不要自动补全
rm -rf test/ 那么原目录下的文件都会被删除!!!
# 修改软链接
ln –snf [新的源文件或目录] [目标文件或目录]
这将会修改原有的链接地址为新的地址
# 例:
# 创建一个软链接
ln –s /home/work/test test
# 修改指向的新路径
ln –snf /home/work/test1 test
参考资料:软链接与硬连接
八、命令行快速移动
# 快速移到命令行开端:
ctrl+a
# 快速移到命令行末尾:
ctrl+e
九、ls -la显示解释
linux 【-rwxrwxr-x 1 zhangce zhangce】意思如下:
第一位表示文件类型:d是目录文件,l是链接文件,-是普通文件,p是管道
后面的分三个三个来看,即 rwx 、r-x 、r-x
第一个:
文件所有者对文件拥有的权限:r是可读,w是可写,x是可执行,rwx意思是可读可写可执行。
第二个:
文件所有组对文件拥有的权限:r-x 是可读可执行不可写。
第三个:
其他用户对文件拥有的权限,r-x 是可读可执行不可写。
综合起来就是权限设置为:文件所有者可读可写可执行,与文件所有者同属一个用户组的其他用户可读可执行,其它用户组可读可执行。
【补充】
调整文件权限:
chmod -R 777 # 赋予文件所有用户可读可写可执行权限
如果某文件权限为7则代表可读(4)、可写(2)、可执行(1),即(4+2+1=7)
若权限为6(4+2)则代表可读(4)、可写(2)
权限为5(4+1)代表可读(4)和可执行(1)
权限为3(2+1)代表可写(2)和可执行(1)
十、时间校正
Linux服务器时间如果不正常,可以进行时间设置:
yum -y install ntp # 若无ntpdate命令,安装ntp
ntpdate 1.cn.pool.ntp.org # 校正服务器时间同网络时间一致
tzselect # 设置时区,根据选择命令分别选择,5Asia->9 China->1->Beijing Time ->1 yes
TZ='Asia/Shanghai'; export TZ # 拷贝入系统配置文件中
hwclock -w # 软件时间同步至硬件时间
date # 查看当前时间
参考资料:Linux时间矫正
十一、常用命令
# 查看文件夹下文件数量
ls -la ./ | grep ${过滤文件名} | wc -l
# 查看文件夹下各文件大小(包括文件夹)
du -sh ./*
# 对文件夹下文件按时间顺序排列
ls -la ./ -rt
# 查看机器的各目录挂载情况
df -h
# 统计文件行数
cat ***| wc -l
# vim 光标移至行尾
shift+$
# vim 光标移至行首
shift+^
十二、修改Linux终端空闲退出时间
# 打开文件:
vi /etc/profile
# 900s无操作退出终端:
export TMOUT=900
# 永不退出终端:
export TMOUT=0
# 刷新文件:
source /etc/profile
十三、Opera等线上机器,vim查看日志文件中文乱码问题解决
1、vim ~/.vimrc
2、增加如下内容
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
3、source ~/.vimrc
十四、linux 杀死进程
# 命令
ps -ef | grep ernie_bot_server | cut -c 9-15 | xargs kill -9
netstat -apn | grep 8872 | grep LISTEN | cut -d / -f 1 | cut -c 81-100 | xargs kill -9
# 详解
# 获取进程信息
ps -ef | grep ernie_bot_server
# 对上述进程返回信息按字符进行截断,取9-15位
cut -c 9-15
# 获取监听端口的进程信息
netstat -apn | grep 8872 | grep LISTEN
# 对上述进程返回信息按特定符号 / 进行切分(-d /),并取第一段(-f 1)
cut -d / -f 1
# 将前面命令的输出作为输入传给后面的命令(kill -9),即杀死进程
xargs kill -9
十五、关键词搜索命令
# 查看某一目录下的文件中是否包含特定关键词
cat ./* | grep ***
十六、apt和apt-get
- apt与apt-get的异同:
- apt是apt-get和apt-cache命令的子集,提供软件包管理的必要命令;
- apt=来自apt-get和apt-cache的常用功能选项。
- 尽管apt-get未被取代,但作为常规使用者,你应该尽量使用apt。
- apt是apt-get和apt-cache命令的子集,提供软件包管理的必要命令;
- 参考资料:一文搞清apt与apt-get的异同。
十七、切分/合并文件命令
# 将大文件切分若干小文件
split -l 10000 文件名 -d -a 2 test_
# 10000: 切分后每个小文件的行数
# -d: 后缀按照数字命名,例如上述命令运行后,文件名为test_01、test_02...,不加-d,就按照字母命名
# -a: 后缀命名长度,默认是2
# test_: 小文件命名前缀
# 将若干小文件合并成大文件
cat test_* > test
十八、find命令
# 在./目录下查找名称包含test的目录或文件
find ./ -name *test*
十九、查看主机的IP地址
hostname -i