2、Linux命令合集

1、GNU

1.1简介

GNU : gnu is not unix
GPL : GUN通用公共许可证

Linux的发行版本:Ubuntu,redhat,debain,红旗.
Linux的核心观念:“人道待人”

在这里插入图片描述
在这里插入图片描述
注:
linux系统:开源的
UNIX系统:不开源
IOS系统,基于UNIX开发的
安卓系统,基于Linux开发

1.2结构

            			用户空间
APP    shell命令    shell脚本
--------------------------------------
					命令行解析器
   						|
-----------------系统调用---------------
					内核空间

内核五大功能:
1、进程管理 时间片轮转,上下文切换,分时多任务
2、内存管理 空间的分配和回收
3、文件管理 将二进制文件转化成我们认识的符号
4、网络管理 网络协议栈

5、设备管理 Linux下一切皆文件,设备也是

硬件 led camera lcd sound
为什么要分用户空间和内核空间?
是处于安全性的考虑。

2、基础命令

2.1开启终端

打开:

ctrl + alt + t

同路径终端:

ctrl + shift + n

左右分屏同路径终端:

ctrl + shift + t

2.1.1关闭终端

ctrl + d在这里插入代码片

2.2命令行提示符:

stu@hqyj:~$
stu	@	hqyj:	~	$(#)
用户名	主机名	路径	  权限 

2.3修改密码的指令

sudo passwd 可以选择加用户名

2.4常用命令

2.4.1、ls == l

显示所有文件包括隐藏文件 (la)

ls -a	

显示所有文件详细信息(ll)

ls -l

显示文件的inode号

ls -i

显示所有文件包括隐藏文件的详细信息

ls -la

显示所有文件的详细信息,所占字节数带单位显示

ls -lh 

显示所有文件包括隐藏文件的带单位的隐藏信息

ls -lah

当前目录下所有文件递归显示

ls -R  

补充:文件类型有bsp-lcd七种
数据的单位划分:

位		bit
字节		byte
k字节	1024字节为1k
m字节	1024k字节为1m
G字节	1024m字节为1G
T字节	1024G字节为1T
P字节	1024T字节为1P

2.4.2、cd

相对路径,上一级

cd ../	

相对路径,本文件路径

cd ./		

绝对路径

cd  /home/stu/lyy	

返回上个用户

cd ~		

返回上个路径

cd -		

进入根目录

cd /		

2.4.3、pwd

显示当前目录的绝对路径

pwd		

2.4.4、 mkdir

创建层级显示的目录

mkdir -p 1/2/3  目录名	

创建一个目录文件

mkdir  目录名	

创建多个平级目录

mkdir  目录名 目录名 目录名...	

创建目录时指定权限

mkdir  -m 0777 目录名   

2.4.5、 rmdir

删除一个空目录

rmdir  目录名	

2.4.6、 touch

创建一个文件

touch 文件名   

创建多个平级文件

touch 文件名 文件名...	

如果文件存在,刷新时间戳

touch 文件名	

2.4.7 rm

删除一个或多个文件

rm 文件名	

删除一个或多个目录

rm -r/-rf 目录名	

删除所有普通文件

rm *		

删除所有file开头普通文件

rm file*	

删除目录下所有内容

rm * -rf     

删除除了3.c之外的所有内容

rm !(3.c) -rf

2.4.8 cp(-p彻底)

将文件1内容拷贝到文件2中,若文件2存在,覆盖里面的内容

cp 文件名1 文件名2	(若是加-p连带着文件权限和修改时间一起复制进去)	

将文件拷贝到目录中

cp 文件   目录			

将目录1拷贝到目录2中,若目录2不存在,则复制目录1为目录2

cp 目录1  目录2 -r		

2.4.9、mv

移动文件1给文件2(文件2原来内容会被覆盖)

mv 文件1 文件2 		

移动目录1到目录2

mv 目录1 目录2 		

移动文件到目录下

mv 文件   目录			

2.4.10 其他常用

如果涉及到用户切换,则是切换到上次的用户
如果这是最开始的用户,则表示退出终端

exit			(ctrl + d)		

清屏

clear或者ctrl + l 		

如果是配置过的虚拟机,则是自动补全
如果没有输全,连续按两下,则会弹出所有匹配的文件
tab (键盘按键)

比较两个文件内容是否相同

diff -ruN	file1 file2		

执行指令所需时间

time -ls				

显示当前时间

date					

杀死进程

kill -9 进程号

查看当前进程

ps 		
ps -ef	

查看所有进程

ps -aux				

查看所有进程可以看到其父进程id

ps ajx				

查看指令所在的路径

which 命令			

查看所有命令详细路径

whereis 命令			

追加终端的内容到文件

ls   >>   file1	 		

重定向终端上的内容打印到文件中,如果文件中有内容就清空之后打印(只能定向正确信息,若想重定向错误信息>&)例如:file.txt > file1.txt

>					

打印内容到终端

echo 字符串			

方便保存文件内容

gedit  文件名			

打印文件属性到终端

stat	文件名			

打印文件详细信息

file 文件名(小端lsb file后需要加可执行文件)
liu@hqyj:~/lyy/net$ file ./a.out 
./a.out: ELF 64-bit LSB shared object, x86-64,
 version 1 (SYSV), dynamically linked, interpreter
  /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0,
  BuildID[sha1]=d579d9a459162a71ecffa9ea4bfc06693cfbe55a, 
  not stripped

修改文件权限

chmod 0777 文件名	

2.4.11man

查看帮助信息

man + ...   			

2.4.12软件离线安装卸载命令dpkg(Ubuntu的后缀是.deb,redhat的后缀名是.rmp)

安装软件

sudo dpkg -i  软件包名   

查看软件sl的帮助文档

man sl	      

查看软件的安装路径

sudo dpkg -L 软件名	

查看软件的版本信息

sudo dpkg -l  软件名 	

卸载软件但是会保留软件的配置信息

sudo dpkg -r  软件名	 

完全卸载软件

sudo dpkg -P 软件名	

查看软件安装状态

sudo dpkg -s  软件名	 

2.4.13软件在线安装卸载等命令apt-get

2.4.14、在线安装 apt-get :检查所需的依赖并一同安装

仓库1   仓库2  ... 仓库n	---不是每个仓库都有所有软件的地址
  |       |          |
-----------------------
  |
服务器1 服务器2    服务器3   ----每一个服务器中都有所有仓库的地址

选择服务器:
1、win键–>输入update–>设置–>Ubuntu软件–>“下载自”后面的下拉箭头–>
–>“让系统帮忙匹配一个最优的或者手动选择” 如 tsinghua.edu.com 清华大学的服务器–>关闭
此时,在/etc/apt/路径下的source.list文件中,应该可以看到所选的服务器的地址
执行 sudo apt-get update

/var/lib/apt/lists路径下是软件的下载源
如果选择服务器后报错:

进到/var/lib/apt/lists路径下  rm 所有的
			重新执行  sudo apt-get update

安装软件:

sudo apt-get  install 软件名
一些好玩的软件:
	sudo apt-get install sl //安装小火车应用程序
	sudo apt-get install oneko //安装一个小猫
	sudo apt-get install bastet //俄罗斯方块    终端字体缩小点就能玩了
	sudo apt-get install frozen-bubble //泡泡龙
	sudo apt-get install kolourpaint4 //画图板
	sudo apt-get install xawtv     //打开摄像头的软件

下载安装包:(只下载,不安装)

	sudo apt-get  download 软件名

下载源码:

	sudo apt-get  source 软件名

卸载软件:

	sudo apt-get  remove 软件名

清理安装包:

	sudo apt-get clean

		***安装包路径是在

/var/cache/apt/archives***

2.4.14、共享文件夹

介绍:就是实现Ubuntu系统和windows系统文件的传输
配置方式:点击菜单栏的“虚拟机”,点击“设置”,进入虚拟机设置窗口,然后点击当前窗口的左上角的“选项”,然后点击“共享文件夹”,在右边“文件夹共享”里面选择“总是 启用”,然后在下方点击“添加”,然后选择共享文件夹的路径,点击确定即可
当共享文件夹创建好之后,Ubuntu的共享文件夹的路径是/mnt/hgfs/share,windows就是你自己指定的路径

3拓展指令

3.1history

终端打印前n条输入过的指令历史记录,上限为1000条,可以在.bash里面修改上限
history n

3.2查看文件的指令

1、打开文件查看

vim   文件名  +n	打开文件定位到第n行
vim -O 多个文件    左右分屏显示多个文件

2、终端打印一个或者多个文件内容

cat 文件名

带行号查看文件

cat -n 文件名 (若是写-b则是对空白行不编号) 		

3、显示前十行
head 文件名
显示文件前五行

head -n  5  文件名     
head -n5  文件名      
head - 5  文件名	

4、默认显示后十行
tail 文件名
显示文件后五行

tail -5  文件名
tail -n5  文件名
tail -n 5  文件名	

动态检测文件的新增情况(一般用于检测日志)

tail -f 文件名		

5、以百分比显示文件,回车向下走,q退出

more   文件名		

6、上下键翻页,q退出

less 	 文件名		

3.3文件统计相关的指令

1、wc 文件名

230		230399		399个单词
4751	4751个字符

wc -l 文件名 统计文件中的行数
wc -w 文件名 统计文件中的单词数
wc -c 文件名 统计文件中的字符数

例子:
统计当前文件下所有.c文件下的总行数

wc -l *.c

2、匹配内容

grep "string" 文件名  		

可以加参数

-n	显示行号
-v	反选
-I	忽略大小写
-w	精确匹配
-R	递归匹配,可以用于目录中检索

常用用法:grep -nR “string”

ps -aux | gerp ./a.out

3、查找路径下有无存在名字为文件名的文件

find 路径名 -name 文件名		

查找当前路径下类型为文件类型名的文件

find 路径名 -type  文件类型名	

常用用法:

find ./ -type f | grep -n "hello"
find ./ type f | xargs grep -n "hello" --color=auto

xargs 所有文件
–color=auto 高亮显示

4、文件截取(d与f的作用)

cut -d 分隔符 -f 域 文件名		

基本用法:
山西:临汾:洪洞:刘家垣
例如:

cut -d : -f 2 file  截取第二个域的内容	-->临汾
cut -d : -f 1-3 file 截取第一到第三个域中的内容 	-->山西:临汾:洪洞
cut -d : -f 1,3 file  截取第一个和第三个域中的内容-->山西:洪洞
(三种可以互相组合)

3.4文件的操作

1、软连接
文件类型那儿是-l的文件是软连接,类似于快捷方式
创建方式:

ln -s 被链接的路径文件(pathname) 链接路径文件(pathname)

例如:

ln -s print  aa

他所默认使用的是相对路径 所以链接文件都不可以移动路径,一旦移动,链接文件就会失效
但是可以在创建的时候直接设置绝对路径,链接文件可以随意移动,但是被链接文件不可以移动,因为链接文件是依据被链接文件寻找文件。举例如下:

ln -s /home/yangfs/21031/linux_c/day1/test/print ./aa 

2、硬链接
链接文件域源文件属性相同,相当于给文件起别名,inode文件的唯一标识符是相同的
创建方式:

ln 被链接的文件 链接文件

例如

ln main.c ln.c

本质上来说两个文件是同一个文件,两个文件显示的都是普通文件,区别只是名字不同,只要修改一个另一个一定会改变。即使删除一个,另一个也会存在,不会有任何影响,修改他们的路径依然链接在一起。
3、文件权限的设置与修改

可以在创建文件夹就设置权限	 mkdir -m 0777 dir
对于文件/文件夹:可以直接修改所有权限 chmod  0777 dir/file
也可以修改单一权限:chmod u + r  对所属用户增加读权限
               chmod g + r  对同组用户增加读权限
 	       chmod o + r   对其他用户增加读权限

如果是 - :则是减权限,变为-空权限
修改文件所属的用户:sudo chown stu print 把文件print的所属用户修改为stu
修改文件所属的组:sudo chgrp 要修改的组名 文件名

3.5文件压缩、解压

1、压缩:针对普通文件

gzip 文件名 ==> .gz
bzip2 文件名==> .bz2
xz 文件名     ==> .xz

以上三种文件的压缩速率:gzip > bzip2 > xz
压缩率:xz > bzip2 > gzip
2、解压:针对普通文件

.gz   ==> gunzip     .gz类型的文件
.bz2 ==> bunzip2    .bz2类型的文件
.xz    ==> unxz	.xz类型的文件

3.6目录文件的压缩、归档、解压缩

-c	归档
-x	解归档
-v	显示详细信息
-f	后面接文件
-z	归档并压缩,压缩成.gz
-j	归档并压缩,压缩成.bz2
-J	归档并压缩,压缩成.xz

实例:
归档(打包)的命令

tar -cvf 目录名.tar  目录名
解归档(拆包)的命令
tar -xvf 目录名.tar
压缩为.gz文件		
tar -zcvf 目录名.tar.gz  目录名
.gz文件解压缩
tar -zxvf  .gz类型的文件名
压缩为.bz2文件
tar -jcvf 目录名.tar.bz2 目录名
.bz2文件解压缩
tar -jxvf .bz2类型的目录名
压缩为.xz文件
tar -Jcvf 目录名.tar..xz mulum
.xz文件解压缩
tar -Jxvf .xz类型的文件名

通用的解压命令

tar -xvf 压缩文件名

3.7系统命令

1、关机

sudo shutdown -h now		立即关机
sudo shutdown -h +50		50分钟后关机
sudo shutdown -h 10:10		10:10后关机

2、重启

sudo shutdown -r now		立即重启
sudo shutdown -r +50		50分钟后重启
sudo shutdown -r 10:10		10:10重启
sudo reboot				立即重启

3.8用户相关

1、添加新用户(一般用不到)

sudo adduser 用户名			
注意:一般新建的用户没有sudo权限
解决方法;
su	root		切换到管理员用户
chmod u+w /etc/sudoers
vi /etc/sudoers	在用户权限那儿添加新用户的权限
chmod u-w /etc/sudoers

2、 su 用户名 切换用户(不会加载新用户的环境变量)

su - 用户名		(会加载)

3、exit
如果为初始用户则退出当前终端
如果有其他用户则退出当前账户进入上一个用户

4、usermod 修改用户信息

sudo usermod -c "string"  用户名		修改用户的描述信息
  sudo username -l stu liu				修改用户名(需要在非要修改的用户修改)

5、sudo userdel -r user1 删除用户
6、id liu 查看用户的基本信息

3.9环境变量相关

1、什么是环境变量:环境变量用于保存系统相关或者系统配置的一些变量,属于后台进程
2、env 查看当前系统所有环境变量
3、export 变量名=$PATH:新的值 以追加的方式添加环境变量原有的值
生效方式:立即生效且在当前终端生效

弊端:下次进入就不行了
4、一般环境变量中的值保存在在/bin目录下(是可执行文件)
5、cd(家目录)

      vi .bashrc	在文件中添加export 变量命=$PATH:新的值
生效方式:1  重新登陆
    	2  source ~/.bashrc

6、echo $SHELL //显示系统当前使用的解释器

3.10磁盘相关

查看当前系统的内存使用情况

free

查看文件系统的磁盘空间占用情况

df

统计目录/文件所占磁盘的大小

du
sudo fdisk -l								查看磁盘信息
sudo df -h								 查看磁盘使用情况
sudo mount 设备名 路径名

例:

   sudo mount /dev/sdb1 ./dir

3.11搭配命令使用的通配符

1、*
可以匹配任意长度的字符

例子:假设当前路径下有如下文件
file1  file2  file4  file6  fileA  fileB  fileC  fileD  fileE  fileF
file11111111111  file3  file5  filea  fileb  filec  filed  filee  filef
			
ls file*  
	结果:
	file1  file2  file4  file6  fileA  fileB  fileC  fileD  fileE  fileF file11111111111  file3  file5  filea  fileb  filec  filed  filee  filef

2、?
只可以匹配一个字符

1:
	ls file?
	结果:
	file1  file2  file4  file6  fileA  fileB  fileC  fileD  fileE  fileF  file11111111111  file3  file5  filea  fileb  filec  filed  filee  filef
例2:
ls file???????????
结果:
file11111111111

3、[字符1字符2...字符n]匹配[]中任意一个字符

1:
				ls file[abc]
				结果:
				filea  fileb  filec

4、[字符1-字符n]匹配字符1到字符n中任意一个字符
本地字节序:aAbBcCdD…zZ
export LC_ALL=C 清除本地字节序(export LC_ALL=C)
清除本地字节序后:abcd…zABCD…Z

例:
    ls file[a-e]   (前提是清除了本地字节序)
 					结果:
					filea  fileb  filec  filed  filee

5、[^字符1字符2...字符n]匹配除了[]中的字符后的任意一个字符

1:
				ls file[^abcdef]
				结果:
				file1  file2  file3  file4  file5  file6  fileA  fileB  
				fileC  fileD  fileE  fileF
				注意:不包含 file11111111111

6、[^字符1-字符n]同上

3.12网络相关的命令

网络基础:
1.IP:主机在网络中的一个编号,唯一的

ip的分类 :IPV4(32位) 和 IPV6(128位)
ip的表示方式 :点分十进制
ip的组成 :网络号+主机号

IPV4网段的划分

		网络号   主机号      要求的最高位    范围     使用单位   		 ip保留段
A类		1字节	 3字节		   0	   [0-127]  政府/大公司/学校  10.0.0.0--10.255.255.255
B类		2字节	 2字节         10	   [128-191]  中等规模的公司	172.16.0.0--172.31.255.255
C类		3字节	 1字节	      110	   [192-223]  小公司或个人  192.168.0.0--192.168.255.255
D类		组播地址
E类		未使用(为高校实验室准备)
----范围:
	A:0.0.0.0  --- 127.255.255.255
	B:128.0.0.0  ---  191.255.255.255
	C: 192.0.0.0  ---  223.255.255.255	

2、子网掩码

用来和IP地址取  按位与  &  运算的,用来获取网络号
			192.168.1.54 & 255.255.255.0  =  192.168.1.0

一般网络地址部分都是1,主机地址是0
其中 192.168.1.0 就叫做网络号,一般同一个网络下的网络号相同,所以子网掩码的一个重要作用就是比较IP和子网掩码相与比较两台通信的主机是否有相同的网络号,如果相同,向内网发送,反之外网。

3.默认网关,一般来讲是交换机(路由器)的ip地址

一般来说  192.168.1.54  --> 默认网关  192.168.1.1
ping是通过ICMP回显请求给主机,等待主机ICMP回显应答

4.DNS 域名解析器

	www.baidu.com  -->  182.61.200.6
8.8.8.8
114.114.114.114

Ubuntu设置网络:
方法1:通过图形化界面:
右上角的连接图标–>有线连接的下拉箭头–>有线设置–>先把开关关闭
选择IPV4–>手动–>填写相关信息(ip地址、子网掩码、默认网关、DNS服务地址)–>应用(需要密码)–>打开开关

方法2:
通过修改 /etc/netplan 目录下的 01-network-manager-all.yaml 文件来修改

改文件对格式要求比较高 一般不用这种方式修改
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens37:
addresses: [192.168.1.54/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8,114.114.114.114]
dhcp4: no
optional: no

修改后使之生效
sudo netplan apply

查看网络信息:

ifconfig / ipconfig

重启网络服务:

	sudo service network-manager  restart

测试是否联网

	ping www.baidu.com
	通过ICMP协议发送给目标主机请求,并且等待ICMP返回回显应答
PING www.a.shifen.com (182.61.200.7) 56(84) bytes of data.
64 bytes from 182.61.200.7 (182.61.200.7): icmp_seq=1 ttl=52 time=17.1 ms
64 bytes from 182.61.200.7 (182.61.200.7): icmp_seq=2 ttl=52 time=42.9 ms

&&size 查看文件中每个内存段的大小

gcc a.c &&size ./a.out

&&nm查看每个内存段中值的地址
查看程序执行时间:time 可执行文件
vim编辑器让多窗口能拖动:

~/.vimrc 文件末尾加入一行   set  mouse=a
vi -O main.c  func.c  func.h    //打开多个文件

:wqa //全部保存退出

ldd 文件
查看文件链接的库

zo 打开折叠

id 文件名 查看文件id(也可以 通过stat函数读取)

可以通过ulimit -a命令查看最大的文件描述符1024
这个数值可以通过ulimit -n 2048修改为2048

补充
查看信号号
kill -l
查看内存
df-h
find 路径名 -type 文件类型名

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值