Ubuntu
APT 包管理工具
// 搜索软件包
apt-cache search PackageName
apt-cache search openjdk
//列出已安装的所有软件包
dpkg -l
// 搜索已安装的
apt list --installed
apt list --installed | grep openjdk
//删除软件包, 保留配置文件
apt-get remove PackageName
//删除软件包, 同时删除配置文件
sudo apt-get --purge remove openjdk-8-jdk
openjdk-8-jre-headless/
apt-get 安装软件包
//普通安装
apt-get install PackageName
//安装指定包的指定版本
apt-get install PackageName=VersionName
//重新安装
apt-get --reinstall install PackageName
//安装源码包所需要的编译环境
apt-get build-dep PackageName
//修复依赖关系
apt-get -f install
//下载软件包的源码
apt-get source PackageName
//删除软件包, 同时删除为满足依赖, 而自动安装且不再使用的软件包
apt-get purge PackageName
//删除软件包, 删除配置文件
apt-get autoremove PackageName
//删除不再使用的依赖包
apt-get --purge autoremove PackageName
//清除 已下载的软件包 和 旧软件包
apt-get clean && apt-get autoclean
//获取软件包的相关信息, 如说明、大小、版本等
apt-cache show PackageName
//查看该软件包需要哪些依赖包
apt-cache depends PackageName
//查看该软件包被哪些包依赖
apt-cache rdepends PackageName
//检查是否有损坏的依赖
apt-get checkUbuntu Python 环境
对于Python 3,使用以下命令:
sudo apt install python3
使用以下命令创建一个虚拟环境:
python3 -m venv langchain0.3
激活虚拟环境:
source langchain0.3/bin/activate
Ubuntu J2E环境
安装mysql
- 安装
sudo apt-get install mysql-server
sudo apt-get install mysql-client
//sudo apt-get install libmysqlclient-dev-
登陆到mysql (默认端口3306)
mysql -u root -p -
使用
参考另一篇笔记 : N_mysql.md
Open JDK
Oracle JDK
安装
-
官网下载 for linux
-
例
Linux x64 jdk-xxx-linux-x64.tar.gz -
解压 :
tar -xvf jdk-8u131-linux-x64.tar.gz -
移动到 :
sudo mv jdk1.8.0_161/ /opt/ -
配置环境变量 :
依次执行
CLASS_PATH="/opt/jdk1.8.0_161/lib"
JAVA_HOME="/opt/jdk1.8.0_161"
PATH=$PATH:$JAVA_HOME/bin- 执行java,javac命令
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_161/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_161/bin/javac 300- 选择默认版本(多版本的情况)
sudo update-alternatives --config java
- 测试
java | javac | java - version
卸载
update-alternatives --display java//查看安装版本
sudo update-alternatives --remove "java" "/opt/jdk1.8.0_161/bin/java"
sudo update-alternatives --remove "java" "/opt/jdk1.8.0_161/bin/javac"
sudo update-alternatives --remove "java" "/opt/jdk1.8.0_161/bin/javaws"
//确认这些符号链接(symlinks)是否都删除了
java -version
javac -version
which javaws
//更新
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javaws
安装tomcat
-
官方下载:
- 例:
apache-tomcat-7.0.78.tar.gz
- 例:
-
解压:
tar -xvf apache-tomcat-9.0.1.tar.gz
-
移动:
sudo mv apache-tomcat-9.0.1 /opt/
-
./bin/目录下有启动和关闭脚本,运行即可。sudo ./startup.shsudo ./shutdown.sh
Ubuntu Hello Word
安装Shadowsocks 服务端
- 安装python3
apt-get install python3-pip - 安装shadowsocks
pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip - 创建配置文件
vi/etc/shadowsocks/config.json
{
"server":"::",
"server_port":8899,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"abcd369258147",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}- 后台运行:
ssserver -c /etc/shadowsocks/config.json -d start
参考:ssserver -h
安装Shadowsocks 客户端
- 安装ss
sudo apt-get update sudo apt-get install python-gevent python-pip pip install shadowsocks
-
run sslocal -s 1.1.1.1 -p 9999 -k “your passwd” -b 127.0.0.1 -l 1080 read config file run sslocal -c /home/dumblidor/ss.json
-
全局模式
系统设置 >> 网络 >> 网络代理 >> 方法 >> 手动 然后将Socks主机的ip和端口填好 Socks = 127.0.0.1 端口=1080
- pac 模式 sudo pip install genpac
genpac —format=pac —pac-proxy=“SOCKS5 127.0.0.1:1080” -o autoproxy.pac
系统设置 >> 网络 >> 网络代理 >> 方法 >> 自动 在配置URL处填写file:// 后面跟你的pac文件路径,如图,然后点击应用到整个系统:
https://www.cnblogs.com/Dumblidor/p/5450248.html
安装ShadowsocksR 服务端
bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/ubuntu_install_ssr.sh)
ssr 配置信息: IP(address): 8.218.177.105 端口(port):5600 密码(password):asgfsdhyuituyi743tgsfdgsdgsfga 加密方式(method): aes-256-cfb 协议(protocol): auth_chain_b 混淆(obfuscation): http_simple
启动脚本: /usr/local/shadowsocks/server.py 配置文件: /etc/shadowsocksR.json 还安装了服务 systemctl start shadowsocksR systemctl stop shadowsocksR
参考: { start | stop | restart | status }
Ubuntu 配置 SSH和FTP
- 更新软件源
sudo apt-get update
Ubuntu的软件源列表, 保存在一个 /etc/apt/sources.list 文件中,默认权限644,拥有者root
-
建议备份一下
cp /etc/apt/sources.list /etc/apt/sources.list.back
-
编辑文件
vi /etc/apt/sources.list
-
换成阿里云的源
末尾 源url
1. openssh-SSH
-
证书/ssh配置
-
linux端, 安装 ssh 服务
sudo apt-get install openssh-server
-
生成公/密钥
-
方式1, 在linux上执行:
ssh-keygen -b 2048 -t rsa然后键入保存文件名和密钥密码(密钥可以不设密码,以实现无密登陆)
会在当前目录生成, 公钥和密钥证书文件
有.pub 后缀的是公钥,没有的是私钥 -
方式2, 使用puttygen
运行 puttygen.exe -> generate 在Key Passphrase 可以为密钥设置密码 ->保存 公/私钥
authorized_keys 文件的权限对当前用户至少要有读/写权限
-
-
创建 .ssh 目录,如果已经存在就不用建了
mkdir /root/.ssh
-
把公钥复制到~/.ssh目录下, 命名为authorized_keys
cp rsa-key.pub /root/.ssh/authorized_keys注意,如果已存在authorized_keys文件,请使用 cat 命令追加,以免破坏原来的认证
-
最好将整个目录权限都改为600 or 700
chmod 600 /root/.ssh
-
编辑sshd_config 配置文件
vi /etc/ssh/sshd_config找到配置项 改为如下;删掉注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h.ssh/authorized_keys
这个配置项,可以禁止密码登录,增加安全性
PasswordAuthentication no
-
重启服务生效
service sshd restart
-
-
puttygen使用私钥
putty选项,点窗口左侧的SSh –> Auth ,单击窗口右侧的Browse… 选择私钥, 再点Open
踩坑
-
SSH调试
-
ssh -v -p 27101 root@127.xxx.xxx.xxx -
某些目录权限太大 会导致SSH无法登陆
chmod 111 /var/empty/ /var/empty/sshd # 必须是 111权限; 拥有者是root?
service sshd restart
2. openssh-sftp
- SFTP与FTP
SFTP是Secure File Transfer Protocol(文件传送协议)的缩写。可以为传输文件提供一种安全的网络的加密方法。简单说就是文件传输是加密的。比传统的FTP明文传输安全。
- 未安装,先安装openssh-server
apt-get install openssh-server
FTP的用户、权限配置
-
新建ftp用户组
groupadd ftp
-
新建FTP专用用户user_ftp,加入 ftp 组,不能使用Shell
useradd –g ftp –s /bin/false user_ftp
usermod -g ftp user_ftp chsh user_ftp -/usr/sbin/nologin
-
修改其密码
passwd user_ftpabc123
-
建立限制目录
mkdir -p /ftpdir/user_ftp
-
建立上传目录
mkdir -p /ftpdir/user_ftp/up
-
限制权限
chmod 755 /ftpdir/user_ftpchmod 775 /ftpdir/user_ftp/up
-
更改上传目录的拥有者
chown user_ftp /ftpdir/user_ftp/up/
配置sshd_config文件
-
使用VI编辑/etc/ssh/sshd_config 文件
vi /etc/ssh/sshd_config
-
注释“#”掉,这一项
Subsystem sftp /usr/libexec/openssh/sftp-server
-
在文件末尾增加
#配置一个外部子系统,允许sftp
Subsystem sftp internal-sftp
#只有ftp用户组的才能访问
Match Group ftp
#限制用户访问的根文件夹
ChrootDirectory /ftpdir/user_ftp
Subsystem sftp internal-sftp --新增
Match Group sftp --新增
ChrootDirectory %h --新增,%h为用户主目录的意思
- 重启服务 生效
service sshd restart
OK []( ̄▽ ̄)*
3. 更易用的 WindTerm
Ubuntu 的环境变量
-
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.所以如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。可以通过命令source /etc/profile立即生效 -
/etc/bashrc或/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. -
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.
编辑环境变量
#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行命令使修改立即生效
source /etc/profile
配置软连接 软连接相当于windows系统中的快捷键,部分软件可能会从/usr/bin目录下查找Java,因此添加该软连接防止其他软件查找不到的情况。
sudo update-alternatives —install /usr/bin/java java /usr/lib/jdk/jdk1.8.0_171/bin/java 300
sudo update-alternatives —install /usr/bin/javac javac /usr/lib/jdk/jdk1.8.0_171/bin/javac 300
Ubuntu Nginx
目录
$sudo apt-get install nginx
Ubuntu 安装之后文件结构:
所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中
并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/var/www/nginx-default
(有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available/default 配置模块化里的配置)
Nginx 管理
$sudo /etc/init.d/nginx start
$sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx restart
修改静态IP
ifconfig -a //找到网卡名 (eth0)
修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0
Ubuntu 安装Go
获取最新的软件包源,并添加至当前的apt库 add-apt-repository ppa:longsleep/golang-backports
更新 apt库 apt-get update
安装go sudo apt-get install golang-go
鉴定是否安装成功 go version
Ubuntu 踩坑指南
关于sshd_config配置文件推荐:http://www.jinbuguo.com/openssh/sshd_config.html
Linux命令大全查询:http://man.linuxde.net/
N卡驱动
Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。
查看属性
$sudo ls -lh /etc/modprobe.d/blacklist.conf
修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf
用gedit编辑器打开
$sudo gedit /etc/modprobe.d/blacklist.conf
在该文件后添加一下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
3.开始安装 先按Ctrl + Alt + F1到控制台,关闭当前图形环境
sudo init 3
sudo rm /tmp/.X* $sudo service lightdm stop
再安装驱动程序 $sudo sh NVIDIA-Linux-x86_64-xxx.run
最后重新启动图形环境 $sudo service lightdm start
双系统 与win10时间不同步问题
win10跟Ubuntu 16.04时间不对的问题,在windows下时区不对:
sudo apt-get install ntpdate
sudo ntpdate time.windows.com
然后将时间更新到硬件上:
sudo hwclock --localtime --systohc
ubuntu 安装软件存放目录的 /usr/share/ /usr/lib/
文件锁的问题 ps -aux
系统内核 uname -a
从 硬盘安装 ubuntu desktop 16.4
-
ubuntu16.0.4.ios 镜像文件,和“.disk”文件夹和casper文件夹内的“initrd.lz”和“vmlinuz.efi”文件复制到C盘根目录
-
EasyBCD 在左侧工具列表中选择“添加新条目”,在右侧功能区选择右上角的“NeoGrub”选项卡,点击“安装”按钮。 再配置 →弹出menu.lst 编辑
title Ububtu install
root (hd0,0)
kernel (hd0,0)/vmlinuz.efi boot=casper iso-scan/filename=/ubuntu-16.04-desktop-amd64.iso ro quiet splash nomodeset locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz
(hd0,0) 指向的是当前系统盘的位置
ubuntu-16.04-desktop-amd64.iso 指Ubuntu系统镜像的文件名
2.1. 还要将iso文件入到该盘?
-
重启选择 Ububtu install 进入试用界面 打开终端 执行 卸载系统文件/离盘 sudo umount -l /isodevice
-
用自带的安装即可
或者 https://jingyan.baidu.com/article/e4d08ffdace06e0fd2f60d39.html
关于分区建议 /,swap,/tmp,/home
/:20G左右 swap:与内存相同 /boot:300M /home:剩下的全部空间
手动安装 grub引导
- 去官网下载 grub4dos_4.4.zip // http://grub4dos.org/
2.复制 grub4dos_4.4.zip/下的grldr和grldr.mbr文件到根目录 需要支持中文就复制grub4dos_4.4.zip/chinese/grldr
- /boot/grub 中寻找一个名字为grub.conf的设置文件 修改其配置文件
安装gui
#Xinit
sudo apt-get install xinit
#GNOME (环境管理器)
sudo apt-get install xinit
#(最后)桌面环境 2G多...
sudo apt-get install kubuntu-desktop
#以上大概占用3GB空间 =。=
reboot
#如果你只想装界面的核心环境,或者网速比较慢的话,可以
#sudo apt-get install gnome-core 或者 kde-core xface4
# 如果你装的是CORE的,那么你可能还需要做以下的工作:
# ().安装新立得软件包管理器
# sudo apt-get install gsynaptic
# ().安装中文支持(能够显示中文)
# sudo apt-get install language-support-zh
# ().从新立得软件包管理器中选择中文输入法支持和中文界面支持
# ().使用新立得软件包管理器安装其他你想要的软件
1.设置默认不进入GUI 【GUI占内存】
修改文件 [ /etc/X11/default-display-manager ]
内容为 /usr/sbin/gdm 默认进入图形界面
修改为false 则默认进入命令行
如果想从控制台进入图形界面,可以在控制台上输入命令 $ startx
2.desktop
1.sudo systemctl disable lightdm.service
将会直接卸载删除 lightdm,目前没找到直接恢复办法。
开启图形界面,默认图新界面
针对上述,只能重装 lightdm
2.
sudo systemctl set-default multi-user.target
只是修改默认交互目标,开机不会后台启动桌面。
sudo apt-get install --reinstall lightdm
对应上述,再切换回默认图形交互
#正确的关机
正确姿势的关机流程为:sync > shutdown > reboot > halt
sync 将数据由内存同步到硬盘中。
Shutdown –h now
# 关闭系统
halt 关闭系统,等同于shutdown –h now 和 poweroff
# 重启(慎用)
reboot
# 重启
shutdown -r
# -c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
# -f:重新启动时不执行fsck;
# -F:重新启动时执行fsck;
# -h:将系统关机;
# -k:只是送出信息给所有用户,但不会实际关机;
# -n:不调用init程序进行关机,而由shutdown自己进行;
# -r:shutdown之后重新启动;
# -t<秒数>:送出警告信息和删除信息之间要延迟多少秒。Ubuntu 安全更新问题
在 Ubuntu 14.04 以后的系统中,apt-get 相关的升级更新命令有四个:
apt-get update
apt-get upgrade
apt-get full-upgrade
apt-get dist-upgrade根据 apt-get 的官方手册:
- update - 从服务器更新可用的软件包列表。
- upgrade - 根据列表,更新已安装的软件包。upgrade 不会删除在列表中已经没有的软件包,也不会安装有依赖需求但尚未安装的软件包。
- full-upgrade - 根据列表,更新已安装的软件包。full-upgrade 可能会为了解决软件包冲突而删除一些已安装的软件包。
- dist-upgrade - 根据列表,更新已安装的软件包。- - - dist-upgrade 可能会为了解决软件包冲突而删除一些已安装的软件包,也可能会为了解决软件包依赖问题安装新的软件包。
关于: xx ackages can be updated. 和 xx updates are security updates.更新问题
依次执行:
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get dist-upgrade
- sudo reboot
完成更新
Ubuntu 国内源
//软件源 文件保存路径 /etc/apt/sources.list
//sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
//sudo vi /etc/apt/sources.list
//sudo apt-get update
############ 以下是 阿里云源 ubuntu 20
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse