从命令行角度入门嵌入式linux

1 篇文章 0 订阅
1 篇文章 0 订阅


编者也是经过从调试单片机到操作系统的历程,使用linux系统上手第一步,就是了解linux的命令行命令,可以类比window环境下的cmd; 本文作为从多角度认识了解嵌入式linux的第一遍,就分类列举了多年下来会使用的一些命令,并对应列举了示例,首先做到眼熟,之后可以通过网络和工具进一步详细了解该命令。

本文并根据入门程度分成三个层级,第一个层级主要是帮助熟练练手操作linux;第二个层级会有很多开发过程中常用的一些命令;最后第三层级是补充,可能会可以慢慢需要时再去查找。

一、第一层级,小试牛刀

1. 文件和目录操作:

  • ls:列出目录的内容。例如,ls -l会以列表格式显示当前目录内容。

  • cd:更改当前工作目录。例如,cd /var/log会切换到/var/log目录。

  • cp:复制文件或目录。例如,cp source.txt dest.txt会复制source.txt到dest.txt。

  • mv:移动或重命名文件或目录。例如,mv old.txt new.txt会将old.txt重命名为new.txt。

  • rm:删除文件或目录。例如,rm file.txt会删除file.txt文件。

  • touch:创建一个新的空文件。例如,touch newfile.txt会创建一个名为newfile.txt的新文件。

  • find:在文件系统中查找文件或目录。例如,find / -name myfile.txt会从根目录开始查找名为myfile.txt的文件。

2. 文件内容查看和处理:

  • cat:显示文件内容。例如,cat /etc/passwd会显示/etc/passwd文件的内容。

  • less:分页显示文件内容。例如,less /var/log/syslog会分页显示syslog文件的内容。

  • grep:在文件或者标准输入中查找匹配的字符串。例如,grep 'error' /var/log/syslog会在syslog文件中查找包含"error"的行。

  • awk:处理文件中的行和列。例如,awk '{print $1}' myfile.txt会打印myfile.txt中每一行的第一列。

  • sed:流编辑器,用于对输入流(或文件)进行基本的文本转换。例如,sed 's/foo/bar/g' myfile.txt会将myfile.txt中的所有'foo'替换为'bar'。

3. 权限和所有权管理:

  • chmod:改变文件或目录的权限。例如,chmod 755 myfile.txt会改变myfile.txt的权限。

  • chown:改变文件或目录的所有者和所属组。例如,chown user:group myfile.txt会改变myfile.txt的所有者和组。

  • chgrp:更改文件的组。例如,chgrp group file.txt会将file.txt的组更改为'group'。

  • su:切换用户。例如,su - username会切换到username用户。

  • sudo:以其他用户(通常是root用户)的身份执行命令。例如,sudo service apache2 restart会以root用户的身份重启apache2服务。

4. 系统状态查看:

  • top:显示实时系统状态,包括CPU使用率,内存使用情况,正在运行的进程等。

  • ps:显示当前系统的进程状态。例如,ps aux会显示所有的进程信息。

  • df:显示磁盘使用情况。例如,df -h会以人类可读的格式显示所有文件系统的磁盘使用情况。

  • free:显示内存和交换空间的使用情况。例如,free -h会以人类可读的格式显示内存和交换空间的使用情况。

  • uptime:显示系统的运行时间,以及过去一段时间内的平均负载。

5. 网络操作:

  • ping:发送ICMP ECHO_REQUEST以测试网络连接。例如,ping www.google.com会发送ICMP请求到www.google.com。

  • netstat:显示网络连接,路由表,网络接口统计等。例如,netstat -tuln会列出所有正在监听的TCP和UDP端口。

  • ssh:安全地连接到远程服务器。例如,ssh user@192.168.1.1会使用ssh连接到192.168.1.1。

  • wget:从网络上下载文件。例如,wget http://example.com/myfile.txt会从example.com下载myfile.txt。

  • curl:发送HTTP请求。例如,curl -X GET http://example.com会发送一个GET请求到example.com。

6.环境和 shell:

  • env:运行一个在修改环境的情况下的程序。例如,env VAR=value command会在新的环境中执行'command'。

  • export:设置环境变量。例如,export VAR=value会设置环境变量'VAR'。

  • alias:创建命令别名。例如,alias ll='ls -l'将创建一个名为'll'的别名,等同于'ls -l'。

  • source:在当前shell环境中执行脚本。例如,source script.sh将在当前shell中执行'script.sh',而不是创建新的子shell。

7. 磁盘和文件系统工具:

  • df:显示磁盘空间使用情况。例如,df -h会以人类可读的方式显示。

  • du:显示目录或文件的磁盘使用情况。例如,du -sh /home/user会显示'/home/user'目录的大小。

  • fsck:检查并可选地修复文件系统。例如,fsck /dev/sda1会检查'/dev/sda1'设备。

  • dd:用于转换和复制文件。例如,dd if=/dev/zero of=file.txt count=1024 bs=1024会创建一个大小为1MB的文件。

  • fdisk, parted:用于磁盘分区。例如,fdisk /dev/sda会开始一个交互式的磁盘分区程序。

  • mkfs:用于在设备上创建文件系统。例如,mkfs -t ext4 /dev/sda1会在/dev/sda1分区上创建一个ext4文件系统。

  • mount和umount:用于挂载和卸载文件系统。例如,mount /dev/sda1 /mnt会将/dev/sda1分区挂载到/mnt目录,umount /mnt则会卸载。

