嵌入式培训-Linux系统及C编程高级-DAY3

Linux Shell

Shell概述

随着各式Linux系统的图形化程度的不断提高,用户在桌面环境下,通过点击、拖拽等操作就可以完成大部分的工作。 然而,许多Ubuntu Linux功能使用shell命令来实现,要比使用图形界面交互,完成的更快、更直接。

英文单词shell可直译为“贝壳”。“贝壳”是动物作为外在保护的一种工具。 可以这样认为,Linux中的shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互

 Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。

 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

 Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。

 Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

执行一行,翻译一行,执行一行,翻译一行。如果后面有错,不影响前面的执行。

Shell分类

一般默认使用的都是bash Shell。ubantu默认提供的是bash。

查看当前系统的Shell

 查看当前系统有哪些shell     cat /etc/shells

 查看当前是什么shell      echo $SHELL 

$符号是查看一个变量的值

 立即关机

立即重新启动

定时关机

定时重启

这些命令以后控制开发板会用到。

权限相关

用户

用户,又称使用者,是指使用电脑或网络服务的人,通常拥有一个用户账号,并以用户名识别。用户有时也泛指没有充分技术经验的人。

Linux下分为:  

超级用户(根目录、安装软件等)  

普通用户

su - run a command with substitute user and group ID

-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者

- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root

--help 显示说明文件

--version 显示版本资讯

设置用户密码

问题现象:

(输入完密码,不显示。不用管,直接输完回车。如果报这个错了,是因为用户没有设置密码,用passwd命令设置个密码,然后再进就行了)

passwd - change user password passwd    修改自己的密码

passwd username  修改指定用户的密码

登录完用户可以用exit命令退出登录,也可以ctrt + D快捷键退出

不加-l只是把用户切换到了root,但是环境变量没变。加了-l,用户和环境变量都切换。

只打su,或者su -,是默认切换到根目录。切换到别的用户要加-l

修改文件权限

-rwxrwxr-x 1 linux linux   17456 ноя  5 20:38 client

前三位是当前user权限、中间三位是同组用户权限、后三位是other用户权限。这里可以看到other用户没有写的权限

 字母法:chmod  (u g o a)   (+ – =)   (r w x)   (文件名)  

例:当前用户撤销写的权限chmod u-w 文件名

     同组用户和 其他用户增加可执行权限chmod go+x 文件名

数字法:chmod + 数字组合 + 文件名

基本命令回顾

pwd

ls

cd

mkdir

rmdir

cp

mv

touch

基本命令-man

man - an interface to the system reference manuals 帮助信息:

NAME:命令的名称

SYNOPSIS:命令的语法格式

DESCRIPTION:命令的一般描述以及用途

OPTIONS:描述命令所有的参数或选项

SEE ALSO:列出联机帮助页中与该命令直接相关或功能相近的其他命令

BUGS:解释命令或其输出中存在的任何已知的问题或缺陷

EXAMPLES:普通的用法示例

AUTHORS:联机帮助页以及命令的作者

 1   Executable programs or shell commands      

 2   System calls (functions provided by the kernel)      

 3   Library calls (functions within program libraries)        

4   Special files (usually found in /dev)        

5   File formats and conventions, e.g. /etc/passwd      

 6   Games      

 7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)      

 8   System administration commands (usually only for root)      

 9   Kernel routines [Non standard]

一般用到前三个。printf是C库里的函数,所以要man 3 printf

基本命令-date

date - print or set the system date and time

date +%T

date +%Y/%m/%d

date +%H:%M

date +"当前时间为:%Y/%m/%d %H:%M:%S"

date +"三个月之后:%Y/%m/%d %H:%M:%S" -d "+3 month"

date +"三天前:%Y/%m/%d  %H:%M:%S" -d "-3 day"

date -s "20300111 19:43:44"

基本命令-clear

clear - clear the terminal screen

ctrl + l(字母L的小写)

基本命令-df

df - report file system disk space usage 常用参数:   

 -a :列出所有文件系统    

 -k :列出磁盘的分配情况(KB)    

 -h :同-k, 但大小以G、M,K单位显示      

-l :仅列出本地文件系统

基本命令-du

du - estimate file space usage

常用参数:   

 -a :列出所有的对应目录及子目录所占大小      

-h :列出磁盘的使用情况(KB)      

-s :列出总的占用空间(KB)

echo输出(往终端上显示文本)

 echo - display a line of text      

 Echo the STRING(s) to standard output.        

-n     do not output the trailing newline        

-e     enable interpretation of backslash escapes      

 -E     disable interpretation of backslash escapes (default)

定义a=5,$为取值符号

echo $a输出5,echo '$a' 单引号原样输出$a,echo "$a"双引号输出5,

输入输出重定向

什么是重定向

输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。

默认的输入输出位置是哪里 linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。 标准输入:(stdin,文件描述符为0):默认从键盘输入 标准输出:(stdout,文件描述符为1):默认输出到屏幕。 标准出错:(stderr,文件描述符为2):默认输出到屏幕。

为什么要使用重定向

1.当屏幕输出的信息很重要时,而且希望保存重要的信息时

2.后台执行中的程序,不希望它干扰屏幕正常的输出结果时

3.系统的例行命令,例如定时任务的执行结果,希望他可以存下来

4.一些执行命令,我们已经知道他可能出现错误信息,想把它直接丢掉时

5.执行一个命令,可能报错和正确的输出并序,类似错误日志与标准正确日志需要分别输出至不同的文件。

通配符

通配符是一种特殊语句,通配符是用来代替字符的

使用场景:比如搜索文件,只知道部分文件名,缺失部分可以用通配符代替。或者替换字符串。

图上ls,把符合的文件列出来

管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。

命令1 | 命令2 | 命令3.。。。

wc命令,统计文件。加上-l 统计有多少行。-w统计有多少个单词。-c有多少个字符。

管子前面的命令一定要有结果。不然给不到后面的命令。

历史查询

history

或者!+ 之前敲过命令的前几个字符

自动补齐

命令置换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值