㈠ ubuntu基本操作
ls , 即 list, 列出目录下的所有项示例:
查看当前目录 ls
查看 /home/shaofa 目录 ls /home/shaofa
以详细模式查看 ls -l /home/shaofa 其中,-l 为参数,参数一般以 - 开头
1 在输入命令和路径时,按 TAB 键可以自动补全ls /ho ls /home
2 输入历史可以翻阅 按 ↑ ↓ 箭头键可以上下翻阅
3 宿主机 与 虚拟机之间可以拷贝粘贴,一般情况下,文本和文件都可以拷贝
pwd , 即 print working directory 显示当前工作目录
cd , 即 change directory , 切换目录
示例:切换到用户主目录
cd 切换到某个目录
cd /home/shaofa/example
几个特殊的目录:
~ 代表当前用户的主目录
. 代表当前目录
.. 代表上一级目录
cd ~ 切换到主目录
cd ~/example 切换到主目录下的example目录
cd ../www 切换到上级目录、再到www子目录
mkdir ,即 make directory 创建目录
mkdir abc
mkdir -p abc/123/test
使用 -p 参数,可以将路径的层次目录全部创建
rmdir ,即 remove directory 删除空目录
rmdir abc
如果目录非空,则删除失败
tar , 即 tape archive 档案打包
创建档案包
tar -cvf example.tar example
其中,
c , 表示 create 创建档案
v , 表示 verbose 显示详情
f , 表示 file
也可以多个目录打包 tar -cvf xxx.tar file1 file2 file3
还原档案包
tar -xvf example.tar
tar -xvf example.tar -C outdir
其中,-C 参数指定目标目录,默认解到当前目录下
先前的tar格式并没有压缩,体积较大
并档并压缩
tar -zcvf example.tar.gz example
解压缩
tar -zxvf example.tar.gz
tar -zxvf example.tar.gz -C outdir
通常我们所见的,都是 *.tar.gz 这种格式
软链接,即 Windows 下的 "快捷方式"
使用 ln 命令 (link) 来创建软链接
ln -s source link
其中,-s 表示 soft 软链接 ( 默认为硬 )比如
ln -s example example2
软链接的特点:
1 删除软件接,对原文件没有影响
2 删除原文件,则软链接失效
以 ls -l 查看文件详情时,可以看到目标路径
比如,ls -l /
可以发现,/bin 实际指向的是 /usr/bin 目录
比如,添加一个用户
sudo useradd -m test1
其中,sudo, 表示以管理员身份执行
1 添加用户
sudo useradd -m test1
其中,-m参数表示在 /home 下添加用户目录
2 修改用户密码
sudo passwd test1
3 删除用户
sudo userdel test1
1 在登录系统时,默认不允许以 root 用户登录
2 只有特殊的用户,才能执行 sudo
比如,yanjingliang可以执行sudo,但test1不行
linux下,把能执行sudo命令的用户叫 sudoer
超级用户 root
类似于 Windows 下的 Administrator 用户
切换到 root 用户,有全部权限,可以直接 useradd 等命令
1首次使用时,需要给 root 设置密码
sudo passwd root
2 切换到 root 用户
su root
其中,su 表示 switch user
3 退出
exit
su root 仅仅对当前会话 (终端) 有效,不影响当前桌面环境,root 权力太大,需要小心使用
Linux 下可以创建多个用户,可以用组进行管理用户。
比如:
男生组 boys
ming bo gang qiang
女生组 girls
fang hong yue yuan
创建组 groupadd boys
创建用户 useradd -m -g boys ming
其中,-g表示在添加用户,同时将用户加到boys组
修改现有用户到新的组 usermod -g boys shaofa
其中,usermod表示修改用户信息
如何查看用户和组?
cat /etc/group
每一行表示一个group的信息,名称 + ID
如何查看用户列表?
cat /etc/passwd
每一行表示一个用户的信息
用户不多时,管理的时候并不使用组的概念
useradd a1
useradd b1
一个root,两个普通用户a1, b1 ,够用了!
默认地,会给a1用户建立一个同名的组a1 ,也就是说这个组里只有他一个人。
默认地,无法以root登录 Ubuntu的桌面环境。本文档介绍如何设置,才能以root来登录面。一、设置root密码
首次执行时,需要修改root密码
sudo passwd root
此时,root已经设置了密码,但是还不能用root登录桌面。
二、修改配置
按以下步骤,执行
1:
su root 在终端里 切换到 root用户
2 :
gedit /etc/pam.d/gdm-autologin
在这一行前面加一个#
#auth required pam_succeed_if.so user != root quiet_success
关闭并保存
3:
gedit /etc/pam.d/gdm-password
在这一行前面加一个#
#auth required pam_succeed_if.so user != root quiet_success
关闭并保存
4:
关闭虚拟机,重启后生效
三、以root登录桌面
在登录界面,点下面的’未列出'
手工输入用户名root,登录
考虑以下几个方面:
- owner : 文件的属主 owner
- r : 文件是否可读 read
- w : 文件是否可写 write
- x: 文件是否可以执行 excute
使用 ls 命令查看一个文件
ls -l simple.txt
-rw-r--r--. 1 shaofa shaofa 13 4月 21 03:48 simple.txt
其中,rw-r--r-- 表示该文件的访问权限
chmod , 即change file mode 修改文件的访问权限
比如,一个文件abc.txt ,想让别人也能修改
chmod o+w simple.txt
其中,o ,表示 other 别人
+w ,表示增写 write 权限
chmod a+w abc.txt
所有人 all 添加w权限
chmod a-w abc.txt
所有人减去w权限
chmod u+w abc.txt
仅用户 user 自己的权限 +w
chmod o-w simple.txt
修改别人 other 的权限 -w
只有文件的属主或者root 可以修改文件权限
省略写法
chmod +w simple.txt
chmod -w simple.txt
默认是修改自己和本组的权限
chown , 即change owner 修改文件的属主
一般来说,每个用户只操作自己的用户目录
所以 chown 命令并不常用
示例:
1 在 /opt 目录下建立一个文件夹 software
2 将 software 目录分配给用户 shaofa
su root
mkdir /opt/software
chown -R shaofa /opt/software
ls -ld /opt/software
只有文件的 owner 和 root 才有权更改属主
脚本 Script ,一种解释执行的程序
Linux 下常见的三种脚本程序
- Shell 脚本 *.sh
- Perl 脚本 *.pl
- python 脚本 *.py
脚本程序,本质是一个文本文件
1 它是一个文本文件
2 它具有可执行权限
脚本程序都是由解释器来执行的
Shell脚本解释器: /bin/sh
Perl脚本解释器: /bin/perl
Python脚本解释器:/bin/python3
执行一个脚本时,以下两种方式等效
./hello.py
/bin/python3 hello.py
Shell脚本,按Shell的语法写出来的脚本
是 Linux 自带的脚本语言
相当于Windows下的 DOS 批处理脚本
1 编辑一个文本文件,保存为 hello.sh
#!/bin/sh
echo "hello,world"
2 添加可执行权限
chmod +x hello.sh
3 执行程序
./hello.sh
/bin/sh hello.sh
注意:
1 第一行必须声明解释器
#!/bin/sh
2 必须有 x 权限,才能够执行
比如,一个程序只有作者执行,别人不能执行
rwxr--r--
3 执行程序时,必须加上路径
./hello.sh
/home/shaofa/hello.sh
Python脚本,比Shell要强大一些,对于 C / java 工程师,
1 编辑一个文本文件,
#!/bin/python3
print("hello,word")
保存为 hello.py
2 添加可执行权限 chmod +x hello.py
3 执行程序 ./hello.py
环境变量,就是存在当前环境中的变量
定义环境变量 export OUTDIR=/opt/
显示环境变量 echo ${OUTDIR}
查看所有环境变量 printenv
环境变量的使用:
可以在当前终端中使用
可以在 SHELL 脚本中调用
在命令行中定义的环境变量,只对当前SHELL终端有效
当关闭终端后,重启后就消失了
用户环境变量:定义在 ~/.profile 中
在主目录下查看隐藏文件 ls -la
其中,a 表示 all ,显示所有文件
注:在Linux下,以 . 开头的文件为 隐藏文件
1 用文本编辑器打开 ~/. profile
gedit ~/.profile
2 添加
export JAVA_HOME=/opt/jdk1.8
保存并关闭
3 注销,重新登录后生效
echo $JAVA_HOME
原理:当用户打开终端时,会自动运行 .profile ,将变量注入到当前环境中。
注意:
1 以点号 . 开头的文件为隐藏文件
ls -a 查看所有文件
2 此配置只对当前用户有效
因为每个用户都有自己的配置文件 .profile
3 有的Linux系统上,使用 .bash_profile
系统环境变量:定义在 /etc/profile 中
此中的环境变量对 所有用户 有效
以 root 身份执行
gedit /etc/profile
但是,一般不直接修改 /etc/profile
而是在 /etc/profile.d/ 创建一个自定义的脚本
1 用 gedit 创建一个脚本
gedit /etc/profile.d/myprofile.sh
2 定义环境变量
export TOMCAT=/opt/tomcat
3 注销并重新登录
重新登录后,环境变量生效
PATH,最常见的一个环境变量
用于描述可执行程序的搜索路径
查看path中的配置目录 echo $PATH
多个路径之间以冒号分隔
usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
默认地,系统从以下目录中搜索可执行程序
/usr/bin 比如,/usr/bin/tar
/usr/sbin 比如,/usr/sbin/useradd
/usr/local/bin
/usr/local/sbin
其中, sbin 为超级用户 root 才能执行的程序
/usr/ 下系统自带的程序, /usr/local/ 是用户安装的程序
演示:修改PATH环境变量。。。
1 编辑 /etc/profile.d/myprofile.sh
设定 PATH 环境变量
export PATH=$PATH:/opt/tomcat/bin
2 注销,重新登录后生效
在终端里,以命令行方式来配置网络
常用命令: ifconfig , netstat 等
默认地,Ubuntu 下面不带 ifconfig 命令
需要使用 apt 软件包管理器
apt install net-tools 安装一个软件包
apt remove net-tools 移除一个软件包
apt search xxx 搜索
apt list | grep xxx 列表
如果出现:
E: 无法定位软件包问题”
解决:输入 sudo apt-get update 更新一些软件源。
1 查看网络配置
ifconfig
其中,if 表示 interface 网络接口
会列出所有的网络接口,及各个接口的状态
2 开启/禁用网络
sudo ifconfig xxx up
sudo ifconfig xxx down
vi / vim , 一个基于控制台的文本编辑器
gedit , 一个基于GUI的文本编辑器
其中,vim 是 vi 的升级版, 演示使用 vim 命令
1 打开文本编辑
vim abc.txt
如果目标文件存在,则打开编辑;如果不存在,会新建一个文件
如果系统上没有 vim ,就安装一下:
sudo apt install vim
2 切换模式
编辑模式 Insert Mode: 按 i 键
命令模式 Command Mode: 按 ESC 键
3 退出编辑
1、按 ESC 键,进入命令模式
2、输入 :wq 保存并退出
3、输入 :q 退出
4、输入 :q! 强制退出 ( 放弃保存 )
Linux文本文件的编辑
1 桌面环境:gedit
2 终端环境:
- 少量修改 : vim
- 大量修改 : 在 Windows上编辑,然后上传到Linux
推荐:在 Windows上编辑,然后上传到 Linux
使用 notepad ++ 或者其他的专业编辑器
文本文件的换行符
Windows : \r\n
Linux : \n
可以在 Notepad ++ 里观察到此区别
视图 | 显示符号 | 显示行尾符
换行符的转换:
编辑 | 文档格式转换 | 转换为 UNIX格式
注意:只有在编辑 SHELL 脚本时,才需要转换
其他格式的文件一般都不需要转换,如*.xml, *.java
在 Ubuntu上面运行:
dos2unix xxx.sh
也可以将 xxx.sh转成 UNIX的换行风格( \n )
如果系统里没有这个命令,可以安装一下:
sudo apt install dos2unix
Shell脚本的编辑 。。
1 用 Notepad++打开编辑 mytest.sh
2 转成 Unix格式 \n
3 上传至Linux
4 chmod +x mytest.sh
5 运行 ./mytest.sh
程序 Program:指一个程序文件,如 notepad.exe
进程 Process:当一个程序运行起来,在操作系统内创建一条记录,
用于描述和控制它的运行
比如,打开多个 notepad.exe ,则得到多个进程
查看进程命令:
ps -ef
其中,各个字段的含义:
UID : 执行者
PID : 进程ID
PPID : 父进程ID
STIME : 启动时间
CMD : 启动时调用的命令行
㈡ ubuntu16.04怎么搭建python开发环境
简述
原来在windows下实现的python code,因为业务需要,要将其放到Ubuntu(其实是Linux)下来进行开发和demo。因此安装了目前最新的Ubuntu16.04 64bit系统,并搭建带有GUI的python开发环境。
环境与工具选择
最终确认选择“Ubuntu16.04(64 bit)+ Python3.5 + Qt5.7.0 + SIP4.18.1 + PyQt5.7 + QScintilla2.9.2 + Eric6.0 ”
首先Ubuntu16.04是默认安装了python2.7和python3.5的,因此python这部分就可以不需要安装了。因为涉及GUI的开发,所以要准备pyqt的环境等东西。查看系统python版本:
python
python3
python3.5
另外,需要安装一个python模块:
sudo apt-get install python3-dev
否则后面的SIP安装会有找不到python.h的错误提示。
QT安装
软件安装
可以从官网下载,也可以从http://download.qt.io/archive/qt/下载,我下载了5.7.0的Linux 64bit版本,是一个.run文件。
使用上面的两行命令,进行安装,此时会弹出安装对话框:
然后按照提示一步步选择即可:
安装完成后,可以直接打开QT Creator:
软件配置
我的Qt5.7.0安装在/home/ethan下,这是在前面的安装步骤时选择的。而在/home/ethan/Qt5.7.0/5.7/gcc_64/bin/下有qmake。
安装完成后用下面的命令配置一下PATH,在当前用户主目录下的.bashrc (or .zshrc)文件中加入:
export QTDIR=/home/ethan/Qt5.7.0/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}
此时再在命令行中输入qmake,看到如下:
说明配置成功了。
另外需要将/usr/lib/x86_64-linux-gnu/qt4/bin/qmake软连接到/home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake上,否则后面在编译安装PyQt时可能会出问题:
sudo ln -s /home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake /usr/lib/x86_64-linux-gnu/qt4/bin/qmake
这里最好把OpenGL的库也安装上,不然后面的GUI相关工具的安装会有问题:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
SIP安装
因为系统接口都是C, C++的而python要调用这些C/C++接口,就需要这个SIP,安装PyQt之前必须先安装对应版本的SIP。PyQt编译时使用的SIP版本必须与python默认调用的SIP保持一致!否则python中是无法调用PyQt的。QT安装的是当前最新的QT5.7.0,这里SIP最新版本也到了4.18.1,从SIP下载https://riverbankcomputing.com/software/sip/download下载SIP安装文件,sip-4.18.1.tar.gz。在下载SIP之前,需要确认下自己的系统没有默认安装过其他版本,否则容易造成混乱。用
sip -V
可以看到系统的sip版本。不过我的系统并没有SIP的。
下载的sip-4.18.1.tar.gz是一个源码包,需要在本地编译后安装:
tar -zxvf sip-4.18.1.tar.gz
cd sip-4.18.1
python3 configure.py
sudo make
sudo make install
然后需要核对下当前的SIP版本以及python3中使用的SIP的版本,看两者是否一致。核对当前SIP版本:
sip -V
会看到是4.18.1
然后命令行中输入python3,打开python3.5环境,输入:
>>> import sip
>>> print(sip.SIP_VERSION_STR)
也看到显示是4.18.1的,这样就说明SIP版本一致了,安装OK。
QScintilla安装
QScintilla2是连接编译器和Python的接口,是Eric的必需前置组件。QScintilla2 中需要单独安装3个模块,本体,Designer和python bindings。这一步先只安装本体部分,后面两个需要等安装了PyQt5才能安装,这个顺序不能搞错,不然会在安装QScintilla的python bindings时会无法生成C++ code,导致安装的失败。首先需要从QScintilla下载https://www.riverbankcomputing.com/software/qscintilla/download下载源码包。下载完成后,对QScintilla_gpl-2.9.3.tar.gz进行解压:
tar -xzvf QScintilla_gpl-2.9.3.tar.gz
cd QScintilla-gpl-2.9.3
安装本体:
cd Qt4Qt5
qmake qscintilla.pro
sudo make
sudo make install
如果在上面的sudo make时,出现“/usr/bin/ld: cannot find -lGL”问题,可以用如下命令做个软连接:
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
之后再去sudo make。
PyQT5安装
PyQt是Python的一个跨平台图形开发工具集,是Python与Qt的成功融合。PyQt包含了大约440个类、超过6000个的函数和方法。
首先从PyQt5下载https://www.riverbankcomputing.com/software/pyqt/download5下载目前最新版本,PyQt5_gpl-5.7.tar.gz。使用如下命令编译安装:
tar -zxvf PyQt-gpl-5.7.tar.gz
cd PyQt-gpl-5.7
python3 configure.py
sudo make
sudo make install
然后使用python3命令进入python环境,输入:
>>>import PyQt5
此时没有任何提示,说明安装没有问题,PyQt5 mole import OK。
QScintilla安装后续部分
前面已经安装了本体Qt4Qt5部分了,这里在安装完PyQt5后,再继续安装后面的两个部分。
安装Designer
cd QScintilla-gpl-2.9.3/designer-Qt4Qt5
qmake designer.pro
sudo make
sudo make install
如果在sudo make时,遇到“fatal error: GL/gl.h: No such file or directory”的问题,这是由于系统中没有安装OpenGL库所导致。使用如下命令进行安装OpenGL库即可:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
安装后再进行sudo make,就OK了。
安装Python bindings
cd QScintilla-gpl-2.9.3/Python
python3 configure.py --pyqt=PyQt5
sudo make
sudo make install
这里Python bindings安装时需要指定 –pyqt=PyQt5参数,否则默认是为PyQt4安装。或者直接修改其configure.py,将pyqt5_is_default = False改为pyqt5_is_default = True也可。
Eric6安装
Eric是一款强大的开源Python IDE,支持Qt界面设计器的Eric在Python GUI开发中更是首屈一指,Python+PyQt+Eric已经成为一种标准的Python GUI开发平台。首先从Eric6下载https://sourceforge.net/projects/eric-ide/files/下载安装包代码–eric6-6.1.7.tar.gz。然后用如下命令解压安装:
tar -zxvf eric6-6.1.7.tar.gz
cd eric6-6.1.7
sudo python3 install.py
此过程会检测之前安装的各个软件及其版本信息,并且很快会安装完成:
因为是通过sudo python3 install.py来安装,在打开eric6时也要在前面加上sudo:
sudo eric6
接下来打开eric6界面进行配置,主要是配置eric编辑器功能:
刚打开界面,就提示需要进行配置:
选择Settings -> preference -> Editor -> Autocompation。勾选所有选框,打开代码自动完成功能:
选择Settings -> preference -> Editor -> QScintilla 。勾上左右的两个选框,然后在下面source中,选择from Document and API files:
选择Settings -> preference -> Editor -> APIs。勾选Complie APIs Autocompation,在Language中,选择python3。点面下面的Add from installed APIs按钮,选择住需要的.api文件。最后点击Compile APIs:
选择Settings -> preference -> Interface -> Interface。右侧Language根据喜好选择中文或者English,我这里并没有安装中文语言包,所以使用默认的English。
接下来选择自己的工程文档将要放置的位置:
最后要重启eric才生效。
接下来用一个小的demo简单验证下python开发环境是否搭建OK。
创建一个demo1.py的python源代码,demo code:
#!/usr/bin/env python
from PyQt5.QtWidgets import (QApplication, QLabel)
import sys
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("<center>Hello World with PyQt5!</center>")
label.resize(200, 50)
label.show()
sys.exit(app.exec_())
然后在放置demo1.py路径下,使用如下命令运行该demo:
python3 demo1.py
㈢ 如何在ubuntu6中安装python
1.输入命令python
㈣ 在ubuntu上安装python编辑器
你安装上去的只是个运行环境,你只需要打开终端,输入"python"就可以运如型行你的python命令渣尘猜了。
mypc@zhao:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> print "Hello world!"兄罩
Hello world!
>>>