赞
踩
Unity启动器不再无法移动。从Ubuntu 16.04开始,用户可以实现改变启动器的位置,可以将启动器移到屏幕底部,但是无法移到右边或顶部。打开终端,然后输入下面这个命令,即可将启动器移到屏幕底部:
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
如果你使用后,觉得不喜欢,还可以恢复到屏幕左边,只要运行:
gsettings set com.canonical.Unity.Launcher launcher-position Left
首先打开“系统设置”,单击“外观”,然后单击“行为”,勾选“添加显示桌面图标到启动器”
#查询指定软件有多少个版本
说明:在Linux用这个查询并不能完全的把所有版本都列举出来,因为每个版本都与系统版本和CPU架构有关,比如一个软件支持Ubuntu系统的16.04的CPU架构为amd64的版本只有1.0和1.2,其余都不支持,所以列举时就只有两款。
列举版本列表:
0、通过网站搜索:
https://packages.ubuntu.com/
1、
apt-cache madison <<package name>>
将列出所有来源的版本。如下输出所示:
apt-cache madison vim
vim | 2:7.3.547-1 | http://debian.mirrors.tds.net/debian/ unstable/main amd64 Packages
vim | 2:7.3.429-2 | http://debian.mirrors.tds.net/debian/ testing/main amd64 Packages
vim | 2:7.3.429-2 | http://http.us.debian.org/debian/ testing/main amd64 Packages
vim | 2:7.3.429-2 | http://debian.mirrors.tds.net/debian/ testing/main Sources
vim | 2:7.3.547-1 | http://debian.mirrors.tds.net/debian/ unstable/main Sources
#安装较老版本软件
Ubuntu 16.04 x64 apt-get 最低版本的的jdk是openjdk-8,最低版本的libgif是libgif7。要想安装低版本的软件,最佳的办法是添加ubuntu官方的trusty源,也就是14.04的源即可。
备份原来的源
sudo cp sources.list sources.list.1604
修改源,删除原来的记录,添加老版本源记录
比如,使用清华的源,则在source.list里添加上trusty源,然后就可以apt-get安装了。具体例子如下
vim /etc/apt/source.list
在文件最下方添加 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main
apt-get update
apt-get install openjdk-7
安装完成,恢复apt源
sudo apt remove pkg-name
sudo apt purge pkg-name
打开配置文件进行修改:
sudo vim /etc/network/interfaces
看到配置文件的内容是:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
修改增加新内容:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 静态IP地址
netmask 255.255.255.0
gateway 默认网关
dns-nameservers DNS1 DNS2
总结:
ubuntu 14.04 的网络配置文件位置:/etc/network/interface。
ubuntu 14.04 的重启网络的命令是:sudo /etc/init.d/networking restart
$ sudo gedit /etc/ppp/options
lcp-echo-failure次数设为一个较大的数值就行了,默认好像是4,改成40就好了。
如果安装时选择了中文字符集,现在想改成西文字符集。
sudo vi /etc/default/grub
注释掉 GRUB_CMDLINE_LINUX_DEFAULT=”quiet” 这行, 即 #GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
把GRUB_CMDLINE_LINUX=”" 改为 GRUB_CMDLINE_LINUX=”text”
去掉 #GRUB_TERMINAL=console 的注释,即 GRUB_TERMINAL=console
sudo update-grub
$ systemctl get-default
graphical.target
sudo systemctl set-default multi-user.target
sudo reboot
sudo systemctl start lightdm
查看现有磁盘分区
sudo fdisk -l
下面新增分区:
$ sudo fdisk /dev/sda
> 输入m可查看命令帮助[可选操作]
> 输入n,新增分区,分区类型可选:p primary; l logic
> 输入p,分区号选择3或4,1和2系统已占用
> 输入起始扇区和结束扇区,一般默认即可。特殊情况下,需根据已有分区扇区使用情况确定。如上图中三个分区,那么起始扇区可以设置在 /dev/sda2结束分区之后,
/dev/sda2 结束扇区为 41940991,那么新分区的起始扇区需要比它大,如:41940995. 结束扇区默认即可
> 输入w,保存修改
使分区生效
$ sudo partprobe
查看刚才新建的分区
$ sudo fdisk -l
设置分区的文件系统类型
$ sudo mkfs.ext3 /dev/sda3
现在,系统磁盘已经准备好,只需要把磁盘挂载到某个文件目录下即可。
例如:在 home 下新建disk1作为这块磁盘挂载点[可挂到根目录文件 /diskname]
$ mkdir disk1
$ sudo mount /dev/sda3 /home/scfdeveloper/disk1
修改disk1所有者
sudo chown -R gsl:gsl /home/scfdeveloper/disk1
设置开机磁盘自动挂载
$ vi /etc/fstab
添加行
/dev/sda3 /home/scfdeveloper/disk1 ext3 defaults, 0 1
此时,磁盘已经挂好,下面查看挂好的磁盘
图形界面安装比较简单,命令行方式适合ssh远程登录设备的安装。
对于Debian, Mint, Ubuntu, Kubuntu, Xubuntu…系统
For modern DEB-systems (32/64-bit) you need the teamviewer_i386.deb package.
For installing TeamViewer, we recommend using the graphical installer, as described above.
Installation via command line
If you prefer to use the command line, or if there is no graphical installer available, you can use one of these commands as an administrator:
wget https://download.teamviewer.com/download/teamviewer_i386.deb
apt install teamviewer_12.0.xxxxx_i386.deb
Older systems (Ubuntu 14.04, Debian 7 and below)
Run this command:
dpkg -i teamviewer_12.0.xxxxx_i386.deb
In case dpkg indicates missing dependencies, complete the installation by executing the following command:
apt-get install -f
$ teamviewer --info
TeamViewer 12.0.90041 (DEB)
teamviewerd status ● teamviewerd.service - TeamViewer remote control daemon
Loaded: loaded (/etc/systemd/system/teamviewerd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-02-26 14:46:36 CST; 16s ago
Process: 3271 ExecStart=/opt/teamviewer/tv_bin/teamviewerd -d (code=exited, status=0/SUCCESS)
Main PID: 3273 (teamviewerd)
CGroup: /system.slice/teamviewerd.service
└─3273 /opt/teamviewer/tv_bin/teamviewerd -d
也可用这个命令来查看,和centos一致
$ systemctl status teamviewerd.service
$ teamviewer help
$ teamviewer license accept
$ teamviewer setup
Welcome to TeamViewer configuration.
This short guide helps you to setup TeamViewer on this device. After you have successfully
finished the setup, this device will automatically be available in your Computers &
Contacts.
需要注册帐号,添加信任设备等
设置口令
$ teamviewer passwd [PASSWD]
$ teamviewer daemon enable
1、首先查看telnet运行状态
#netstat -a | grep telnet
输出为空,表示没有开启该服务
2、安装openbsd-inetd
#apt-get install openbsd-inetd
如果已经安装过了,会提示已经安装过了,直接执行下面的步骤就可以了。
3、安装telnetd
#apt-get install telnetd
安装完之后,查看/etc/inetd.conf的内容会多了一行telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
#cat /etc/inetd.conf | grep telnet
输出: telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
4、重启openbsd-inetd
# /etc/init.d/openbsd-inetd restart
输出:* Restarting internet superserver inetd
5、查看telnet运行状态
#netstat -a | grep telnet
输出:tcp 0 0 *:telnet : LISTEN
此时表明已经开启了telnet服务。
6、telnet登陆测试
#telnet 127.0.0.1
输出:
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’. (停在这里的时候要按Ctrl+] 然后回车)
telnet> (表示登陆成功)
sudo apt install openssh-server
sudo service ssh start
sudo ps -e | grep ssh
或者
sudo service ssh status
sudo systemctl enable ssh.service
sudo vim /etc/ssh/sshd_config
找到Port 22,然后改成相应的端口。建议先保留22端口的。后面连接成功了之后再删除22端口,保险起见。
sudo service ssh restart
netstat -an | grep "LISTEN "
用端口进行连接
ssh username@ip -p 50022
连接成功之后记得把22端口去除
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。我用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
免密登录是第二种情况, 交互验证的细节如下:
1、客户端请求连接服务器,服务器将一个随机字符串发送给客户端
2、客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
3、服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
客户端即生成RSA公钥和私钥:
一般在用户的根目录新建一个.ssh/.文件夹,在文件夹中通过ssh-keygen -t rsa命令来产生一组公私钥。
$ ssh-keygen -t rsa
默认生成~/.ssh目录。其中生成两个文件如下:
$ ls
id_rsa id_rsa.pub
id_rsa是私钥,id_rsa.pub是公钥,公钥需要放到免密登录的服务器。
使用以下命令即可,以下命令直接在服务器端建立了目录和生成响应文件。
$ ssh-copy-id -i id_rsa.pub gsl@192.168.122.24
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
The authenticity of host '192.168.122.24 (192.168.122.24)' can't be established.
报了个错误,强制执行,后面的错误可能和这个有关。
也可用scp考过去,但比较复杂,还需要在服务器建立.ssh目录和相应文件,及修改文件。
服务器端建立的目录和文件如下:
~/.ssh$ ls
authorized_keys
登录成功后,这里也会产生一个文件,know_hosts : 已知的主机公钥清单,这个作为A端和B端都会自动生成这个文件,每次和远端的服务器进行一次免密码ssh连接之后就会在这个文件的最后追加对方主机的信息(不重复)
尝试登录
$ ssh gsl@192.168.122.24
sign_and_send_pubkey: signing failed: agent refused operation
gsl@192.168.122.24's password:
仍然需要密码,签名失败,代理拒绝,使用以下命令,adds private key identities to the authentication agent
$ ssh-add
Enter passphrase for /home/gsl/.ssh/id_rsa:
Identity added: /home/gsl/.ssh/id_rsa (/home/gsl/.ssh/id_rsa)
再copy下
$ ssh-copy-id -i id_rsa.pub gsl@192.168.122.24
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
(if you think this is a mistake, you may want to use -f option)
提示没有必要,再登录
$ ssh gsl@192.168.122.24
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.13.0-36-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
151 packages can be updated.
0 updates are security updates.
已经不需要密码了。
如果嫌每次连接的时候很麻烦,我们可以在客户端,利用 ssh 的用户配置文件 config 管理 多个免密码ssh 会话。ssh 的用户配置文件是放在当前用户根目录下的 .ssh 文件夹里(~/.ssh/config,不存在则新创建一个),其配置写法如下:
Host 别名
HostName 主机名
Port 端口
User 用户名
IdentityFile 密钥文件的路径
配置完后我们就可以通过这种方式登录了
$ ssh web01test
如果想要获得最大化的安全性,禁止口令登录,可以修改服务器上/etc/ssh/sshd_config中的
PasswordAuthentication yes 改为
PasswordAuthentication no
也即只能使用密匙认证的openssh,禁止使用口令认证。
tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等)。它是一个终端多路复用器,同时具有即时分享终端的能力。它允许在单个屏幕中创建并操控多个终端,同时这些终端还能与其他同事分享。
你可以分离会话,让作业在后台运行,然后在想要查看状态时重新连接会话。tmate 提供了一个即时配对的方案,让你可以与一个或多个队友共享一个终端。
在屏幕的地步有一个状态栏,显示了当前会话的一些诸如 ssh 命令之类的共享信息。
运行 tmate 时,会通过 libssh 在后台创建一个连接到 tmate.io (由 tmate 开发者维护的后台服务器)的 ssh 连接。
tmate.io 服务器的 ssh 密钥通过 DH 交换进行校验。
客户端通过本地 ssh 密钥进行认证。
连接创建后,本地 tmux 服务器会生成一个 150 位(不可猜测的随机字符)会话令牌。
队友能通过用户提供的 SSH 会话 ID 连接到 tmate.io。
使用 tmate 的必备条件
由于 tmate.io 服务器需要通过本地 ssh 密钥来认证客户机,因此其中一个必备条件就是生成 SSH 密钥 key。 记住,每个系统都要有自己的 SSH 密钥。
tmate 已经包含在某些发行版的官方仓库中,可以通过包管理器来安装。
对于 Debian/Ubuntu,可以使用 APT-GET 命令或者 APT 命令to 来安装。
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:tmate.io/archive
$ sudo apt-get update
$ sudo apt-get install tmate
你也可以从官方仓库中安装 tmate。
$ sudo apt-get install tmate
对于 Fedora,使用 DNF 命令 来安装。
$ sudo dnf install tmate
对于基于 Arch Linux 的系统,使用 Yaourt 命令或 Packer 命令 来从 AUR 仓库中安装。
$ yaourt -S tmate
或
$ packer -S tmate
对于 openSUSE,使用 Zypper 命令 来安装。
$ sudo zypper in tmate
成功安装后,打开终端然后输入下面命令,就会打开一个新的会话,在屏幕底部,你能看到 SSH 会话的 ID。
$ tmate
要注意的是,SSH 会话 ID 会在几秒后消失,不过不要紧,你可以通过下面命令获取到这些详细信息。
$ tmate show-messages
tmate 的 show-messages 命令会显示 tmate 的日志信息,其中包含了该 ssh 连接内容。
现在,分享你的 SSH 会话 ID 给你的朋友或同事从而允许他们观看终端会话。除了 SSH 会话 ID 以外,你也可以分享 web URL。
另外你还可以选择分享的是只读会话还是可读写会话。
只需要在终端上运行你从朋友那得到的 SSH 终端 ID 就行了。类似下面这样。
$ ssh session: ssh 3KuRj95sEZRHkpPtc2y6jcokP@sg2.tmate.io
官方网站地址http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,选择合适版本下载。
解压下载包
$ tar -zxvf jdk-8u151-linux-x64.tar.gz
把解压包放到合适的位置,一般是这样规定的:
export JAVA_HOME=/usr/lib/jdk1.8.0_101
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
JAVA_HOME/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:CLASSPATH:
J
A
V
A
H
O
M
E
/
l
i
b
:
JAVA_HOME/lib:
JAVAHOME/lib:JRE_HOME/lib
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME=/usr/lib/jdk-8是配置jdk的主目录
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
是
配
置
j
r
e
的
目
录
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
JAVA_HOME/jre是配置jre的目录 export CLASSPATH=.:
JAVAHOME/jre是配置jre的目录exportCLASSPATH=.:CLASSPATH:
J
A
V
A
H
O
M
E
/
l
i
b
:
JAVA_HOME/lib:
JAVAHOME/lib:JRE_HOME/lib是配置的CLASSPATH目录
使配置生效
$source /etc/profile
$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
vi查看正常,但gdb时显示乱码
用file命令查看你的文件类型是不是UTF-8,例如:
file 带路径的文件名
显示结果:“文件名字: UTF-8 Unicode text”
结果中的UTF-8就是文件的编码格式。
由于gdb只支持UTF-8,所以要把文档转换成UTF-8文档。其转换工作方法如下:
vim将要转换的文件打开,敲入命令:set fileencoding=utf-8。然后保存就可以解决此问题。
在centos中通过vim编辑,显示中文正常,但换到ubuntu中的vim发现是乱码,而bantu本身安装的就是中文系统,可以建立中文的文件名和文件夹,应该不是系统的问题,通过file查看文件的编码方式,发现没有乱码的文档使用了
main.cpp: C source, UTF-8 Unicode (with BOM) text, with CRLF line terminators
这种编码方式,有乱码的使用的是这样的格式
C source, UTF-8 Unicode text, with CRLF line terminators
差别在于(with BOM),把文件拿到ue里另存下即可。
gsl@M410:~$ sudo apt-get update
[sudo] gsl 的密码:
命中:1 http://cn.archive.ubuntu.com/ubuntu xenial InRelease
命中:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
命中:3 http://cn.archive.ubuntu.com/ubuntu xenial-updates InRelease
命中:4 http://cn.archive.ubuntu.com/ubuntu xenial-backports InRelease
正在读取软件包列表... 完成
gsl@M410:~$ sudo apt install docker.io
sudo apt install curl
curl -sSL https://get.docker.com/ | sh
安装完成后,启动Docker守护进程
sudo service docker start
docker start/running .process 3050
gsl@M410:~$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
gsl@M410:~$ sudo docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb Unable to find image 'mariadb:latest' locally latest: Pulling from library/mariadb 7ddbc47eeb70: Pull complete c1bbdc448b72: Pull complete 8c3b70e39044: Pull complete 45d437916d57: Pull complete 215d801d0263: Pull complete 59feacde9e08: Pull complete 741aa98d779c: Pull complete e3f771d07df1: Pull complete 38be307a8063: Pull complete 5ef9df553f6d: Pull complete 4cbd7d15547b: Pull complete 6c6ad526a125: Pull complete c610f45a4f57: Pull complete 37452d4d6df6: Pull complete Digest: sha256:3ce0da3d4d794f9b3692627c9b97b1f22d8c680ddde9bd17839d134b3ab30b07 Status: Downloaded newer image for mariadb:latest 12231795ce662ccd7eac5ea610b26b325956c66ea4dc9e6303821592bc92fef8
gsl@M410:~$ sudo docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress Unable to find image 'wordpress:latest' locally latest: Pulling from library/wordpress 8d691f585fa8: Pull complete cba12d3fd8b1: Pull complete cda54d6474c8: Pull complete 412447ed0729: Pull complete 84de6fc539c3: Pull complete d67567ed6145: Pull complete 22ca6c438da4: Pull complete aaaf25e57dd6: Pull complete fbccd385090a: Pull complete 15b403f621d7: Pull complete 1cae2d7071d0: Pull complete 5c0cbd6e0573: Pull complete 1b48a6c1e889: Pull complete 855d31502496: Pull complete 10805e670603: Pull complete e8bb78a1b6fd: Pull complete 2ad26d4ff931: Pull complete 98da1a26f856: Pull complete 9cbdfce1994c: Pull complete a872c625da6b: Pull complete f36709107bb2: Pull complete Digest: sha256:546e4bc9198845d8a1c89e212f73e520176759f3c625280b7a2f668bbabb19a8 Status: Downloaded newer image for wordpress:latest 630a21c78fb7d70c46b4998b0693dc1443bab088079bf8978ca6f24b8d18f047
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。