Ubuntu总结

遇到过一些问题,这里整理一下。
查看系统日志(可查看操作记录) journalctl -xe
删除目录 sudo rm -r xx
删除目录极其所有文件:sudo rm -rf xx

复制目录: sudo cp -r xx yy
sudo:无法解析主机
http://blog.csdn.net/u011274209/article/details/50759772
无法获得锁 /var/lib/dpkg/lock -open
http://blog.csdn.net/zkp0601/article/details/41349253
安装软件
apt命令、dpkg命令、make install命令。一般用apt命令。
apt命令介绍
列举可用的指定软件包版本:apt-cache madison xx
列出可用的指定软件包信息:apt-cache show xx
安装指定版本的软件包:apt-get install xx=1.2
下载命令wget与curl
https://www.cnblogs.com/lsdb/p/7171779.html
http://blog.csdn.net/windeal3203/article/details/52495161
tar命令
tar仅仅打包,没有压缩。
压缩文件常见的为tar.gz或tgz,以及tar.xz等。
对于gz类型的:tar -zxvf解压 tar -zcvf压缩。
对于xz类型的:tar -Jxvf解压 tar -Jcvf压缩。
zip命令
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下

下载命令wget,有时候最好-O进行命名。

curl命令,可以模拟浏览器,但是不能解析html。
也可以下载,需用-o指定文件名。
可以模拟post,如:curl -d “number=18701968170” https://www.xiaobenji.net/api/identify-code
详细可参考:https://www.cnblogs.com/linjiqin/p/5484910.html

搜索命令find,find -name filename可以在当前目录下搜索filename
find file可在当前目录下搜索file及其子文件。
find / -name filename可以在根目录下搜索。

locate filename
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,发现包含字符串“filename”的文件名。

which executeable_name
查找可执行文件,根据可执行文件的文件名。
例如 which apache2 , 返回/usr/sbin/apache2

除了上面三个,还有查找指定文件中的字符串的命令:

  1. grep -n 字符串名字 /filepath/filename
    返回包含该字符串的该行,可以是多行。且包含行数。
  2. sudo gedit /filepath/filename
    而后,用ctrl+F 去查找相应的字符串。(这也算??)
    特殊的方法:
  3. 如果你只想看文件的前5行,可以使用head命令,如:
    head -5 /etc/passwd
  4. 如果你想查看文件的后10行,可以使用tail命令,如:
    tail -20 /etc/passwd
    tail -f /var/log/messages
    参数-f使tail不停地去读最新的内容,这样有实时监视的效果
    tail -f /var/log/messages
    按Ctrl+C后,直接从脚本退出到提示符下了

其他安装软件的方法(apt软件库里没有相应版本时)
下载软件包,解压。如果是源码就用make install(configure默认时,一般在/usr/local/lib可以找到最终安装的包);如果是二进制包可以将文件转移到想要安装的目录,然后设置环境变量(以mongodb为例):
http://www.runoob.com/mongodb/mongodb-linux-install.html
配置环境变量也可以参考:
https://www.cnblogs.com/rwxwsblog/p/4557123.html
mongodb的正确安装方式应该看官网的
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
管理环境变量:
http://blog.csdn.net/haluoluo211/article/details/54313631
另一种方法是手动更新软件库(以安装node为例)。
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs(注意指定版本可以通过madison命令查看)
见链接:http://blog.csdn.net/w20101310/article/details/73135388
https://github.com/nodesource/distributions/blob/master/deb/setup_8.x
apt、pip、easy_install、python setup.py
http://blog.csdn.net/Yakumoyukarilan/article/details/51340358
http://blog.csdn.net/rona_lin/article/details/45028277
https://www.52os.net/articles/use-command-install-easy_install-and-pip.html
http://outofmemory.cn/code-snippet/7981/python-install-easy_install-on-ubuntu
注意pip3的安装是 python3-pip 而不是python-pip3,这些终端其实有提示的。
mongodb的指导,请尽量参照官网。
但是指定web界面可以借鉴菜鸟教程的:
mongod --dbpath=/var/lib/mongodb --rest
MongoDB 的 Web 界面访问端口比服务的端口多1000。
python操作mongodb:
https://www.cnblogs.com/melonjiang/p/6536876.html

easy_install fabric过程比较艰难,遇到两个问题。
No package ‘libffi’ found
https://www.cnblogs.com/rwxwsblog/p/4557123.html

error: openssl/opensslv.h: No such file or directory
需安装这个 sudo apt-get install libssl-dev

成功安装后:
fab --version
Fabric 1.14.0
Paramiko 2.4.0

sqlalchemy的使用
http://blog.csdn.net/kuangshp128/article/details/73413584
任务调度:
一般来说,一个进程下最多只1000个线程左右(不同操作系统略有区别,但数量级一致)。没开一个线程需要找1M内存。
为何很少使用C语言编写服务器脚本,这就涉及到IO密集型与计算密集型的区别,C语言最大的优势在于CPU密集型任务,如今大多数web应用都是IO密集型(也有少数属于CPU密集型)。所以,其实很多时候java设计的web应用并没有想象中那么高性能(可能并不会比python之类的高出几个数量级)。
python设计的一个缺陷就是多线程永远只能使用一个核(解释器中GIL设计所致)。当然多进程不受影响。这也导致了Tornado不建议使用多线程,但是可以在多核CPU时尝试多进程。

nodejs版本切换
https://www.cnblogs.com/conserdao/p/6876381.html
http://web.jobbole.com/84249/