8.搜索和查找:

  • find:在文件系统中查找文件。例如,find / -name "*.txt"会从根目录开始查找所有以.txt为后缀的文件。

  • grep:在文件中查找特定的文本。例如,grep "hello" file.txt会在file.txt中查找包含"hello"的行。

  • locate:在数据库中查找文件。这通常比find命令更快,但是数据库可能不总是最新的。例如,locate file.txt会查找文件名或路径中包含"file.txt"的文件。

9.系统管理和服务控制:

  • shutdown:用于关闭或重启系统。例如,shutdown -r now会立即重启系统。

  • reboot:重启系统。同样,你可以使用shutdown -r now来达到同样的效果。

  • systemctl:用于控制Systemd系统和服务管理器。例如,systemctl start apache2.service会启动Apache2服务。

  • service:在不使用Systemd的系统中,用于控制系统服务。例如,service apache2 start会启动Apache2服务。

10. 网络诊断工具:

  • netstat:显示网络统计信息。例如,netstat -plnt会显示监听的TCP端口和相关进程。

  • ifconfig 或 ip:显示或配置网络接口。例如,ifconfig会显示所有活动的网络接口的信息,ip addr show会显示类似的信息。

  • ping:发送ICMP ECHO_REQUEST以测试网络连接。例如,ping www.google.com会向www.google.com发送ICMP请求。

  • traceroute:显示数据包到达目的地所经过的路径。例如,traceroute www.google.com会显示数据包到达www.google.com的路径。

  • dig或nslookup:查询DNS查找。例如,dig www.google.com会显示www.google.com的DNS信息。

第二层级:初露锋芒

1. 进程管理:

  • ps:报告当前系统的进程状态。例如,ps aux会显示所有的进程信息。

  • top:显示实时系统状态,包括CPU使用率,内存使用情况,正在运行的进程等。

  • htop:一个增强版的top,提供了更丰富的界面和更多的功能。

  • kill:用于发送信号给进程。例如,kill -9 1234会发送一个SIGKILL信号给进程ID为1234的进程,强制该进程结束。

  • pkill:按照进程名来发送信号。例如,pkill -9 httpd会结束所有名为'httpd'的进程。

  • bg和fg:用于控制后台和前台进程。例如,bg %1会将任务号为1的暂停进程放入后台继续运行,fg %1则将其带回前台。

2. 联网工具:

  • ping: 发送ICMP ECHO_REQUEST以测试网络连接。例如,ping google.com将发送ping请求到google.com。

  • netcat (nc): 用于读取和写入数据流。可以用于创建各种网络连接。例如,nc -l 1234将在端口1234上监听连接。

  • traceroute: 打印数据包到主机的路由路径。例如,traceroute google.com将显示到google.com的路由路径。

  • ssh: 远程登录程序。例如,ssh user@hostname将以'user'的身份登录到'hostname'。

  • scp: 远程文件复制程序。例如,scp file.txt user@hostname:/path/将file.txt复制到'hostname'的'/path/'目录下。

3. 压缩和解压缩命令:

  • tar:归档文件。例如,tar cvf archive.tar files会将files归档为archive.tar。

  • gzip:压缩文件。例如,gzip file会将文件file压缩为file.gz。

  • gunzip:解压缩文件。例如,gunzip file.gz会将file.gz解压缩为file。

  • zip和unzip:创建和解压ZIP压缩包。例如,zip archive.zip files会将files压缩为archive.zip,unzip archive.zip会解压archive.zip。

4. 日志和输出命令:

  • dmesg:显示内核相关消息。例如,dmesg | less可以查看内核启动时的消息。

  • tail:查看文件的末尾。例如,tail /var/log/syslog会显示syslog的最后10行,tail -f /var/log/syslog会动态查看添加到syslog的新内容。

  • head:查看文件的开头。例如,head /var/log/syslog会显示syslog的前10行。

  • less和more:查看文件内容。例如,less /var/log/syslog和more /var/log/syslog可以查看syslog文件的内容。

  • >和>>: 这些是重定向操作符,用于改变命令的输出流。例如,echo "Hello" > file.txt将"Hello"写入file.txt,如果file.txt已经存在,则内容会被覆盖;而echo "Hello" >> file.txt将把"Hello"追加到file.txt的末尾。

