本文是对使用过的linux命令行的一些杂记,包括使用方法和遇到的一些问题,懒得分类了,因为参考文档很给力,所以这里主要记录一些使用过程中遇到的问题及解决方法,使用方法就不写了。
参考文档:
linux命令大全 : 这里收录了linux的命令行的说明及实例
ubuntu manuals : 这是ubuntu的官方wiki,对ubuntu的各个版本及各种工具做了最全面的介绍
文章目录
shell的进制转换
** 其它进制转十进制
** 使用`((进制#数字))`运算符
$ echo $((16#0fff))
4095
** 十进制转其它进制
** 使用`bc`,用法:`echo "obase=进制; 十进制数" | bc`
** 如果没有,可通过apt源下载
$ sudo apt-get install bc
$ echo "obase=16; 4095" | bc
FFF
pip3无法通过APT源进行下载
一般而言,采用apt源的方式下载pip3,但不一定能成功,这时可以用curl直接下载
$ sudo apt-get update
$ sudo apt-get -y install python3-pip
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$ python3 get-pip.py --user ## 注意,此时它被放在<~/.local/bin>下
有趣的文本工具 figlet, toilet, fortune, cowsay
如下
## 下载都是如下所示
$ sudo apt-get install figlet
## 演示
$ figlet -c "I love Linux"
___ _ _ _
|_ _| | | _____ _____ | | (_)_ __ _ ___ __
| | | |/ _ \ \ / / _ \ | | | | '_ \| | | \ \/ /
| | | | (_) \ V / __/ | |___| | | | | |_| |> <
|___| |_|\___/ \_/ \___| |_____|_|_| |_|\__,_/_/\_\
$ toilet -f pagga "sky"
░█▀▀░█░█░█░█
░▀▀█░█▀▄░░█░
░▀▀▀░▀░▀░░▀░
## fortune是格言生成工具
$ fortune | cowsay
________________________________________
/ Let me put it this way: today is going \
\ to be a learning experience. /
----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
## oneko是能在屏幕上跟随鼠标运动的动画
$ oneko
find 正则表达式
$ find {path} -regextype {option} -regex {regex}
$ find . -regextype "posix-egrep" -regex "*.log$" ##正则匹配所有log文件
shell loop | while read item
有时为了方便会使用"while read item"来处理循环,如下所示
$ ls *.deb | while read package
> do
> echo "--> $package"
> done
pip的升级遇到的一些问题
当pip升级时经常会出现一些异常,即入口文件有误,比如从pip19.1.xxx --> pip19.2.xxx. 这时出错的原因多半是更新的pip被安装到了新的地方(由pip指定的位置),而旧的pip版本依然存在,其入口程序文件没有被覆盖掉,导致失败。
- /usr/lib/python2.7/dist-packages/pip
- /usr/local/lib/python2.7/dist-packages/pip
上面两个路径是比较典型的情况,解决方法是将入口程序改正即可,当然还可以把旧的pip删除。
## step 1: 确定新pip模块的位置
$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> help(pip)
Help on package pip:
NAME
pip
FILE
/usr/local/lib/python2.7/dist-packages/pip/__init__.py
PACKAGE CONTENTS
__main__
_internal (package)
_vendor (package)
DATA
__version__ = '19.2.3'
VERSION
19.2.3
## 可以看到最新的pip模块已经被加载了,其结构与上一版有部分改动
## step 2: 查看pip模块的入口方式
$ ls /usr/local/lib/python2.7/dist-packages/pip/
__init__.py __init__.pyc _internal __main__.py __main__.pyc _vendor
$ cat __main__.py
...
from pip._internal import main as _main # isort:skip # noqa
if __name__ == '__main__':
sys.exit(_main())
...
## 可以很容易看出程序的入口方式
## step 3: 根据上述方式修改入口程序
$ vim $(which pip)
...
from pip._internal import main
if __name__ == '__main__':
sys.exit(main())
...
Pip Error : ‘module’ object has no attribute ‘Cryptography_HAS_SSL_ST’
这个问题出现过一次,比较详细的资料可以参考stackflow中的讨论,就结果而言,可以使用以下方法解决:
$ sudo apt-get --auto-remove remove python-openssl
$ sudo pip install pyOpenSSL
版权声明:本文为imgrass原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。