欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【从零开始的嵌入式生活】LinuxC语言——shell命令

时间:2023-07-27
前言

今天是2021年的第三天,差点就断更了呀,我放弃了LOL陪大家一起学习0.0。
三连即可提高学习效率0.0

六作者简介:一个学嵌入式的年轻人
✨联系方式:2201891280(QQ)
源码地址:https://gitee.com/xingleigao/study_qianrushi
⏳全文大约阅读时间: 60min


文章目录

前言1.shell基本系统维护命令

man 联机帮助页,并提供简短的命令说明passwd 改密码su 临时改变用户身份echo 在显示器上显示一段文字date 显示和设置系统日期和时间clear 清屏df 查看磁盘空间使用情况du 查看目录的使用情况 2.用户管理

2.1相关文件2.2 添加用户 adduser2.3 更改用户的属性 usermod2.4 删除用户 deluser2.5 添加用户组 addgroup2.6 删除用户组 delgroup 3.进程管理

3.1 进程的概念3.2 ps 命令—— 显示进程 (process) 的动态3.3 top 命令—— 监视进程3.4 pstree 命令—— 所有行程以树状图显示3.5 kill 命令——给程序发命令 3.文件系统的类型和结构

Linux文件系统的类型Linux文件系统的结构 4.文件系统相关命令

file——判定文件类型mkdir——创建目录rmdir——删除目录ln——建文件的链接文件文件压缩和归档

gzip与gunzip命令tar命令 5.Linux网络配置管理

网络配置基础ping命令 写在最后


1.shell基本系统维护命令
man 联机帮助页,并提供简短的命令说明

man commandname

可以使用PageUp、PageDown来翻页,:q退出。
举个例子:

内容主要包含:

NAME:命令的名称SYNOPSIS:命令的语法格式DEscriptION:命令的一般描述以及用途OPTIONS:描述命令所有的参数或选项SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令BUGS:解释命令或其输出中存在的任何已知的问题或缺陷EXAMPLES:普通的用法示例AUTHORS:联机帮助页以及命令的作者

平时一定要记得使用这本帮助手册,非常好用!!!


passwd 改密码

passwd username

username:改密码的用户名,默认当前用户。
如果不该当前用户的密码需要管理员权限,就是在最前面加sudo


su 临时改变用户身份

su [-c | -m - ] username

-c:执行一个命令后会返回默认账户。-m:仍保留环境变量不变。-:转换身份时同时使用该用户的环境。exit:退出账户。username:默认为切换为root账户。


echo 在显示器上显示一段文字

echo [-n] information

-n:可以输出命令不换行。echo “hello word”:用于原样输出echo hello world:用于输出字符只用一个空格分隔


date 显示和设置系统日期和时间

date [-d | -s|-u ] datestr

-s:设置日期,时间格式为hh:mm:ss,日期:mm/dd/yy


clear 清屏

clear

也可以使用ctrl + l


df 查看磁盘空间使用情况

df [-a | -T | -h | -k ] Filesystem

选项含义-a显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等-T显示文件系统的文件格式类型-h物理文件系统大小按兆字节为单位显示-k物理文件系统大小按千字节为单位显示
du 查看目录的使用情况

du -h /etc

-a:仅列出空间的文件数-h:列出磁盘的使用情况(KB)-s:列出总的空闲空间(KB)

这部分建议时常回来翻翻看看,我也记不住-。-用的多了就记住了。

2.用户管理
2.1相关文件

/etc/passwd文件是用户清单

登陆名经过加密的口令UID默认的GID(组号)个人信息主目录登陆shell


/etc/group UNIX组的名称和每个组中成员列表
每一行代表一个组,包括4个字段:

组名加密的口令GID号成员列表,彼此用逗号隔开


2.2 添加用户 adduser

adduser

/etc/adduser.conf 配置文件

FIRST_UID=1000LAST_UID=29999USERS_GID=100DHOME=/homeDSHELL=/bin/bashSKEL=/etc/skel

Everything is file.linux下一切皆文件
/etc/adduser.conf 配置文件


2.3 更改用户的属性 usermod

usermod [-u uid [-o]] [-g group] [-G gropup,…]
[-d home [-m]] [-s shell] [-c comment]
[-l new_name] [-f inactive][-e expire]
[-p passwd] [-L|-U] name
举例:用户oldname改名为newname
注意要同时更改家目录: usermod –d /home/newname –m –l newname oldname


2.4 删除用户 deluser

deluser

使用方法:
最好同时删除用户工作目录:deluser --remove-home user1


2.5 添加用户组 addgroup

addgroup groupname


2.6 删除用户组 delgroup

delgroup groupname

3.进程管理
3.1 进程的概念

程序的一次执行就是一个进程


3.2 ps 命令—— 显示进程 (process) 的动态

ps [options]

-A 列出所有的行程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程


进程的状态标志:

D: 不可中断的静止R: 正在执行中S: 阻塞状态T: 暂停执行Z: 不存在但暂时无法消除 (僵尸态)<: 高优先级的进程N: 低优先级的进程L: 有内存分页分配并锁在内存中

日常使用:

ps aux | grep "name"

一般结合grep来使用。


3.3 top 命令—— 监视进程
3.4 pstree 命令—— 所有行程以树状图显示
3.5 kill 命令——给程序发命令

kill [-signal] PID

kill 命令向指定的进程发出一个信号signal,在默认的情况下,kill 命令向指定进程发出信号15,正常情况下,将杀死那些不捕捉或不忽略这个信号的进程
可以使用kill -l查看所有支持的信号。

