【韦东山嵌入式Linux】Linux命令入门笔记-程序员宅基地

技术标签: linux  嵌入式Linux  韦东山  

1 Shell命令解释器原理

在正式学习Linux命令之前,我们首先要知道在将Linux命令输入终端之后,系统是如何实现命令所希望的效果的。这就需要引入Shell命令解释器的概念。

1.1 Linux命令的执行流程

  1. 用户在终端输入命令字符串
  2. 命令字符串被传送给Shell命令解释器
  3. Shell命令解释器在环境变量PATH下寻找字符串对应的命令应用程序
  4. Shell命令解释器将参数赋给命令应用程序并执行
    注意:
    a.Shell命令解释器与Linux命令本质上都是应用程序,Shell命令解释器的作用实际就是在PATH所包含的文件夹中查找文件名与你输入的字符串相同的文件并执行该文件
    b.环境变量PATH的意义:环境变量是一串目录(即日常所说的文件夹)的集合,Shell命令解释器在环境变量PATH所包含的目录中寻找与命令相对应的应用程序;
    c.环境变量相关命令:
    查询当前环境变量
echo $PATH

输入指令后的效果输入echo命令后的效果
终端会显示当前PATH所包含的目录,不同的目录用:隔开。
添加新的环境变量

export PATH=$PATH:/my/dir

其中,$PATH表示原有的环境变量,/my/dir表示你想要在环境变量中添加的目录,可以替换,两者间要用:连接。

1.2 终端显示Command not found的原因

  1. 环境变量PATH所包含的目录中无此程序;
  2. 该命令不是可执行的程序。

1.3 添加新的Linux命令的方法

以添加名为pwdabc的命令为例

  1. 在PATH中添加pwdabc程序所在的目录;
  2. 在以上目录中创建名为pwdabc的命令应用程序;
  3. 为新指令添加可执行权限。
    对应的指令如下:
export PATH=$PATH:/home/book
touch pwdabc
chmod +x pwdabc

2 Linux指令学习

2.1 Linux命令提示符

以百问网提供的Ubuntu镜像为例:

[email protected]:~$

由此可见命令提示符可分为四部分:

  1. 用户名:book;
  2. 主机名:www.100ask.org;
  3. 当前所在目录:~,表示家目录;
  4. 用户提示符:$ or #,前者表示普通用户,后者表示root用户。

2.2 Linux命令格式

命令 【选项】 【参数】
以ls命令为例:

ls
ls -l
ls -l /home

由此可看出
(1) 命令部分必须存在,选项和参数可以不存在,其存在与否取决于你希望实现的功能;
(2) 选项前必须加-;
(3) 命令、选项、参数之间用空格隔开,多个空格效果等同于一个空格;

2.3 pwd命令

命令 pwd
英语来源 print working directory
作用 打印当前所在目录
常用形式 pwd

2.4 cd命令

命令 cd
英语来源 change directory
作用 切换至指定目录
常用形式 cd /目标目录/

使用cd的注意事项:
(1) 切换路径前必须保证目标路径存在,可以使用ls来查看某一路径下的内容;
(2) 要善于使用Tab自动补全内容。

2.4.1 ~、.和…的含义

符号 含义
~ /home/book
. 当前目录
(此处应为2个点) 上一级目录

例如,以下命令的含义即是切换至目录/home/book:

cd ~

2.4.2 切换至上一级目录/上一次目录

cd后加…(此处应为2个点) 可切换至本级目录上一级,例如:

pwd
/home/book
cd ../..
pwd
/

cd后加-可切换至上一次使用cd挂载的目录,例如:

pwd
/home
cd ~
pwd
/home/book
cd -
pwd
/home

2.4.3 绝对路径与相对路径

绝对路径:从根目录一级一级找下去,写完整路径名,例如:

cd /home/book           //使用绝对路径挂载家目录

相对路径:参照当前所在路径进行查找,常常以.和…开头,例如:

./pwd                   //执行当前路径下名为pwd的文件
cd ../videos            //挂载到上一目录下名为videos的目录中去

2.5 ls命令

命令 ls
英语来源 list
作用 列出目录下的文件/目录
常用形式 ls =》列出当前目录下的文件/目录
ls /目标目录 =》列出目标目录下的文件/目录
ls -l =》显示当前目录下文件更详细的信息
ls -a =》显示当前目录下的隐藏文件
ls -h =》将当前目录下文件大小以K(b)、M(b)、G(b)的单位显示

2.6 目录操作:mkdir命令和rmdir命令

2.6.1 mkdir命令

命令 mkdir
英语来源 make directory
作用 创建新目录
常用形式 mkdir 目录名 =》在当前目录下创建一个新目录
mkdir -p 父目录/子目录 =》连续创建多级目录(若父目录 不存在需加-p选项)

2.6.2 rmdir命令

命令 rmdir
英语来源 remove directory
作用 删除目录
常用形式 rmdir 目录名

