嵌入式养成计划-1-嵌入式泛谈&Linux部分命令操作

一、认识Linux下的C语言

	C语言:面向过程的语言,方便操作内存,更贴近硬件
	C语言操作系统的开发:
		三大操作系统:Windows,Linux,Unix(MacOS是Unix下的一个类别)
		数据库:MySQL,DB2
	C软件开发:
		办公软件:WPS
	硬件:单片机,ARM

二、操作系统

用于管理软件和硬件的东西,和编译器一样,属于软件硬件分界面层次的玩意。
嵌入式大多选择Linux的原因:

1. 开源免费
2. 生态好,稳定,可以多样选择搭配
3. 方便与硬件结合

三、虚拟机VMware

VMware:虚拟机,运行在计算机中的隔离区,可以在其中装入不同的操作系统,能够多台操作系统同时运行,也可以在其中运行一些危险性未知的东西。

四、Ubuntu

Linux操作系统下的一种内核版本
Ubuntu根目录下的各种文件
浅谈一下Ubuntu根目录下的文件

 - boot:启动文件,内核文件
 - dev:设备文件
 - etc:配置文件
 - home:家目录文件,存储普通用户及其文件
 - lib/lib64/lib32:编程语言库
 - media:存放自动挂载的硬件
 - mnt:存放手动挂载的硬件
 - opt:第三方软件
 - root:管理员目录文件
 - run:电脑启动时的运行文件
 - tmp:临时文件
 - usr:存储不经常变化的文件
 - var:存储经常变化的文件

相对路径: 指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系
绝对路径: 从根目录开始计算的路径


符号解析:

ubuntu@ubuntu:~$
 - 第一个ubuntu:用户名
 - 第二个ubuntu:主机名
 - @与::分隔符
 - ~:当前用户的家目录
 - $:普通用户(如果是 # ,则代表是 管理员用户)

4.1 一些与用户操作相关的shell命令

- 切换用户:su
	su 用户名
- 退出当前用户:exit	(退到最后会关闭命令行窗口)
- 修改密码:passwd	(root用户密码在未设置状态是随机的)
	passwd 用户名			(后面会提示想要将密码修改成啥样)
- 添加用户:adduser
	adduser 用户名
- 删除用户:userdel
	userdel 用户名
	sudo userdel 用户名   ---->该用户的家目录不会删除
    sudo userdel 用户名 -r ----> 删除该用户以及家目录
- 修改用户名:usermod
	usermod -l 新用户名 旧用户名

注意:这些操作大多需要管理员权限,可以在每条命令前加 sudo,然后输入密码就行了。要注意之间都是以空格间隔

文件详细信息

五、Ubuntu终端的相关操作

打开:
    1>点击图标打开
    2> ctrl alt t   打开一个新的终端
    3> ctrl shift t  在已有的终端下,打开同一个路径下新的终端
    4>看版本:
        ctrl shft e      在同一终端下,左右分屏打开同一路径的新的终端
        ctrl shft o      在同一终端下,上下分屏打开同一路径的新的终端
关闭:
    1> 点×
    2> ctrl d
    3> exit
快捷键:
    放大: ctrl shift +  +号必须是+的那个键
    缩小: ctrl -        
    复制:ctrl shift c /右键复制
    粘贴:ctrl shift v /右键粘贴

六、终端的一些命令

格式1:命令  参数 选项
格式2:命令  选项  参数 
1> 参数和选项可以省略不写
2> 命令、参数、选项之间必须使用空格隔开,否则不识别

6.1 查看命令 ls

作用:查看当前路径下的目录或文件

ls           查看当前路径下的所有文件   
ls dir        查看当前目录下的dir目录下的所有信息
ls 文件名     在终端回显文件名
ls -a        显示当前目录下的所有信息,包括隐藏文件
ls -l        显示当前目录下的所有详细信息
ls -a -l  ===>ls -la  显示当前目录下的所有详细信息,包括隐藏文件
ls -lh        显示当前目录下的所有详细信息,并以K,M,G单位显示

ls hello -lh     显示当前目录下的hello文件的所有详细信息,KMG显示
ls dir/dir1 -lh  显示当前目录下的dir下的dir1下的所有详细信息,KMG显示
-    rw-    r--    r-- 1 ubuntu ubuntu  0   七月 24 15:06     hello
|    |        |    |    |   |      |  文件大小  最后一次修改的时间 |
|    |        |    |    | 用户名 用户所属组                       |
|    |        |    |    硬链接个数                            文件名
|    |        |   其他用户对该文件的操作权限
|    |    用户所属组对该文件的权限   
|  用户对该文件权限
文件类型

1>文件类型bcd-lsp
    b:块设备文件
    c:字符文件
    d:普通目录
    -:普通文件
    l: 链接文件
    s:套接字文件
    p:管道文件
2> 文件权限
    用户u对该文件的操作权限:rw-    
    用户所属组g队该文件操作权限:r--    
    其他用户o对该文件的操作权限:r--
    所有权限:a
    
    权限:r:读  w:写  -:不具备权限  x:可执行权限
    八进制表示:r:4   w:2  x:1   -:0

6.2 修改权限的命令:chmod

    字母修改权限:+-=
    ubuntu@ubuntu:~$ chmod u+x hello 
    ubuntu@ubuntu:~$ ls -lh hello
    -rwxr--r-- 1 ubuntu ubuntu 0 七月 24 15:06 hello
    ubuntu@ubuntu:~$ chmod u-x hello 
    ubuntu@ubuntu:~$ ls -lh hello
    -rw-r--r-- 1 ubuntu ubuntu 0 七月 24 15:06 hello
    ubuntu@ubuntu:~$ chmod u-r-w+x hello 
    ubuntu@ubuntu:~$ ls -lh hello
    ---xr--r-- 1 ubuntu ubuntu 0 七月 24 15:06 hello
    ubuntu@ubuntu:~$ chmod u=rw- hello
    ubuntu@ubuntu:~$ ls -lh hello
    -rw-r--r-- 1 ubuntu ubuntu 0 七月 24 15:06 hello
    ubuntu@ubuntu:~$ chmod u=r hello
    ubuntu@ubuntu:~$ ls -lh hello
    -r--r--r-- 1 ubuntu ubuntu 0 七月 24 15:06 hello
    
   (下面四个可以用来练手)
    1.把hello文件的用户修改为可读可写可执行
    2.把hello文件的用户所属组修改为不可读可写不可执行
    3.把hello文件的其他用户权限修改为不可读不可写可执行
    4.把所有权限修改为可读不可写不可执行
修改权限八进制方式
    chmod 721 hello   ===>chmod 0721 hello
    chmod 5 hello     ===>chmod 005 hello

6.3 进入目录文件的命令 cd

cd 路径

cd dir/dir1				进入当前路径下的dir目录下的dir1目录
cd file 				无法进入文件
cd						进入用户默认的家目录
cd .					进入当前目录,视觉上没啥效果
cd ..					进入上一级目录
cd -					返回上一次进入的目录

6.4 创建普通文件命令 touch

touch file 				在当前目录下创建file普通文件
touch f1 f2 f3			在当前目录下连续创建三个普通文件
touch dir1/file f1		在当前目录下的dir1目录下创建普通文件file,在当前目录下创建普通文件f1

6.5 创建目录文件命令 mkdir

mkdir dir				在当前目录下创建目录文件dir
mkdir d1 d2 d3			在当前目录下连续创建三个目录文件,可以多个
mkdir dir1/dir2/dir3 -p	在当前文件夹下递归创建目录文件dir1、dir2、dir3,要注意加上参数 -p

6.6 删除空目录文件命令 rmdir

rmdir dir				删除当前目录下的dir空目录
rmdir d1 d2				连续删除当前目录下的两个目录,可以多个
rmdir dir1/dir2/dir3	删除当前目录下的dir1目录下的dir2目录下的dir3空目录
rmdir dir1/dir2 -p		递归删除当前目录下的dir1目录与dir1目录的dir2,先删的dir2,

6.7 删除文件命令 rm

rm f1 f2 				连续删除当前目录下的普通文件f1,f2
rm d1 d2 -r				删除当前目录下的目录d1,d2,空与非空无所谓,别忘了参数 -r,递归删除
rm f*					* 表示通配符,删除当前目录下的所有以 f 开头的文件

6.8 终端查看文件命令 cat

cat file				查看当前目录下的file文件的内容,也可以 跟文件的路径,但最终要落到文件上
cat file -n				带行号的查看

6.9 终端回显命令 echo

echo 字符串				在终端回显字符串
echo -n 字符串			在终端回显字符串,不再换行  ,因为有-n
echo -e "lalala\n"		在终端回显 lalala和一个换行,参数 -e 是为了让转义字符起效果

6.10 重定向命令 > , >>

> 单向重定向,删除文件内容
	echo 字符串 > 文件名
		如果文件不存在,则创建文件,并把字符串放到文件中
		如果文件存在,则用字符串替换到文件的内容
	echo 文件1 > 文件2
		文件1必须存在,若文件2不存在,则创建文件2,把文件1的内容复制到文件2,文件1不变
		文件1必须存在,若文件2也存在,则文件2的内容会替换成文件1的内容,文件1不变
>> 双向重定向,在文件后面追加内容
	echo 字符串 >> 文件名
		如果文件不存在,则创建文件,并把字符串放到文件中
		如果文件存在,则把字符串追加到文件之后
	echo 文件1 >> 文件2
		文件1必须存在,若文件2不存在,则创建文件2,把文件1的内容复制到文件2中,文件1中不变
		文件1必须存在,若文件2也存在,把文件1的内容追加到文件2内容之后

6.11 拷贝、复制命令 cp

 1. 普通文件 对 普通文件
	cp f1 f2
		f1必须存在,若f2不存在,把f1复制一份,重新命名为f2
    	f1必须存在,若f2存在,把f1复制一份,命名为f2,替换原来的f2
 2. 普通文件 对目录文件
	cp f1 dir
   		f1必须存在,若目录文件dir不存在,则会默认dir以普通文件的形式进行拷贝
   		f1必须存在,若目录文件dir存在 但 没有f1,把f1文件复制一份存到目录文件dir
   		f1必须存在,若目录文件dir存在 且 有f1,把f1文件拷贝一份存到dir,替换掉原f1
 3. 目录文件 对 目录文件
	cp dir dir1 -r
  		dir必须存在,若dir1不存在, 把dir复制一份,重命名为dir1
  		dir必须存在,若dir1存在 但 里面没有dir,把dir复制一份,存到dir1里
  		dir必须存在,若dir1存在 且 里面有dir,把dir复制一份,替换掉dir1里面的dir	

6.12 剪切命令 mv ,常用于重命名

 1. 普通文件 对 普通文件
	mv 普通文件1 普通文件2
	   普通文件1必须存在,若普通文件2不存在,将普通文件1重命名为普通文件2
	   普通文件1必须存在,若普通文件2存在,把普通文件1复制一份,重命名为普通文件2,替换原普通文件2(其实是替换)
 2. 普通文件 对 目录文件
	mv 普通文件1 目录文件
	   普通文件1必须存在, 若目录文件不存在,则会认为将普通文件1重命名为后面跟着的那个名字(不会认为后面跟着的是目录文件,参照普通文件 对 普通文件)
	   普通文件1必须存在, 若目录文件存在 但 里面没有普通文件1,把普通文件1移动到目录文件中
	   普通文件1必须存在, 若目录文件存在 且 存在普通文件1,把普通文件1复制一份到目录里面,替换掉目录文件里面的原文件1
 3. 目录文件 对 目录文件
	mv 目录1  目录2
	   目录1必须存在,若目录2不存在,则将目录1 重命名 为目录2
	   目录1必须存在,若目录2里面 有 目录1且目录1为空,则用前面的目录1 替换 目录2中的目录1
	   目录1必须存在,若目录2存在里面存在目录1不为空,将无法操作

6.13 显示当前绝对路径命令 pwd

  • 能够显示当前的绝对路径,不需要任何参数,也不用跟啥东西,直接输入后回车就行了。

6.14 查看当前用户的命令 whoami

  • 同上。
  • 谁是我,我是谁……是时候把身份亮出来了

6.15 清屏命令 clear

  • clear 命令可以清屏,Ctrl+l 也可以清屏
  • clear 清屏后会清除一部分之前输入的命令(从最前面开始清除,按先后顺序的)
  • Ctrl+l 只是将当前需要输入的那一行放到了页面的最上面,不会清除之前的命令

6.16 自动补齐操作 tab

tab 键一般位于键盘的最左侧,从上往下数第三个键(奇葩的键盘没用过,我用的都是正常的键盘)。
  • 当输入到一半忘了后面还有啥内容了,可以用 tab 键提示一下。
  • 如果已输入的那部分有多个重复的,需要按两下,会都显示出来让你选择
  • 如果已输入的那部分只有唯一的一份,那么可以直接补齐。
  • 这个功能只适用于补齐里面已有的,不适用于凭空创造,别瞎胡闹。

6.17 命令帮着手册 man

  • 如果有个命令不知道咋用,或者有个函数不知道咋用,可以使用这个玩意。
	man 想要查询的命令或函数
  • 一般这个帮助手册都是英文的,这玩意可以调
在保证虚拟机能够联网下载东西的前提下依次输入这两行:
	ubuntu@ubuntu:~$  sudo apt-get install manpages-zh
	ubuntu@ubuntu:~$  echo " alias cman='man -M /usr//share/man/zh_CN' ">>.bash_profilesource .bash_profile
  • 注意,上面的那两行,$ 符号和前面的内容不要复制,别成了小憨憨。
  • 有问题,找男人(man),你就说对不对吧

day01思维导图

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhk___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值