5. 文本处理工具:

  • awk:用于在文件中搜索和处理模式。例如,awk '{print $1}' file.txt会打印file.txt中每一行的第一个字段。

  • sed:流编辑器,用于对文本文件进行处理。例如,sed 's/foo/bar/g' file.txt会在file.txt文件中将所有的'foo'替换为'bar'。

  • cut:删除文件中的某些部分。例如,cut -d':' -f1 /etc/passwd会打印'/etc/passwd'文件中每一行的第一个字段。

  • sort:对文件的行进行排序。例如,sort file.txt会按字母顺序排序file.txt的行。

  • uniq:报告或省略文件中的重复行。例如,sort file.txt | uniq会删除file.txt中的重复行。

6. 编程和开发工具:

  • gcc:GNU C编译器。例如,gcc -o hello hello.c会将hello.c编译为名为'hello'的可执行文件。

  • gdb:GNU调试器。例如,gdb ./hello会开始调试名为'hello'的程序。

  • make:自动编译工具。例如,在包含'Makefile'的目录中执行make命令,可以按照'Makefile'中的指示来编译程序。

  • git:版本控制系统。例如,git clone https://github.com/user/repo.git会克隆一个Git仓库。

7. 文本编辑器:

  • vim: 高级文本编辑器。例如,vim file.txt将用vim打开file.txt。

  • nano: 易用的文本编辑器。例如,nano file.txt将用nano打开file.txt。

  • emacs: 功能强大的文本编辑器。例如,emacs file.txt将用emacs打开file.txt。

8. 系统监控和性能调优:

  • top:这是一个实时的系统监视工具,显示当前的系统状态,包括CPU使用情况,进程状态,内存使用情况等。

  • vmstat:这是一个系统性能工具,可以报告有关内存,交换区,IO,CPU等的信息。

  • iostat:这是一个用于监视系统输入/输出设备负载的工具。

  • netstat:这是一个用于显示网络连接,路由表,接口统计等信息的工具。

第二层级:循循渐进

1. 时间和日期:

  • date: 显示或设置系统的日期和时间。例如,date会显示当前的日期和时间。

  • hwclock: 显示或设置硬件时钟。例如,hwclock --systohc会将系统时间写入硬件时钟。

  • cal: 显示日历。例如,cal 2023会显示2023年的日历。

  • timedatectl: 用于查询和更改系统时间和日期设置。

2. 系统信息和状态查看:

  • free: 显示系统的内存使用情况。例如,free -h会以易读的格式显示内存使用情况。

  • uptime: 显示系统运行时间,以及过去一段时间内的系统负载。

  • w: 显示当前登录的用户以及他们正在执行的活动。

  • who: 显示当前登录的用户。

3. 系统备份工具:

  • rsync: 快速,多功能的文件复制工具,常用于备份。例如,rsync -av /src /dest将把'/src'目录同步到'/dest'目录。

  • dd: 可以用于创建磁盘镜像。例如,dd if=/dev/sda of=/path/to/image将创建一个'/dev/sda'的磁盘镜像。

  • tar: 常用于创建备份归档文件。例如,tar czf backup.tar.gz /path/to/dir将创建一个包含'/path/to/dir'的gzip压缩tar文件。

4.软件包管理

  • apt-get(Debian系), yum(旧的Red Hat系), dnf(新的Red Hat系), zypper(SUSE系)等: 这些是各自Linux发行版的软件包管理工具,用于安装、更新和删除软件包。

  • dpkg(Debian系), rpm(Red Hat系):这些是底层的包管理工具,通常在apt, yum等工具无法使用时作为后备。

5.软件和服务管理:

  • systemctl:控制systemd系统和服务管理器。例如,systemctl start service和systemctl stop service用于启动和停止服务。

  • service:在旧版的Linux中,用于控制服务。例如,service apache2 start和service apache2 stop用于启动和停止Apache2服务。

  • apt,yum,dnf,zypper等:软件包管理工具,具体取决于你的Linux发行版。

6. 系统服务和运行等级:

  • systemctl:这是用于控制systemd系统和服务管理器的命令。例如,systemctl start httpd会启动httpd服务。

  • service:这是旧系统中用于控制服务的命令。例如,service httpd start也会启动httpd服务。

  • chkconfig:这是用于管理系统启动时服务启动的命令。例如,chkconfig httpd on会设置httpd服务在系统启动时自动启动。

210a2f0d190d32fb4b3bedc487f0b4d6.jpeg

结尾森哥想说:第一点把命令分类再分类再分层级整理,是为了更好的了解它们,其实入门需要了解的命令并不多。

第二点通过这些常用命令基本涵盖了日常的主要工作场景,可以见微知著,更好的了解操作系统。

第三点命令的使用时很多参数可能并不能都记住,这是常态,使用时使用man+"命令"查看即可。

最后,还有很多高级的工具和命令可以提升效率,需要我们不断摸索,有需要我之后可以再继续整理。

------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------

入坑十余年,输出嵌入式、人工智能、成像技术;涉及计算机硬件、软件、算法,结合摄影视频,输出有趣有料的经验,以及一路的职业和生活感悟,欢迎关注交流!

WX公众号:森哥谈成像技术

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值