Ubuntu Server的Vim可能会出现中文乱码,这时候可能是vim的编码没设置好。
可以参考这篇文章:https://www.cnblogs.com/wongbingming/p/7158174.html
虽然网上有的方法是设置 /etc/vim/vim/vimrc文件,但是可能需要先改一下别的地方,不一定能顺利设置成功。总结以下如下。
在/usr/share/vim/vimrc的末尾加上:
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set termencoding=utf-8
set fileformats=unix
set encoding=prc

U盘变成只读模式的解决方案:
https://blog.csdn.net/zcf1002797280/article/details/8294073
https://blog.csdn.net/lh2016rocky/article/details/54614662

进入挂载盘的方法:
U盘在media路径下。


多线程下载ftp文件夹
wget下载文件夹,并保持目录结构,可以使用 -m 选项。但是wget只能采用单线程下载,据说mwget可以多线程,但我没安装成功。
于是parallel+wget形式同时下载多个目录。命令如下:

cat url.txt |
awk '{print "ftp://ftp.ebi.ac.uk/pub/databases/gwas/summary_statistics/" substr($1,0,length($1))}' |
parallel -j 100 wget -m

其中,如果不使用substr截取有效字符串,会出现下载异常。查看进程状态可以看到实际命令是有问题的:

ps aux | grep wget

发现url后面多了个问号。因此我在命令里加上了substr操作。
此外,好像还可以使用xargs 命令操作:

echo url | xargs -n 1 -P 8 -I{} wget '{}'

xargs命令可以继续了解下。
除了这些,还有 axel 软件可以多线程下载,但是只能下载文件,而不能下载文件夹;还有 ProZilla 也很不错,但是好像已经没人维护了。另外还有个叫 aira2 的软件,堪称下载神器,也可以试试。


暂停运行程序的方法
ctrl+z 可以暂停当前运行的进程,之后使用bg命令可以恢复运行。
此外,可以使用 kill -stop pid 命令暂停,kill -cont pid 命令恢复运行。


make 安装相关问题
可以先安装一些通用的工具:如build-essential、autoconf等

sudo apt-get install autoconf build-essential

有时候会报错:

No package 'openssl' found

此时即使已经安装了openssl,也依旧报错,可以考虑安装 libssl-dev
有一些其他包也有类似的情况,留个心眼啦。
其中build-essential软件包包含了很多编译c/c++所需要的工具。因此如果想在Ubuntu中编译c/c++程序,安装该软件包会带来很多方便。
编译时可能还会出现这种错误:

WARNING: `aclocal-1.4' is needed, and you do not seem to have it handy on your  
         system.

根据网上的建议,可以这么操作:

#重新生成 aclocal.m4  
aclocal  
#重新生成configure文件  
autoconf -i -v -f  
# 删除原来的makefile  
find ./ -name Makefile -exec rm -rf {} \;  
# 重新生成Makefile  
./configure

偶尔可行。


supervisor报错:unix:///var/run/supervisor.sock no such file
笔者遇到的通常原因是:配置文件所需的log文件目录丢失,导致supervisor服务停止运行。应当创建需要的目录,然开启服务:

systemctl start supervisor 

如果不行,可以参考网上的解决方案,如:supervisor “unix:///var/run/supervisor/supervisor.sock no such file” 解决方法


Ubuntu安装桌面
可参考:ubuntu 16.04 安装桌面环境 gnome 和 Ubuntu 16.04 安装 Gnome 桌面环境 及 给Ubuntu服务器版安装GNOME桌面

主要步骤如下:
安装 xinit

sudo apt install -y xinit

安装登录管理器 gnome display manager,简称 gdm

sudo apt install -y gdm

安装桌面环境

sudo apt install -y  ubuntu-gnome-desktop

Ubuntu安装R和Rstudio
可参考:Ubuntu16.04 安装R与RStudio

主要步骤如下:
安装R
首先需要在/etc/apt/sources.list文件的末尾添加 (xenial是对应于16.0版本,其他版本请稍作修改)

deb https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/linux/ubuntu xenial/

然后执行:

sudo apt-get update
sudo apt-get install r-base
sudo apt-get install r-base-dev

安装RStudio
直接去RStudio官网下载deb文件,然后使用 dpkg -i命令安装。

sudo dpkg -i <package.deb>

Ubuntu中使用R,各种依赖需要手动安装,包括各种外部插件,比如xml-dev,libcurl-dev等等之类的(具体忘记名字了),需要手动apt-get install,反正很多这样的lib,安装比较浪费时间。请安装最新版的R,要不然容易遇到不兼容问题。安装新版本前,请先卸载旧版本和相应的包。

另外,安装包的时候,请务必使用镜像。


Ubuntu中 apt-get -f install 命令:Ubuntu中 apt-get -f install 命令


服务器配置

unix:///var/run/supervisor.sock no such file
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
参考自:http://blog.csdn.net/tianjiewang/article/details/49481869

error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567

sudo supervisord -c /etc/supervisor/supervisord.conf
sudo supervisorctl -c /etc/supervisor/supervisord.conf
参考自:https://stackoverflow.com/questions/18859063/supervisor-socket-error-issue

Error: file is not executable. 配置了,又说FATAL Exited too quickly (process log may have details
注意chmod a+x app.py
参考自:https://www.liaoxuefeng.com/discuss/001409195742008d822b26cf3de46aea14f2b7378a1ba91000/00146008830920794e52f71cd764f0a968bee2a8ae32d49000

supervisor: child process was not spawned
加上#!/usr/bin/python
参考自:http://blog.csdn.net/u010565244/article/details/50042731

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FarmerJohn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值