Linux使用
2026/9/18 13:05:18 网站建设 项目流程

linux命令大全
linux内核
远程工具:winscp、MobaXterm、vnc

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
Ubuntu版本一览表
版本号
代号
发布时间
22.04
Jammy Jellyfish
2022-04-22
21.10
Impish Indri
2021-10-14
21.04
Hirsute Hippo
2021-04-22[13]
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'./-ngrep-E等同于egrep用于正则表达式

5、查找文件

目录在前

sudofind/-name"*init*"sudofind/-inameinit#不区分大小写find./-name"zz123*"-execls-l{}\;#对搜索的结果执行后面的命令,全部传find./-typed-okrm-rf{}\;#对每次操作进行询问确认find./-name"*.so"|xargsls-l\;#对搜索的结果执行后面的命令,分批传,防内容太多find./-name"*.so"-print0|xargs-0ls-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行后追加castsed-i'/echo/d'testfile#将有echo的行删除sed-i's/<[^>]*>//g]testfile#将html中的标签全去掉

pattern2中
&:表示pattern1中匹配的字符
\1:表示与pattern1中第1个括号匹配的字符
\2:表示与pattern1中第2个括号匹配的字符

7、按列处理

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;}'testfileawk'$2<75 {printf $0 " reorder";} $2>=75 {print $0;}'testfileawk'$2<75 {printf "%s %s\n",$0,"reorder";} $2>=75 {print $0;}'testfileawk'$2<75 {printf("%s %s\n",$0,"reorder");} $2>=75 {print $0;}'testfileawk'/^ *$/ {var=var+1} END {print var}'testfile#统计文件中空行的个数sudoawk'BEGIN {FS=":"} {print $2}'/etc/passwd#重定义列分隔符sudoawk-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显示出的结果:1UID用户ID2、PID 进程ID3PPID父进程ID4、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、网络重启

sudoservicenetwork restartsudoservicenetwork-manager restart#网络管理员服务sudosystemctl restart NetworkManager.service#systemctl命令sudonmcli networking off#nmclisudonmcli networking onsudoifdown-a#ifup、ifdownsudoifup-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#uuidnmcli con show#查看所有网卡的UUIDnmcli connection show arp-aifconfigsudoifconfigenp1s0 down#禁掉重复的一个
#/etc/sysconfig/network-scripts/ifcfg-ehtxxx #网卡对应的配置文件viifcfg-eth2#把文件内容改为下面内容:DEVICE=eth2(这个地方必须是你前面查看时的网卡名)TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.181.10NETMASK=255.255.255.0(ip、子网、网关都是根据自己的实际情况配置的)GATEWAY=192.168.181.1

17、查看tcp连接

netstat-an|greptcpnetstat-anl|grep9000

18.进程间通信

linux进程间通信4种方式

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/gitmake&&makeinstall

20、df -h和du -h

du-h--max-depth=1#(disk usage)显示当前目录下文件大小,目录深度为1df-h#(disk free)显示磁盘可用空间和挂载点fdisk-l#输出设备的所有分区内容和操作分区(删除,新增)lsblk#列出所有可用块设备的信息,显示其依赖关系

lsblk参数:

21. 挂载新磁盘

Ubuntu新增硬盘的方法
Linux(Ubuntu)如何处理新添加的硬盘
Linux之挂载新的硬盘(fdisk详细)

#关机状态下将硬盘装在电脑上,重启电脑,后查看/dev/ 下有没多了一块硬盘ls/devfdisk-l#查看磁盘(/dev/sda开始,第二次添加就是/dev/sdb)lsblk-fls/sys/class/scsi_host/#查看总线fdisk/dev/sdb#对磁盘分区,依次输入 n(添加分区) , p(主分区), 1(第1个分区), w(保存操作)lsblk-fmkfs-text4 /dev/sdb1#格式化分区为ext4格式sudomkdirdatasudomount-text4-orw,relatime /dev/sdb /data#临时挂载df-h#查看vi/etc/fstab#永久挂载写到开机挂载磁盘文件(/etc/fstab)中# 在文件中加入下面代码/dev/sdb1 /data ext4 defaults00

