Linux使用
0、 linux的版本
优麒麟 20.04 LTS Pro
银河麒麟桌面操作系统V10和银河麒麟高级服务器操作系统V10,分别推出了飞腾、鲲鹏、龙芯、申威、海光、兆芯六个版本(linux5.10.5)
银河麒麟操作系统社区版4.0.2-SP2是基于优麒麟 16.04 长期支持版本进行定制,集成了 UKUI 桌面环境和第三方应用。
- buster:debian10的代号。
- bionic:Ubuntu 18.04的代号。
- focal : Ubuntu20.04的代号。
- Hirsute:Ubuntu 21.04
|
版本号
|
代号
|
发布时间
|
|---|---|---|
|
22.04
|
Jammy Jellyfish
|
2022-04-22
|
|
21.10
|
Impish Indri
|
2021-10-14
|
|
21.04
|
Hirsute Hippo
| |
|
20.10
|
Groovy Gorilla
|
2020-10-22
|
|
20.04 LTS
|
Focal Fossa
|
2020-04-23
|
|
19.10
|
Eoan Ermine
|
2019-10-17
|
|
19.04
|
Disco Dingo
|
2019-4-19
|
|
18.10
|
Cosmic Cuttlefish
|
2018-10-18
|
|
18.04 LTS
|
Bionic Beaver
|
2018-04-26
|
|
17.10(
GNOME成为默认桌面环境)
|
Artful Aardvark
|
2017-10-21
|
|
17.04
|
Zesty Zapus
|
2017-04-13
|
|
16.10
|
Yakkety Yak
|
2016-10-20
|
|
16.04 LTS
|
Xenial Xerus
|
2016-04-21
|
|
15.10
|
Wily Werewolf
|
2015-10-23
|
|
15.04
|
Vivid Vervet
|
2015-04-22
|
|
14.10
|
Utopic Unicorn
|
2014-10-23
|
|
14.04 LTS
|
Trusty Tahr
|
2014-04-18
|
|
13.10
|
Saucy Salamander
|
2013-10-17
|
|
13.04
|
Raring Ringtail
|
2013-04-25
|
|
12.10
|
Quantal Quetzal
|
2012-10-18
|
|
12.04 LTS
|
Precise Pangolin
|
2012-04-26
|
|
11.10
|
Oneiric Ocelot
|
2011-10-13
|
|
11.04(
Unity成为默认桌面环境)
|
Natty Narwhal
|
2011-04-28
|
|
10.10
|
Maverick Meerkat
|
2010-10-10
|
|
10.04 LTS
|
Lucid Lynx
|
2010-04-29
|
|
9.10
|
Karmic Koala
|
2009-10-29
|
|
9.04
|
Jaunty Jackalope
|
2009-04-23
|
|
8.10
|
Intrepid Ibex
|
2008-10-30
|
|
8.04 LTS
|
Hardy Heron
|
2008-04-24
|
|
7.10
|
Gutsy Gibbon
|
2007-10-18
|
|
7.04
|
Feisty Fawn
|
2007-04-19
|
|
6.10
|
Edgy Eft
|
2006-10-26
|
|
6.06 LTS
|
Dapper Drake
|
2006-06-01
|
|
5.10
|
Breezy Badger
|
2005-10-13
|
|
5.04
|
Hoary Hedgehog
|
2005-04-08
|
|
4.10(初始发布版本)
|
Warty Warthog
|
2004-10-20
|
Debian的代号:

1、去掉文件夹的锁:
sudo chmod -R 777 路径(文件夹或文件)
2、麒麟的远程桌面登陆
打开"我的电脑"->工具->连接到服务器->类型中选择"SSH",输入对方ip、用户名、密码,点击"连接"。
3、分页显示命令结果
history | less //空格前进,b后退,q退出
ps -ef | less
4、查找文件中的内容
目录在后
# -r:递归 -n:显示行号 -i:不区分大小写
grep -r '8.8.8.8' ./ -n
grep -E 等同于 egrep 用于正则表达式
5、查找文件
目录在前
sudo find / -name "*init*"
sudo find / -iname init #不区分大小写
find ./ -name "zz123*" -exec ls -l {} \; #对搜索的结果执行后面的命令,全部传
find ./ -type d -ok rm -rf {} \; #对每次操作进行询问确认
find ./ -name "*.so" | xargs ls -l \; #对搜索的结果执行后面的命令,分批传,防内容太多
find ./ -name "*.so" -print0 | xargs -0 ls -l \; #对搜索的结果执行后面的命令,分批传,防内容太多,默认用空格作分隔标记,对文件名中有空格的要换一个结束标记,此处用0
-atime|ctime|mtime #access:访问 change:文件内容修改 modify:文件属性修改
6、按行处理 sed
/pattern1/pattern2/ #其中要对大小括号进行转义,\( \) \{ \}
# a: append 追加
# i:insert
# d:delete
# s:substitute 替换
# p:print打印
sed 's/the/this/' test.sh #将test.sh文件中读到缓存中的the替换成this,只开头 -g 全部
sed 's/the/this/' test.sh -i #将替换写入到文件中
sed -i "2,5d" testfile #删除第2到第5行
sed -i "2a cast" testfile #第2行后追加cast
sed -i '/echo/d' testfile #将有echo的行删除
sed -i 's/<[^>]*>//g] testfile #将html中的标签全去掉
pattern2中
&:表示pattern1中匹配的字符
\1:表示与pattern1中第1个括号匹配的字符
\2:表示与pattern1中第2个括号匹配的字符
7、按列处理 awk
awk缺省的行分隔符是换行,列分隔符是连续的空格和Tab。但行、列分隔符都可以自定义。
ps -aux | awk '{print $2}' #只显示第2列
ps -aux | awk '$2>5000 && $2<6000 {print $2}' #显示5000-6000的进程号
ps -aux | awk '$2>5000 && $2<6000 {var=var+1} END {print var}' #显示5000-6000的进程个数
awk '{print $2;}' testfile
awk '$2<75 {printf $0 " reorder";} $2>=75 {print $0;}' testfile
awk '$2<75 {printf "%s %s\n",$0,"reorder";} $2>=75 {print $0;}' testfile
awk '$2<75 {printf("%s %s\n",$0,"reorder");} $2>=75 {print $0;}' testfile
awk '/^ *$/ {var=var+1} END {print var}' testfile #统计文件中空行的个数
sudo awk 'BEGIN {FS=":"} {print $2}' /etc/passwd #重定义列分隔符
sudo awk -F: '{print $1}' /etc/passwd #重定义列分隔符
awk常用内建变量:
FILENAME 当前输入文件的文件名,该变量是只读的
NR 当前行的行号,只读,R:record
NF 当前行所拥有的列数,只读,F:field
OFS 输出格式的列分隔符,缺省是空格
FS 输入文件的列分隔符,缺省是连续的空格和Tab
ORS 输出格式的行分隔符,缺省是换行符
RS 输入文件的行分隔符,缺省是换行符
8、ps
ps [选项]
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
-a 显示终端上的所有进程,包括其他用户的进程。
-r 只显示正在运行的进程。
-u 以用户为主的格式来显示程序状况。
-x 显示所有程序,不以终端机来区分。
ps -ef 显示出的结果:
1、UID 用户ID
2、PID 进程ID
3、PPID 父进程ID
4、C CPU占用率
5、STIME 开始时间
6、TTY 开始此进程的TTY----终端设备
7、TIME 此进程运行的总时间
8、CMD 命令名
fcitx的配置文件是~/.fcitx/config
但是直接用 gedit ~/.fcitx/config 打开配置文件显示的也都是乱码,解决办法就是指定编码方式打开“sudo gedit --encoding gbk ~/.fcitx/config” Ubuntu默认的编码方式是UTF-8格式,因此需要通过gbk方式来打开该文件。
9、ubuntu进入recovery修改文件
在Ubuntu上使用恢复模式及Recovery Mode各选项的使用方法
开机时一直按住shift键,进入grub界面–》Advanced options for ubuntu----》Recovery mode----》root
10、保存fitcix的配置
保存配置:ctrl+alt+s
11、su鉴定故障解决
sudo passwd root //更新密码
sudo vim /etc/passwd
修改为:
root:x:0:0:root:/root:/bin/bash //原来是 bin/bash
12、man
man 1是普通的shell命令,(如ls)
man 2是系统调用,(比如open,write说明),
man 3是函数说明,一些库函数。
13、mkdir
mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
mkdir -p xx/yy的好处就是一次可以创建多级文件夹,若xx文件夹不存在,则先创建xx文件夹,然后在xx文件夹下创建yy文件夹
14、ln -s
ln -s 源文件 目标文件
ln -s 源文件 软链接
15、网络重启
sudo service network restart
sudo service network-manager restart #网络管理员服务
sudo systemctl restart NetworkManager.service #systemctl命令
sudo nmcli networking off #nmcli
sudo nmcli networking on
sudo ifdown -a #ifup、ifdown
sudo ifup -a
16、ifconfig
nmtui解决network-scripts目录下无网卡对应配置文件问题
centOS 7下无法启动网络(service network start)错误解决办法
ifconfig
/etc/sysconfig/network-scripts/ifcfg-ehtxxx #网卡对应的配置文件
#确定如何对应哪个网卡
cat /etc/sysconfig/network-scripts/ifcfg-ehtxxx #uuid
nmcli con show #查看所有网卡的UUID
nmcli connection show
arp -a
ifconfig
sudo ifconfig enp1s0 down #禁掉重复的一个
#/etc/sysconfig/network-scripts/ifcfg-ehtxxx #网卡对应的配置文件
vi ifcfg-eth2
#把文件内容改为下面内容:
DEVICE=eth2 (这个地方必须是你前面查看时的网卡名)
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.181.10
NETMASK=255.255.255.0 (ip、子网、网关都是根据自己的实际情况配置的)
GATEWAY=192.168.181.1
17、查看tcp连接
netstat -an|grep tcp
18.进程间通信
19. apt-get install和源码编译安装区别
- apt-get install 安装的是由源码包编译过的二进制包,供应商在编译过程中已经解决掉包之间的依赖关系的,因此直接安装即可,会直接帮你处理依赖关系。apt-get install安装目录是包的维护者确定的,不是用户。系统安装软件一般在/usr/share,可执行的文件在/usr/bin,配置文件可能安装到了/etc下等。文档一般在 /usr/share;可执行文件 /usr/bin;配置文件 /etc;lib文件 /usr/lib。
- 使用源码包要./configure、make、make install手动编译,需要自己解决所依赖的源码包,本质上和apt-get安装没有区别,但是使用源码编译安装可以自定义安装的位置等内容。
- 获取源码:sudo apt-get source tree(获取tree的源码)
./configure --prefix=/home/userX/git
make && make install
20、df -h和du -h
du -h --max-depth=1 #(disk usage)显示当前目录下文件大小,目录深度为1
df -h #(disk free)显示磁盘可用空间和挂载点
fdisk -l #输出设备的所有分区内容和操作分区(删除,新增)
lsblk #列出所有可用块设备的信息,显示其依赖关系
lsblk参数:

21. 挂载新磁盘
Ubuntu新增硬盘的方法
Linux(Ubuntu)如何处理新添加的硬盘
Linux之挂载新的硬盘(fdisk详细)
#关机状态下将硬盘装在电脑上,重启电脑,后查看/dev/ 下有没多了一块硬盘
ls /dev
fdisk -l #查看磁盘(/dev/sda开始,第二次添加就是/dev/sdb)
lsblk -f
ls /sys/class/scsi_host/ #查看总线
fdisk /dev/sdb #对磁盘分区,依次输入 n(添加分区) , p(主分区), 1(第1个分区), w(保存操作)
lsblk -f
mkfs -t ext4 /dev/sdb1 #格式化分区为ext4格式
sudo mkdir data
sudo mount -t ext4 -o rw,relatime /dev/sdb /data #临时挂载
df -h #查看
vi /etc/fstab #永久挂载写到开机挂载磁盘文件(/etc/fstab)中
# 在文件中加入下面代码
/dev/sdb1 /data ext4 defaults 0 0
22、根目录扩容
麒麟Linux系统根目录与单目录扩容详解,适用于大多数的centeros系统
虚拟机linux扩充/home内存容量
新硬盘挂载到home:
fdisk -l #查看新增的的磁盘
fdisk /dev/vdb #1、对新增磁盘进行分区
#按提示操作: p打印 n新增 d 删除 w操作生效 q退出
#操作后: w
partprobe #强制让内核重新找一次分区表(更新分区表)
mkfs -t ext4 /dev/vdb1 #2、分区格式化,格式化为ext4格式
#3、将新硬盘临时挂载在一个目录下,将原home内容拷贝至新home中
cd /mnt/
mkdir home
mount /dev/vdb1 /mnt/home #挂载到/mnt/home
df -h 查看
cp -a /home/* /mnt/home/ #把home下的东西拷到挂载的目录下,备份
rm -rf /home/* #把home下的东西删干净
umount /dev/vdb1 #卸载硬盘
df -h #查看
#4、设置开机挂载
vi /etc/fstab #末尾增加一行
/dev/vdb1 /home ext4 defaults 1 2
df -h #查看 /home是否被挂载
mount -a 挂载/etc/fstab 中未挂载的分区
df -h 查看
22、ssh连接
sudo vim /etc/ssh/sshd_config #放开port22和PermitRootLogin
sudo systemctl restart ssh
sudo /etc/init.d/ssh restart
23、禁用鼠标中键粘贴
Linux(deepin)系统 禁用鼠标中键复制以及键盘改建
xmodmap -e "pointer = 1 25 3 4 5 6 7 8"
若要保留此行为,请编辑~/.Xmodmap并添加:
pointer = 1 25 3 4 5 6 7 8 9
24、命令更改屏幕分辨率
xrandr //查看支持的分辨率
xrandr -s 1920 x 1080 //设置分辨率,这个最好复制上面的查询结果
25、分包
#Linux上分包
split -b 400M -d -a 1 test.zip testsplit.zip
#windows上合并
copy /b 20130428.part000+20130428.part001 backup.tar.gz