3.文件系统的类型和结构

文件系统用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。Linux同样具备完善的文件系统。


Linux文件系统的类型

磁盘文件系统: 指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、ISO9660(通常是CD-ROM)、UFS(Unix File System,Unix文件系统)、FAT、FAT16、FAT32、NTFS等;网络文件系统: 是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS、Samba等;专有/虚拟文件系统: 不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)。

目前Ext4是Linux系统广泛使用的一种文件格式。在Ext3基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。
最大特点是日志文件系统: 可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。。


交换分区(swapping)
将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping)

交换分区最小必须等于计算机的内存 (1.5~2倍 其实内存比较大的话不需要这个)可以创建多于一个的交换分区尽量把交换分区放在硬盘驱动器的起始位置


Linux文件系统的结构

文件系统逻辑结构
Linux的文件组织模式犹如一颗倒置的树,这与Windows文件系统有很大差别。


基本目录
绝对路径:/usr/games/gnect
相对目录:./games
默认的相对路径中.代表当前目录..代表上层目录。

4.文件系统相关命令

pwd ls cd touch cp mv rm cat head tail已经在C语言基础补习课程中讲过
【从零开始的嵌入式生活】必备基础知识,从环境安装开始


file——判定文件类型

file [ filename ]


mkdir——创建目录

mkdir [ -p ] directory_name

mkdir必须需要父目录存在,如果需要循环创建,需要加-p选项。


rmdir——删除目录

rmdir [ -p ] directory_name

经常使用效率更高的:rm –r dir1


ln——建文件的链接文件

链接文件

硬链接是利用Linux中为每个文件分配的物理编号——inode建立链接。因此,硬链接不能跨越文件系统。软链接(符号链接)是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。(类似于快捷方式)

ln [ -s ] target link_name

-s:表示创建软链接

这部分的内容可以参考【C语言有什么用?①】从零开始撸一个用户态模拟文件系统


文件压缩和归档

归档文件是将一组文件或目录保存在一个文件中。压缩文件也是将一组文件或目录保存一个文件中,并按照某种存储格式保存在磁盘上,所占磁盘空间比其中所有文件总和要少。


常见的压缩文件:
与windows建议使用zip

压缩工具解压工具文件扩展名gzipgunzip.gzbzip2bunzip2.bz2zipunzip.zip
gzip与gunzip命令

gzip [ -l| -d | -num ] filename

-l:查看压缩文件内的信息,包括文件数、大小、压缩比等参数,并不进行文件解压-d:将文件解压,功能与gunzip相同-num:指定压缩比率,num为1~9个等级(数字越大压缩率越大)

gunzip [ -f ] file.gz


tar命令

主要用于将若干文件或目录合并为一个文件

tar [ -t | -x | -u | -c | -v | -f | -j | -z ] tarfile filelist

-t:显示归档文件中的内容-x:释放归档文件-u:更新归档文件-c:创建一个新的归档文件-v:显示归档和释放的过程信息-f:用户指定归档文件的文件名,否则使用默认名称-j:由tar生成归档,然后由bzip2压缩-z:由tar生成归档,然后由gzip压缩

一般用tar -cfz压缩文件,使用tar -xfc解压,生成的目录名为.tar.gz

5.Linux网络配置管理
网络配置基础

实现Linux网络配置的惟一目标就是修改系统中众多的网络配置文件,如/etc/interfaces、/etc/hosts,/etc/resolv.conf等等。

通常,用户可能使用普通以太网卡、无线网卡、调制解调器等不同类型的设备接入网络。不同类型的网络设备在主机中被映射为相应的网络接口,比如以太网卡映射为eth,无线网卡映射为wlan。有时,用户还可能同时使用多个网络设备,就会出现eth0、eth1…,或wlan0、wlan1…的情况。

那么,如何标识每个连接到Internet的网络接口呢?
解决办法是:为每个网络接口分配一个全世界范围内惟一的32bit的标识符。这个标识符就是IP(Internet Protocol)地址。


IP地址
一般使用点分十进制表示,都是255.255.255.255
IP网络中通常用最小的IP地址标识网络本身,将最大的IP地址作为该网络的广播地址,其余所有IP地址都分配给网络中的主机。然而,局域网中的主机并不能直接访问Internet,需要通过一个作为代理的网关或网络地址转换服务(NAT)才能访问Internet。通常将IP地址的第一个或最后一个留给该网络的Internet网关。


配置IP地址

配置静态IP:在主机进入网络之前,事先为主机设置固定的IP地址;配置动态IP:选择DHCP网络服务,在主机进入网络之后,动态随机获取IP地址。

Ifconfig命令

ifconfig [interface]ifconfig interface [aftype] option | address…

[interface] 指定网卡

/etc/network/interfaces 配置文件是网卡服务器
/etc/resolv.conf DNS客户端配置文件


ping命令

ping [DomainName | IP-address]

可以ping ip或者域名,作用就是给这个服务器打招呼,问它是否活着0.0
默认一直打招呼,可以使用-c表示次数 比如ping -c 3 baidu.com就只ping三次。

写在最后

今天主要讲解了很多shell命令,这些东西不好记,需要时常回来翻一翻,接下来的几天都会围绕这一主题展开,有兴趣的童鞋可以跟我一起呀。三连即可提高学习效率!!!


另外我在更新的就是算法笔记的一些例题笔记,这个系列是用于提高我的算法能力,如果有兴趣对算法领域感兴趣找不到合适的入门文章也可以追更,如果我更新的太慢了请大家点赞收藏,一键三连才能更有更新的动力呀0.0

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。