Linux-daily-use
本文所有记录都是在ubuntu22.04版本上验证配置,其它版本可能并不适用,请谨慎参考
本文可能涉及到的桌面操作都是KDE桌面环境
常用Linux命令
# 查找命令
find / -name Your_want_find_file_name 2>/dev/null
# 添加用户
sudo adduser user_name
# 添加用户sudo权限
sudo usermod -a -G sudo user_name
# 删除用户同时删除用户文件夹
sudo userdel -r user_name
# 验证是否赋权成功
# 首先要先让目标用户退出系统
logout
sudo whoami
# 移除用户sudo权限
sudo deluser user_name sudo
# 验证是否移除成功
sudo -l -U user_name
# 添加软链接 软链接类似于C++中的指针 告诉系统某个需要索引文件的位置
ln -s source_file_name target_file_name
# 添加硬链接 硬链接会创建独立的虚拟文件 类似于一个文件的副本 具有相同的inode
ln source_file_name target_file_name
# 只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接,只能使用软链接。
# 所以一般情况下都是使用软链接 并且一般不创建软链接文件的软链接,这样会形成混乱的链接,并且链接极易断裂
# 查看系统登录日志
sudo cat /var/log/auth.log
# 显示系统中所有用户最近一次登陆的信息
lastlog
# 查看显卡
ubuntu-drivers devices
镜像源
- 备份默认配置文件
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
- 修改sources.list文件
# 此处使用华为镜像源 速度一般 胜在稳定
# 此处也可以更换腾讯源 速度快 官方镜像源链接:https://mirrors.tencent.com/
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
- 更新索引
sudo apt-get update
sudo apt-get upgrade
输入法
本节配置是在KDE桌面环境下
其它桌面环境如gnome、xfce等请谨慎参考
- 安装依赖
# https://blog.allwens.work/useFcitx5/
sudo apt install fcitx5 fcitx5-frontend-qt5 fcitx5-frontend-gtk3 fcitx5-frontend-gtk2 fcitx5-chinese-addons
sudo apt install kde-config-fcitx5
sudo apt install fcitx5-chinese-addons fcitx5-material-color
-
设置开机自启
-
通过
设置 -> 区域设置 -> 输入法 添加中文
,在设置 -> 区域设置 -> 输入法 -> 配置附加组件 -> Classic User Inteface -> 主题
中更改主题 -
中英文切换快捷键 Ctrl+Space
注册系统服务
以创建npc.service为例
- 创建npc.service文件
# 保证已找到npc所在目录
./npc -version
# 将npc可执行文件复制到用户的bin目录中
sudo cp npc /usr/local/bin/
# 查看是否可以正常识别
npc --version
# 进入系统服务配置文件目录
cd /usr/lib/systemd/system
# 创建你的目标服务文件 服务名.service
sudo touch npc.service
sudo vim npc.service
## 将以下文件复制到vim编辑框中 以下配置以NPC为例
[Unit]
Description=Stop kodi and start NPC
After=kodi.target
[Service]
Type=simple
# 服务启动时 所需的执行命令 注意这里需要自行配置参数
# 如果是frpc命令为--> frpc -c /usr/local/bin/frpc.ini
ExecStart=npc -server=xxx.xxx.xxxxx:xxxx -vkey=xxxxxx
Restart=always
RestartSec=2
StartLimitInterval=10
PrivateTmp=true
[Install]
WantedBy=multi-user.target
## npc.service config end
- 启动服务
# reload units
sudo systemctl daemon-reload
# 允许服务自启
sudo systemctl enable npc
# 启动服务
sudo systemctl start npc
# 查看启动状态
systemctl status npc
# 如果想停止服务
sudo systemctl stop npc
# 重启服务
sudo systemctl restart npc
SSH
- 卸载原有系统安装的openssh服务
sudo apt remove openssh-server
- 安装openssh
sudo apt install openssh-server
- 允许ssh自启
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
- 修改配置文件:/etc/ssh/sshd_config
sudo apt install vim
sudo vim /etc/ssh/sshd_config
#ssh服务监听端口号
Port 22
#允许通过用户名密码方式登入
PasswordAuthentication yes
#允许root用户登入
PermitRootLogin yes
# 密钥验证
PubkeyAuthentication yes
#监听地址
ListenAddress 0.0.0.0 # 0.0.0.0表示监听所有IPv4的地址 出于安全考虑,也可以指定监听地址,这时需要将主机设置为固定IP地址
-
如果是局域网下个人配置的服务器,最好是将个人服务器IP地址设置为固定地址
-
如果是 ubuntu 系统的话,且系统版本高于 version-18.0,IP 地址配置文件存储在 /etc/netplan中
-
修改该目录文件下的 .yaml文件,配置可参考如下
-
network: ethernets: eth0: # 网卡 dhcp4: false # 关闭dhcp功能 addresses: - 192.168.137.10/24 # 所要设置的地址 routes: - to: default via: 192.168.137.1 # 路由器或交换机地址 应该是可以不设置的,可以保持默认 nameservers: addresses: [] # 这里填写dns服务器地址,可以使用阿里dns,地址为 [223.5.5.5,223.6.6.6] version: 2 # 网络配置文件版本,现在默认是version-2版本
-
重启网络服务
-
# 重启网络服务 sudo netplan applay # 重启ssh服务 sudo service ssh restart
-
-
提高ssh安全性
# 可参考链接 : https://blog.csdn.net/cynthrial/article/details/82319498
# 本地主机生成密钥对
ssh-keygen
# 禁止服务器Root用户登录(服务器sshd_config)
PermitRootLogin no
#禁止通过用户名密码方式登入(服务器sshd_config)
PasswordAuthentication no
# 将本机的公钥字符串复制到服务器目录"~/.ssh/authorized_keys" 若服务器中没有.ssh文件夹则需要自己创建
# 服务器端执行
cd ~
mkdir .ssh
chmod 700 ~/.ssh
cd ssh
touch authorized_keys
chmod 600 authorized_keys
# 本地主机上传公钥
scp id_rsa.pub userName@host:/home/userName/.ssh/temp_authorized_keys
# 连接服务器之后
cat ~/.ssh/temp_authorized_key >> ~/.ssh/authorized_keys
ZSH
- 安装ZSH
sudo apt install zsh
sudo apt install git
chsh -s /usr/bin/zsh
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
# 这里如果提示连接失败进入 oh-my-zsh代码库 (https://github.com/ohmyzsh/ohmyzsh/blob/master/tools/install.sh) 复制 install.sh到本地
# 然后执行 bash ./install.sh
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
vim ~/.zshrc
# 在该文件中的插件处 添加 zsh-autosuggestions zsh-syntax-highlighting
- 若是先前已经安装Miniconda之类的环境 导致安装zsh之后找不到conda指令
sudo vim ~/.zshrc
# #########文件添加如下:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/z/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/z/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/z/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/z/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
- 像bash那样对安装包进行提示
sudo apt install command-not-found
sudo vim ~/.zshrc
# ##########文件添加如下:
# >>>> get zsh_command_not_found info >>>>>>
. /etc/zsh_command_not_found
# <<<<<<<<<<<<<<<<<<<<<<<<<
# 配置生效
source ~/.zshrc
sudo apt update
sudo apt-get update
- zsh显示全文件目录
cd ~/.oh-my-zsh/themes
sudo vim robbyrussell.zsh-theme
# 目录显示不完整的原因是 PROMPT字段中的%c对目录进行了省略,需要将%c更改为[$PWD]即可
# 将第二行修改为 PROMPT+=' %{$fg[cyan]%}[$PWD]%{$reset_color%} $(git_prompt_info)'
source ~/.zshrc
Miniconda
- 下载
cd ~/Downloads
#这里下载的是最新版本
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O Miniconda-lasted.sh
#Miniconda官网:https://conda.io/miniconda.html
- 安装
# 尽力那个不要使用sudo bash Miniconda-lasted.sh,使用sudo安装到整个系统环境中,不使用sudo安装到当前用户目录环境中
bash Miniconda-lasted.sh
# 一路回车 或者输入 yes即可
- 添加清华源
# 设置搜索时显示通道地址,该命令会创建 .condarc文件
conda config --set show_channel_urls yes
sudo vim ~/.condarc
##########复制内容到.condarc中########
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
# 若要删除源 只需要将.condarc中添加的清华镜像链接删除即可也就是只保留
# channels:
# - defaults
-
运行
conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。 -
为pip指定镜像源
pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
# 升级pip
pip install pip -U
-
更新当前conda,
conda update conda
-
创建虚拟环境
conda create -n your_env_name python=x.x
# 例如创建python3.10版本的虚拟环境
conda create -n env_py310 python=3.10
- 虚拟环境切换
# 查看环境
conda env list
# 切换虚拟环境
conda activate Your_env_name
# 退出虚拟环境
conda deactivate
- 虚拟环境删除
conda remove -n your_env_name --all
- 删除虚拟环境中某个包
conda remove --name your_env_name package_name
MySql安装
# 安装
sudo apt-get update
sudo apt install mysql-client-8.0 mysql-server-8.0
# 验证
mysql --version
# 新建root用户密码
sudo mysql_secure_installation
# =====================================
此时按照信息提示 完成密码设置并进行确认之后会报错
继续以下步骤
# =====================================
# 须通过linux的root用户进入root
su root
mysql
# 为数据库root用户设置密码为 'mynewpassword'
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
# password default : rootroot
# 退出mysql设置,回退至linux下的owner权限
exit;
exit
# 重新配置安全插件选项 包括密码
sudo mysql_secure_installation
# =============================
后续设置步骤根据实际需要进行设置即可
# =============================
Mininet安装
- 非服务器,或是服务器拥有网络下载安装权限
Mininet 2.3.0 on Debian 11/ubuntu22.04: sudo apt-get install mininet
Mininet 2.2.2 on Ubuntu 20.04 LTS: sudo apt-get install mininet
Mininet 2.2.2 on Ubuntu 18.04 LTS: sudo apt-get install mininet
# 测试
mn --version
# 可视化界面
cd /usr/share/doc/mininet/examples
# 保证miniconda或者python环境存在
python --version
# 安装包依赖
pip install mininet
# 启动可视化界面
python miniedit.py
# 配置别名 快速启动
sudo vim ~/.zshrc
# 在尾行添加如下
alias start_miniedit="conda activate env_py36; python /usr/share/doc/mininet/examples/miniedit.py "
# 配置生效
source ~/.zshrc
- 若无安装权限,则通过源码编译
# 官网安装指导
# http://mininet.org/download/#option-3-installation-from-packages
git clone https://github.com/mininet/mininet
cd mininet
git tag # list available versions
# 这里需要保证良好的VPN环境,默认是从github拉取最新依赖 或者更换gitee仓库(自行搜索)
git checkout -b mininet-2.3.0 2.3.0 # or whatever version you wish to install
cd ..
mininet/util/install.sh [options]
To install everything (using your home directory): install.sh -a
To install everything (using another directory for build): install.sh -s mydir -a
To install Mininet + user switch + OvS (using your home dir): install.sh -nfv
To install Mininet + user switch + OvS (using another dir:) install.sh -s mydir -nfv
# test
sudo mn --switch ovsbr --test pingall
Wake on Lan
本文所记录内容的硬件配置:华硕主板Z790-P,系统版本为Ubuntu22.04,gnome桌面环境
其它硬件或软件配置请谨慎参考
-
确保主板开启 wake on lan
- 计算机开机后,立刻按压键盘上的“delete”或者“F2”键,进入BIOS [Advanced Mode]
- 点选 [Advanced]页面并选项[APM Configuration]选项,如下图所示
- 点选[Power On By PCI-E]选项并设置为[Enabled]
- 按压键盘F10键,点选Ok,保存选项,会自动重启计算机。
- bios设置完成
-
注册系统服务
-
sudo apt install ethtool sudo vim /etc/systemd/system/[email protected] ########### 文件内容如下 ########## [Unit] Description=Wake-on-LAN for %i Requires=network.target After=network.target [Service] ExecStart=/sbin/ethtool -s %i wol g Type=oneshot [Install] WantedBy=multi-user.target ############ 文件内容结束 ###########
-
确定网卡名称:指令:
ip a
。 注意网卡是有有效IP的那个,不是第一个。
![img](/i/l/?n=23&i=blog/1755469/202305/1755469-20230505100547694-837556506.png)
- 启动服务项
sudo systemctl enable wol@YOU_NIC_NAME
sudo systemctl start wol@YOUR_NIC_NAME
- 验证配置有效:指令:
sudo ethtool YOUR_NIC_NAME
,这里需要注意必须要用sudo权限,否则由于全新问题敏感信息无法显示。如下图看到 wake-on:g 则配置完成
安装Nvidia显卡驱动
本节所写显卡型号为 RTX A5000
其它型号显卡请更改驱动下载链接注意:安装驱动前需要关主板 secure boot
-
官方驱动网址: NVIDIA 驱动程序下载官方网址
-
查看显卡型号
lspci |grep VGA
-
到官方驱动网址中下载对应型号的显卡驱动,以RTX A5000为例
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/525.116.03/NVIDIA-Linux-x86_64-525.116.03.run
- 卸载原有的所有关于Nvidia驱动内容的东西
sudo apt-get remove --purge nvidia* # 或者nvidia-*
# 为了保险 再来一遍
sudo apt-get remove --purge *nvidia*
- 安装必要的依赖软件
sudo apt-get update #更新软件列表
sudo apt-get install g++ gcc cmake make -y
- 屏蔽nouveau驱动
# Ubuntu系统集成的显卡驱动程序是第三方为NVIDIA开发的开源驱动nouveau,安装NVIDIA官方驱动之前需要先将其屏蔽。网上教程基本都是采用将nouveau驱动添加到黑名单的操作
# 安装 vim
sudo apt install vim
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
###### 添加内容如下 #########
blacklist nouveau
options nouveau modeset=0
##### 添加内容结束 #########
# 更新initramfs
sudo update-initramfs -u
# 重启
sudo reboot
# 验证是否屏蔽成功
lsmod | grep nouveau
# 如果没有任何输出结果表示禁用成功
- 关闭显示服务器
sudo apt install lightdm -y
sudo /etc/init.d/lightdm stop
# 或者 sudo service lightdm stop
# 按理说 默认使用的gnome桌面使用的显示服务是gdm 直接将其关停也是可以的
# 但是我没有去尝试 因为网络上的教程没人这么做
# 安装lightdm并没有特别的含义 只是为了指令统一 因为不同的桌面环境如gnome、kde、xfce使用的显示服务不同
# 如要查看当前使用的显示服务器 指令为: ` cat /etc/X11/default-display-manager`
# 关停gdm指令如下
# sudo systemctl stop gdm
- 显示服务关停之后,会进入文本界面tty,如果没有自动切换可以手动切换,按
ctrl+alt+F3
即可 - 安装驱动
# 确保驱动文件在当前活动目录下
ll -a|grep NVIDIA-Linux-x86_64
sudo sh ./NVIDIA-Linux-x86_64-525.116.03.run
# 网上有人说 需要添加安装参数 sudo ./NVIDIA-Linux-x86_64-430.26.run –no-opengl-files
# 否则会出现循环登录的情况,但是我安装时并没有遇到这个问题
- 启动显示服务
sudo service lightdm start
# 如果使用默认 gdm则指令如下
sudo systemctl start gdm
# 这时系统可能会告诉你
# “gdm.service is not active, cannot reload. invoke-rc.d: initscript gdm3, action "reload" failed.”
# 不要慌 重启即可
sudo reboot
- 验证驱动是否正常工作
nvidia-smi
# 如下图所示 能正常输出看到机器上的显卡 则安装完成
![img](/i/l/?n=23&i=blog/1755469/202305/1755469-20230505213805539-504103594.png)
开启网络唤醒 Wake On Lan
-
确保主板开启 wake on lan
- 计算机开机后,立刻按压键盘上的“delete”或者“F2”键,进入BIOS [Advanced Mode]
- 点选 [Advanced]页面并选项[APM Configuration]选项,如下图所示
- 点选[Power On By PCI-E]选项并设置为[Enabled]
- 按压键盘F10键,点选Ok,保存选项,会自动重启计算机。
- bios设置完成
-
注册系统服务
-
sudo apt install ethtool sudo vim /etc/systemd/system/[email protected] ########### 文件内容如下 ########## [Unit] Description=Wake-on-LAN for %i Requires=network.target After=network.target [Service] ExecStart=/sbin/ethtool -s %i wol g Type=oneshot [Install] WantedBy=multi-user.target ############ 文件内容结束 ###########
-
确定网卡名称:指令:
ip a
。 注意网卡是有有效IP的那个,不是第一个。
![img](/i/l/?n=23&i=blog/1755469/202305/1755469-20230505100547694-837556506.png)
- 启动服务项
sudo systemctl enable wol@YOU_NIC_NAME
sudo systemctl start wol@YOUR_NIC_NAME
-
验证配置有效:指令:
sudo ethtool YOUR_NIC_NAME
,这里需要注意必须要用sudo权限,否则由于全新问题敏感信息无法显示。如下图看到 wake-on:g 则配置完成
将ubuntu-desktop转为ubuntu-server
sudo apt install ubuntu-server
reboot
sudo systemctl set-default multi-user.target
reboot
sudo apt purge ubuntu-desktop -y && sudo apt autoremove -y && sudo apt autoclean
reboot
# 参考来源 https://askubuntu.com/questions/1313733/convert-ubuntu-desktop-to-server-edition-20-04
标签:https,记录,sudo,apt,conda,日常,install,ubuntu,ssh
From: https://www.cnblogs.com/youhuiji/p/17771793.html