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 230行
399 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 filefls 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.255B:128.0.0.0 --- 191.255.255.255C: 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 文件类型名
2、Linux命令合集相关推荐
- 玩转Linux命令-合集
玩转Linux命令-合集 前言 Linux 系统目录结构 Linux命令 常用命令 前言 该博客用于记录 Linux 使用过程中遇到的命令,将会持续更新. 未更新的命令可参考:here Linux 系 ...
- 常用的Linux命令合集,建议收藏保存!
Linux是现在服务器系统最常用的系统,基于unix开源免费,系统稳定性非常高,所以才被更多的服务器所采用.今天小千就来给大家介绍一些比较常用的Linux指令,方便大家操作和学习. 一.linux 的 ...
- 常用的35个Linux命令合集
1.ls显示文件或目录内容 ls:列出文件和文件夹名(文件夹蓝色.普通文件白色.压缩包红色.图片粉色) ls -a:展示隐藏的文件,通常以 . 开头. ls --help:引出全部命令 ls -s:展 ...
- Linux命令合集,手动精修
系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) ...
- linux一次三行显示文件内容,Linux 命令合集(二):查看文件及内容处理命令
一.cat(tac):(倒序)查看文件内容 命令格式 cat [参数] [文件名] 命令参数 -n:对所有行进行编号 -b:对所有非空行进行编号 -s:压缩多行非空行为一行非空行 -T:tab缩进用 ...
- ❤️ 爆赞,基础又全面的Linux命令合集!学都学不完...【汇总】
- manjaro(linux)系统各类命令合集(渐渐更新)
manjaro(linux)系统各类命令合集(渐渐更新) wlan开启 系统默认的wlan是关闭的 sudo rmmod ideapad_laptop 查找以及安装命令 系统很多软件都是自带安装包的, ...
- Linux手册大合集,收藏!Linux常用命令合集
收藏!Linux常用命令合集 1. 帮助命令 1.1 man 命令名称,man 的意思是 manual,即手册,对于大多数命令都可以使用这个命令来查看其使用的方法. 1.2 help 命令名称 或者 ...
- 收藏!Linux 常用命令合集
收藏!Linux常用命令合集 1. 帮助命令 1.1 man 命令名称,man 的意思是 manual,即手册,对于大多数命令都可以使用这个命令来查看其使用的方法. 1.2 help 命令名称 或者 ...
最新文章
- 编程之美计算0到N中包含数字1的个数
- 这个德国山寨工厂靠抄袭干到240亿,让硅谷恨之入骨
- 高斯过程回归(GPR)—— 数学推导
- 关于「无人驾驶」的学习路线...
- altera fpga sdi输出方案_FPGA在电力电子中的应用有哪些?
- 作业2-Python基础练习
- Windows10批处理文件中用regedit导入注册表文件失败的原因和解决办法
- 基于verliog的异步模10计数器(含模块代码以及测试代码)
- java常量池在哪里_java常量池在哪?有什么用处?
- 如何系统学习Linux
- IE加载ocx时提示控件不安全的解决方法
- 电商api接口:淘宝以图搜图
- 台湾SSS鑫创SSS1700替代Cmedia CM6533 24bit 96KHZ USB音频编解码芯片
- 鉴源实验室丨汽车电子架构和CAN网络基础
- 机器学习日记(13)
- 黑苹果 选择语言 点不了_作为一个自媒体人,我在618选择了这些硬件组装了一台黑苹果电脑...
- 尚硅谷_在线教育_Nuxt整合错误
- 留学生回国考计算机等级考试,2018年下半年国家公派留学人员外语水平考试(WSK)报考通知...
- Flex布局常见父项属性(一)- flex-direction
- 优锘科技:可视化加速“历史数据库”运转