21.1 /etc/fstab

【纯干货】linux之fstab文件详解
/etc/fstab 文件格式:

/etc/fstab #<file system><dir><type><options><dump><pass>tmpfs/tmp tmpfs nodev,nosuid00/dev/sda1/ext4 defaults,noatime01/dev/sda2 none swap defaults00/dev/sda3/home ext4 defaults,noatime02

21.2 挂载的盘无可执行权限

lsblkmount/dev/nvme1n1p4 /data#手动挂载mount#查看挂载信息cat/etc/fstab#查看启动挂载配置sudovim/etc/fstab#去掉其中的noexec、user,nofail保证有问题也能启动,最后一个0,保证能自动挂载rw,relatime,nofail00

22、根目录扩容

麒麟Linux系统根目录与单目录扩容详解,适用于大多数的centeros系统
虚拟机linux扩充/home内存容量
新硬盘挂载到home:

fdisk-l#查看新增的的磁盘fdisk/dev/vdb#1、对新增磁盘进行分区#按提示操作: p打印 n新增 d 删除 w操作生效 q退出#操作后: wpartprobe#强制让内核重新找一次分区表(更新分区表)mkfs-text4 /dev/vdb1#2、分区格式化,格式化为ext4格式#3、将新硬盘临时挂载在一个目录下,将原home内容拷贝至新home中cd/mnt/mkdirhomemount/dev/vdb1 /mnt/home#挂载到/mnt/homedf-h查看cp-a/home/* /mnt/home/#把home下的东西拷到挂载的目录下,备份rm-rf/home/*#把home下的东西删干净umount/dev/vdb1#卸载硬盘df-h#查看#4、设置开机挂载vi/etc/fstab#末尾增加一行/dev/vdb1 /home ext4 defaults12df-h#查看 /home是否被挂载mount-a挂载/etc/fstab 中未挂载的分区df-h查看

22、ssh连接

kylin-v10不能ssh登陆:

sudovim/etc/ssh/sshd_config#放开port22和PermitRootLoginsudosystemctl restart sshdsudo/etc/init.d/ssh restart

ssh能登陆但不能拷贝文件:

sudovim/etc/ssh/sshd_config#修改#Subsystem sftp /usr/libexec/openssh/sftp-serverSubsystemsftpinternal-sftp#重启sshd就可以了,重启命令:sudoservicesshd restartsudosystemctl restart sshd

ssh服务:

23、禁用鼠标中键粘贴

Linux(deepin)系统 禁用鼠标中键复制以及键盘改建

xmodmap-e"pointer = 1 25 3 4 5 6 7 8"

若要保留此行为,请编辑~/.Xmodmap并添加:

pointer=1253456789

24、命令更改屏幕分辨率

xrandr //查看支持的分辨率 xrandr-s1920x1080//设置分辨率,这个最好复制上面的查询结果

25、分包

split命令详解

#Linux上分包split-b400M-d-a1test.zip testsplit.zip#windows上合并copy /b20130428.part000+20130428.part001 backup.tar.gz

26、kylin相关问题

银河麒麟服务器版是基于centos的,银河麒麟桌面版是基于debain的

26.1 软件源

首页:https://archive1.kylinos.cn/kylin/KYLIN-ALL/
i386:https://archive1.kylinos.cn/kylin/KYLIN-ALL/pool/v101-i386/
主库:https://archive1.kylinos.cn/kylin/KYLIN-ALL/pool/main/
通用库:https://archive1.kylinos.cn/kylin/KYLIN-ALL/pool/universe/
Debian库:https://packages.debian.org/sid/amd64/libc6/download

wps-office:https://www.wps.cn/product/wpslinux#

libc6-dev:在目录main/glibc目录下,太难找了

#安装方法dpkg-i*.deb dpkg-igcc.deb


26.2 删除自动启动

cd/home/kylin/.config/autostart#进入后删除对应的启动项

26.3 Qt安装问题

26.4 关闭kylin安全认证

配置KylinV10

sudovim/etc/default/grub# GRUB_CMDLINE_LINUX_SECURITY="audit=0 security=kysec"GRUB_CMDLINE_LINUX_SECURITY="audit=0 security="sudoupdate-grubreboot

26.5 麒麟编程注意点

char 为unsigned char, windows为signed char
long 为8字节,windows为4字节

27、dos2unix

find.-typef-execdos2unix{}\;

28、linux启动过程及开机自启动

28.1 启动顺序

  1. 启动内核
  2. 执行init(配置文件/etc/inittab)
  3. 启动相应脚本。执行inittab脚本,及/etc/init.d、rc.sysinit、rc.d、rc.local…
  4. 启动登录界面
  5. 用户登陆时执行脚本顺序:/etc/profile、/etc/bashrc、/root/.bashrc、/root/.bash_profile

28.2 /etc/inittab

inittab文件中定义的登记项都是以:隔开的四个段,即:

id:runlevels:action:process

id:它是每个登记项的标识符,用于唯一标识每个登记项,不能重复
id 用来定义缺省的init运行的级别
si 是系统初始化的进程
ln 其中的n从1~6,指明该进程可以使用的runlevel的级别
ud 是升级进程
ca 指明当按下Ctrl+Alt+Del时运行的进程
pf 指当UPS表明断电时运行的进程
pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
x 是将系统转入X终端时需要运行的进程

runlevels:系统的运行级别,表示process的action要在哪个级别下运行,该段中可以定义多个运行级别,各级别之间直接写不用分隔符;如果为空,表示在所有的运行级别运行。Linux的运行级别有:
0:表示关机
1:表示单用户模式,在这个模式中,用户登录不需要密码,默认网卡驱动是不被加载,一些服务不能用。
2:表示多用户模式,NFS服务不开启
3,表示命令行模式
4,这个模式保留未用
5,表示图形用户模式
6,表示重启系统

action:表示对应登记项的process在一定条件下所要执行的动作。
具体动作有:
respawn:当process终止后马上启动一个新的
wait:当进入指定的runlevels后process才会启动一次,并且到离开这个runlevels终止
initdefault:设定默认的运行级别,即我们开机之后默认进入的运行级别,不能是0,6,你懂的
sysinit:系统初始化,只有系统开机或重新启动的时候,这个process才会被执行一次
powerwait:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,会等待这个进程完成之后,再执行相应的process
powerfail:当init接收到电源失败信号的时候执行相应的process,并且如果init有进程在运行,不会等待这个进程完成,它会直接执行相应的process
powerokwait:电源已经故障,但是在等待执行对应操作的时候突然来电了就执行对应的process
powerfailnow:当电源故障并且init被通知UPS电源已经快耗尽执行相对应的process
ctrlaltdel:当用户按下ctrl+alt+del这个组合键的时候执行对应的process
boot:只有在引导过程中,才执行该进程,但不等待该进程的结束;当该进程死亡时,也不重新启动该进程
bootwait:只有在引导过程中,才执行该进程,并等待进程的结束;当该进程死亡时,也不重新启动该进程
off:如果process正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该process。如果process并不存在那么就忽略该登记项
once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项;当该进程死亡时,init也不重新启动该进程

process:表示启动哪个程序或脚本或执行哪个命令等

28.3 开机启动

Ubuntu系统设置开机自启
在Linux系统中实现开机自动运行脚本的完整指南(有systemd)
银河麒麟之语言设置和服务开机自启动设置

开机自启方式有:

/etc/inittab/etc/rc.d/rc.local #试这个吧/etc/init.d/#使用Update-rc.d命令,最好别用,开不了机了/etc/profile/etc/profile.d//etc/systemd/system/

(1)rc.local方式
centos默认不启动rc.local

vim/etc/rc.local#!/bin/bashnohup/home/kylin/mystart.sh&exit0

nohup和&的区别:

  • & : 指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
  • nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
#这样就能使命令永久的在后台执行nohupCOMMAND&nohupjava-jardo_iptable.jar>/dev/null2>&1&nohupphp server1.php</dev/null&>/dev/null&

(2)使用init.d目录脚本实现开机自动运行
编辑一个启动脚本.sh文件,文件头部可以参照init.d目录下的现有文件,比如ssh,smbd等,头部文件必要严格按照样式填写。最后添加需要执行的实际命令或者脚本。

root@wuhs-pc:/etc/init.d# cat autovpn.sh#! /bin/sh### BEGIN INIT INFO# Provides: openvpn# Required-Start: $network $local_fs $remote_fs# Required-Stop: $network $local_fs $remote_fs# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: OpenBSD Secure Shell server### END INIT INFOnohup/etc/openvpn/client/startvpn.sh&exit0
chmod777autostart.shsudomvautostart.sh /etc/init.d/sudoupdate-rc.d autostart.sh defaults90#将脚本文件添加到服务,开不了机了

Update-rc.d 命令用法详解

sudoupdate-rc.d xxxxx.sh defaults90sudoservice--status-all# 重启 查看全部服务列表sudoservicexxx statussudoservicexxx startsudoservicexxx stopsudoservicexxx restartsudoupdate-rc.d-fxxxxx.sh remove# 禁用开机脚本

不用update-rc.d,就用创建软链接方式到rc【x】.d目录。
如下:/etc/rc.d/rc0.d/~/etc/rc.d/rc6.d/文件夹的含义不同,S开头代表是开启时处理的脚本,按照后面紧跟的数字进行按顺序启动,S99则是最后进行启动。

#最后添加软连接ln-s/etc/init.d/autovpn.sh /etc/rc2.d/S99autovpn

(3)kylin设置里添加自启动服务
将desktop文件加入到自启中。要在开始菜单中显示,将其拷贝到 /usr/share/applications 目录下

[Desktop Entry]Type=ApplicationVersion=0.1.0Name=主程序Comment=这是程序介绍Exec="/home/kylin/myapp"Icon=/home/kylin/pic/123.svgStartupNotify=falseTerminal=false

(4)systemd启动
redis开机启动

29、su命令

#变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)su- clsungsu- root-c'vncserver :1 -geometry 1920×1080'

30、双网卡不能同一网段

双网卡不能设置为同一网段,后面这个网卡的IP将自动路由到前面一个网卡上,因此使用其中一个时候需要下线另外一个网卡(拔掉另一根网线)
Linux双网卡设置IP属于同一网段的ping方法以及现象记录分析
解决方法:
Linux双网卡配置相同IP段解决方案

#echo 1 >/proc/sys/net/ipv4/conf/all/arp_filter

31、自动输入

1、用echo 管道命令自动给sudo输入密码

echo密码|sudo-S命令#这种方式使用脚本运行管理员命令时,能够自动运行,不被sudo 密码中断,但是密码会明文显示,密码不安全

2、Linux_shell自动输入y或yes

# 一次echoyes|[命令]echoy|[命令]# 多次yesyes|[命令]yesy|[命令]

32、无密码运行sudo

Linux:设置sudo无需密码【Ubuntu、多种方法】

33、vim查找

在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个

按/进入查找,输入查找内容,按n、N

34、端口占用并结束进程

34.1 windows命令

netstat-ano|findstr :8080 tasklist|findstr"PID"taskkill /F /PID 你的PID

34.2 Linux命令

netstat-ano|grep8080ps-ef|grep"PID"kill-9你的PID

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询