注:rmdir不能删除非空目录!

2.7 文件操作:touch、mv、cp和rm命令

2.7.1 touch命令

命令 touch
作用 创建新文件
常用形式 touch 文件名 =》创建一个新文件

注意:
(1) 同一目录下不可创建同名文件;
(2) Linux文件名区分大小写,如file和File不是同一文件。

2.7.2 mv命令

命令 mv
英语来源 move
作用 修改文件/目录名、改变文件路径
常用形式 mv 旧文件名 新文件名 =》修改文件名
mv 旧目录名 新目录名 =》修改目录名
mv 文件名 目录名 =》修改文件路径

举例:

mv file1 filea           //将当前目录下的文件file1改名为filea
mv dir1 dira             //将当前目录下的目录dir1改名为dira
mv file1 dira            //将当前目录下的文件file1移动到目录dira
mv file1 ~               //将当前目录下的文件file1移动到家目录
mv ~/file1 ..            //将家目录下的文件file1移动到上一目录

2.7.3 cp命令

命令 cp
英语来源 copy
作用 复制文件/目录
常用形式 cp 源文件名 目标文件名 =》复制出一个和源文件相同的目标文件
cp 源文件名 目标目录名 =》将源文件复制到目标目录下
cp -r 源目录名 目标目录名 =》将源目录下所有内容复制为目标目录
cp -i 源文件名 同名目标文件 =》在替换目标文件前询问是否替换

举例:

cp file1 file2         //将当前目录下的文件file1拷贝为filea
cp file1 dira          //将当前目录下的文件file1拷贝到目录dira下
cp dira dirb           //将目录dira下全部内容拷贝为dirb
mv -i file2 dira       //当dira下有同名文件时会询问是否替换

2.7.4 rm命令

命令 rm
英语来源 rmove
作用 删除文件/目录
常用形式 rm 文件名 =》删除该文件
rm -r 目录名 =》删除该目录及其下全部内容
rm -i 文件名 =》删除前确认是否真的要删除
rm -ir 目录名 =》删除该目录及其下全部内容,并在删除前确认是否真的要删除

注意:使用rm命令前一定先确定该文件是否可以删除!防止演变成面向牢饭编程(不是

2.8 文件查看和编辑:cat和gedit命令

2.8.1 cat命令

命令 cat
英语来源 concatenate
作用 将文件内容显示在终端里
常用形式 cat 文件名 =》显示文件内容
cat 文件名 文件名 =》将两文件内容依次显示
cat -n 文件名 =》显示文件内容及行号

2.8.2 gedit命令

gedit 文件名 =》用gedit图形编辑器打开文件。

2.9 清除屏幕:clear和reset命令

clear命令:清除终端信息,不删除历史信息,向上滚动鼠标可找回历史信息。
reset命令:清除终端信息,并删除历史信息。

2.10 帮助信息:man、info和help命令

2.10.1 man命令

命令 man
英语来源 manual
作用 查看man手册
常用形式 man 命令名 =》查询命令的功能
man 数字1-9 命令名 =》在指定册数查询命令的功能

注意:
(1) man手册各册内容

序号 内容
1 可执行程序或shell命令
2 系统调用
3 库调用
4 特殊文件
5 文件格式和约定
6 游戏
7 杂项(包括宏和惯例)
8 系统管理命令(通常仅适用于root用户)
9 内核例程(非标准)

其中前三项比较重要。
(2) man手册功能介绍页的格式
在这里插入图片描述

2.10.2 info命令和help命令

info 命令名 =》查询命令功能,帮助内容较杂乱;
help 命令名 =》查询命令功能。
以上两个命令用的较少,主要使用man命令。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44839882/article/details/107091360

智能推荐

JWT(Json Web Token)实现无状态登录_无状态token登录-程序员宅基地

文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录

SDUT OJ逆置正整数-程序员宅基地

文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.

年终奖盲区_年终奖盲区表-程序员宅基地

文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表

matlab 提取struct结构体中某个字段所有变量的值_matlab读取struct类型数据中的值-程序员宅基地

文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值

Android fragment的用法_android reader fragment-程序员宅基地

文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment

FFT of waveIn audio signals-程序员宅基地

文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals

随便推点

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具_awesomemac-程序员宅基地

文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac

java前端技术---jquery基础详解_简介java中jquery技术-程序员宅基地

文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术

Ant Design Table换滚动条的样式_ant design ::-webkit-scrollbar-corner-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;amp;::-webkit-scrollbar { height: 5px; } &amp;amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner

javaWeb毕设分享 健身俱乐部会员管理系统【源码+论文】-程序员宅基地

文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!

论文开题报告怎么写?_开题报告研究难点-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点

原生JS 与 VUE获取父级、子级、兄弟节点的方法 及一些DOM对象的获取_获取子节点的路径 vue-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue