linux releated
ubuntu20.04安装zsh
18.04用这个方法也可以成功安装(22/7/3)
参考链接:Ubuntu20.04配置oh-my-zsh以及一些好用的插件
1 | sudo apt install zsh |
遇到的错误及解决方案:
smbclient 报错:protocol negotiation failed: NT_STATUS_CONNECTION_RESET
Linux:mount命令出现Host is down如何解决
virtualbox
- 将vdi虚拟机硬盘拷贝给其他人使用
1 | VBoxManage.exe clonevdi 原始VDI文件 新的VDI文件 # 老旧命令 |
- mount -t vboxsf时报错
mount.vboxsf: mounting failed with the error: Invalid argument
1 | sudo apt-get install virtualbox-guest-dkms |
共享文件夹挂载失败的错误:/sbin/mount.vboxsf: mounting failed with the error: No such device
1 | sudo modprobe -a vboxguest vboxsf vboxvideo |
ubuntu换内核
以开启kasan为例,替换ubuntu内核的过程如下:
1 | # 下载目标内核源码文件到本地,解压 |
拓展:如果想要关闭KASLR,可以更改/boot/grub/grub.cfg
,在cmdline位置添加nokaslr,保存文件后直接重启即可。如下
1 | menuentry 'Ubuntu, with Linux 5.4.0-26-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-advanced-a0e37184-9d79-4234-beca-b50ef9e04936' { |
参考文章:
Ubuntu 20.04 如何禁用自动更新,删除更新提示和缓存
ubuntu vmware磁盘扩容
扩容有两种方案,一种是添加新分区并挂载到系统的某个目录下,另一种是直接扩充原来的分区。
挂载到某个目录
关闭虚拟机,编辑虚拟机设置。在虚拟机设置界面,硬件选项卡下的硬盘(SCSI)中,有“扩展磁盘容量”一行,设置成目标磁盘大小。
打开虚拟机,添加新分区后重启系统
1
2
3
4
5
6
7sudo fdisk /dev/sda
m # 查看帮助命令
p # 打印分区表
n # 添加新分区
# 然后一路回车,直到出现"Created a new partition"的提示,表明创建成功
w # 保存设置并退出
reboot # 重启系统重启后,挂载磁盘
1
2
3
4
5sudo fdisk -l # 先看一下上一步中添加分区成功了没有,成功了再继续往下操作,没成功就重复第二步
df -T # 查看原来的文件系统类型,我的是ext4
sudo mkfs -t ext4 /dev/sda3 # 格式化分区,我的是/dev/sda3
mkdir /home/bling/test # 创建一个目录,待挂载
sudo mount /dev/sda3 /home/bling/test # 将/dev/sda3挂载到/home/bling/test目录设置开机自动挂载
1
2
3sudo vim /etc/fstab
# 在文件最后一行添加如下内容
/dev/sda3 /home/bling/test ext4 defaults 0 1扩充原有磁盘
关闭虚拟机,编辑虚拟机设置。在虚拟机设置界面,硬件选项卡下的硬盘(SCSI)中,有“扩展磁盘容量”一行,设置成目标磁盘大小。
打开虚拟机,添加新分区后重启系统
1
2
3
4
5
6
7
8
9sudo fdisk /dev/sda
m # 查看帮助命令
p # 打印分区表
d # 删除原来的一个分区
n # 添加新分区,会合并所有未分区的磁盘(这个操作跟windows磁盘操作类似,先删除再合并)
# 然后一路回车,直到出现"Created a new partition"的提示,表明创建成功
w # 保存设置并退出
sudo resize2fs /dev/sda2 # 更新分区,我的是/dev/sda2
df -h # 此时就能看到/dev/sda2扩容了
参考文章:
解决ubuntu中”Could not get lock /var/lib/dpkg/lock”
How to Fix ‘E: Could not get lock /var/lib/dpkg/lock’ Error in Ubuntu Linux
比较暴力的方法是,直接rm -rf 那两个lock文件
Kali 2020版中文显示乱码的解决方案
安装完2020最新kali中文版后,发现界面出现了无数“麻将块”。原因是该版本对中文的不支持,因此需要我们自己安装一下中文字体。
更改kali的镜像源
在sources.list中添加一个源:
1 | vim /etc/apt/sources.list |
添加完源之后,必须立马执行更新命令:
1 | sudo apt-get update |
安装中文字体
依次执行以下命令:
1 | 安装本地设置 |
参考了如下几篇文章的方法:
ubuntu 1804 安装搜狗输入法
在官网下载linux版搜狗输入法的deb安装包,下载到本地后,执行以下三条命令
1 | sudo dpkg -i sogoupinyin_2.3.1.0112_amd64.deb |
在settings -> Region& Language -> Manage Installed Languages中把Keyboard input method system从IBus修改为fcitx。然后点击Apply System Wide。最后重启电脑。
重启完成后,在系统中搜索fcitx configuration,点击左下角的加号,取消勾选Only Show Current Language,然后选择Sougou Pinyin,OK一下就可以了。
现在就可以通过ctrl+shift切换输入法!
Linux上安装samba服务
ubuntu环境
(1)安装smb服务
1 | sudo apt update |
(2)指定共享文件夹
1 | sudo vim /etc/samba/smb.conf |
(注意: /any/folder/需要将folder权限设置为777,这样才能正常访问)
(3)指定访问用户
1 | sudo smbpasswd -a username |
username是ubuntu上的一个普通用户。
(4)windows上访问
1 | //ubuntu-ip/sambashare |
windows访问如上地址就可以进入到/any/folder/目录了!
redhat环境
参考:
Linux上添加/删除用户
ubuntu添加新用户:
1 | adduser bling |
将用户添加到root组
1 | sudo chmod u+w /etc/sudoers |
删除用户:
1 | deluser bling |
Linux上安装java jdk
这里以openjdk为例,如果需要安装oracle Java JDK,请用参考链接中的方式。
1 | 更新软件包列表 |
参考:
Linux上升级python
ppa源升级
- 添加ppa源,安装python 3.6
1 | sudo add-apt-repository ppa:jonathonf/python-3.6 |
- 调整python3的优先级的方法见5.2
源码升级
- 去官网下载所需版本的python源码包。
- 安装依赖
1 | sudo apt-get install gcc make zlib1g-dev |
- 开始安装
1 | tar -zxvf Python-3.6.7.tgz |
- 更改python版本优先级
查询python安装路径:whereis python
调整优先级,将新安装的3.6调到最大:
1 | sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100 |
到这一步就算是结束了,此时使用python --version
可以看到python已经是3.6版本的了。
- 后续设置变更
1 | 查询可配置的python |
参考:
Linux下生成/应用patch
普通patch
为单个文件生成patch
diff -up /oldFilePath /newFilePath > file.patch
参数说明:
-u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息.
-p 显示代码所在的c函数的信息.
为多个文件生成patch
diff -uprN /oldFolderPath /newFolderPath > folder.patch
参数说明:
-r 递归地对比一个目录和它的所有子目录(即整个目录树).
-N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少文件时, 只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.
linux打补丁
patch -p1 < demo.patch
生成的补丁中, 路径信息包含了你的Linux源码根目录的名称, 但其他人的源码根目录可能是其它名字, 所以, 打补丁时, 要进入你的Linux源码根目录, 并且告诉patch工具, 请忽略补丁中的路径的第一级目录(参数-p1).
diff命令必须在整个Linux源码的根目录的上一级目录中执行.
solaris打补丁
gpatch -p1 < demo.patch
例如:
1 | patch -p1 < huawei_patch/huawei_tf_gic_0001.patch |
git patch
https://juejin.im/post/5b5851976fb9a04f844ad0f4
ssh
安装命令:
1 | 客户端 |
ssh服务命令:
1 | sudo/etc/init.d/ssh start |
配置文件:
1 | 更改ssh配置文件前最好先备份一个 |
生成ssh key免密登录:
1 | 在客户端生成用于登录的公私钥,生成后位于~/.ssh/目录下 |
参考:
Generating a new SSH key and adding it to the ssh-agent
ubuntu设置静态ip
1、更改interfaces文件中的内容
1 | sudo vim /etc/network/interfaces |
2、刷新ip
1 | sudo ip addr flush enp0s8 |
3、设置重启后依然生效
1 | sudo vim /etc/NetworkManager/NetworkManager.conf |
参考文章如下: