Linux基本指令介绍,学习笔记

linux与windows中隐藏文件的区别:
linux的隐藏文件以 .开头    windows 用属性来隐藏文件

linux下建议安装的小企鹅输入法:fcitx ,软件开发者Yuking
安装命令:sudo apt-get install fcitx-pinyin

绝对路径与相对路径:
win的绝对路径,从硬盘符开始,如C:\windows\system32   要切换不同盘的根目录,直接输入 比如E:就会进入E盘根目录
linux的绝对路径,从“/”开始 ,如/root/home          
相对路径是从当前文件开始的,要从当前目录比如root,进入次级目录home,则键入命令 cd home  
基本符号释义:
.       : 表示当前目录
..       :上一层目录,当前目录的父目录,比如book文件夹中的can文件夹,就是父子关系
-       : 前一个目录,从其他目录通过cd命令直接过来,不一定父子关系 ,比如cd - 回到前一个目录
~       : 当前用户的宿主目录,类似windows 的我的文档。是操作系统为当前用户设计的存放文件工作的默认目录。注:普通linux用户的宿主目录在/home/username/后面。对root用户来说,在/root,可以通过cd ~回到宿主目录
/       : linux根目录,比如回到系统跟目录【cd / 】
$      : 普通用户的命令行提示符
#      : root用户的命令行提示符
*       : 万能匹配符,比如rm ab*,就是删除当前文件夹中ab开头的文件,rm *就是删除当前文件夹中的全部内容

临时切换到root用户命令 sudo su 然后输入用户密码
退出root用户命令 exit ,如果用cheese连接的相机后台运行的话,可能无法退出,关闭cheese软件后可正常退出

命令格式介绍中的中括号【】和尖括号<>区别:

[中括号]:表示命令中的可选项,根据需求可以选或者不选。
[尖括号]:表示命令中的必选项。

一、什么是echo命令?
在Linux中,echo是一个非常常用的命令,用来将一段文本输出到终端或者重定向到文件中。它的基本语法如下:
echo [option(s)] [string(s)]
其中,option(s)是可选的命令行选项,string(s)则是要输出的字符串。

二、输出字符串
最基本的使用方法就是直接输出一段字符串,如下所示:
echo "Hello World"
执行该命令后,终端将会输出字符串"Hello World"。

如果要输出多个字符串,可以用空格隔开,如下所示:
echo "Hello" "World"
执行该命令后,终端将会输出"Hello World"。

三、输出变量
除了输出字符串,echo还可以输出变量的值,如下所示:
name="John"
echo "My name is $name"
执行该命令后,终端将会输出"My name is John"。
※在变量名前加上$符号,就可以引用变量的值了。

四、重定向到文件
我们还可以将echo输出的内容重定向到文件中,如下所示:
echo "Hello World" > hello.txt
执行该命令后,"Hello World"这个字符串就会被写入到当前目录下的hello.txt文件中。如果文件不存在,echo会自动创建文件;如果文件已经存在,echo会覆盖原有内容。

※如果我们希望将内容追加到文件末尾,而不是覆盖原有内容,可以使用双大于号(>>)操作符,如下所示:
echo "Hello World" >> hello.txt
执行该命令后,"Hello World"这个字符串就会被追加到hello.txt文件的末尾。

五、输出转义字符
有时候我们希望在输出的文本中包含一些特殊字符,比如换行符、制表符等。这个时候,我们就需要使用转义字符了。常用的转义字符如下表所示:
\n 换行
\t 制表符
\\ 反斜杠
\" 双引号
\' 单引号
使用转义字符的方法很简单,只需要在需要转义的字符前面加上反斜杠即可,如下所示:
echo "Hello\nWorld"
执行该命令后,终端将会输出:
Hello
World
其中,\n被转义为了一个换行符。

六、使用命令替换
有时候我们需要将命令的输出作为字符串输出,这时候就需要使用命令替换了。命令替换的语法如下:
$(command)
其中,command是要执行的命令。
比如,我们可以将date命令的输出作为字符串输出:
echo "Today is $(date)"
执行该命令后,终端将会输出:
Today is 2024年 10月 25日 星期五 16:16:57 CST
※其中,$(date)被替换为了date命令的输出结果。 

七、使用命令行选项
echo命令还有一些常用的命令行选项,可以用来控制输出的格式。这些选项如下表所示:
-n不输出末尾的换行符
-e启用转义字符
-E禁用转义字符(默认选项)
 使用这些选项的方法很简单,只需要将它们放在命令行参数的前面,如下所示:
echo -n "Hello World"
执行该命令后,终端将会输出"Hello World",但是末尾不会有换行符。

八、总结
本文介绍了echo命令在Linux中的基本使用方法,包括输出字符串、输出变量、重定向到文件、输出转义字符、使用命令替换和命令行选项等内容。掌握了这些基本用法,对于Linux系统管理和脚本编写都非常有用。

 九、示例sh
#!/bin/bash
echo "执行时间为:`date`"
echo $(date "+%Y-%m-%d %H:%M:%S")

*********************************************************************************************

Linux “$” 的所有相关用法

一、默认命令提示符权限标志位

    非root用户,例如:[user1@localhost myTestDir]$
    如果是root用户登录,则为#,例如:[root@localhost ~]#
    注([ ] 中的部分):@前的user1、root为登录用户名,@后的localhost为主机名,最后的myTestDir、~等为当前所在目录的文件名
    具体可以查看系统内置的环境变量PS1(echo $PS1),系统默认情况下结果为[\u@\h \W]\$
\u     表示当前用户名
\H     表示完整的主机名(\h 表示短主机名,默认)
\w     表示完整路径(\W 表示短路径,默认)
\$     表示提示符(普通用户显示为字符$, root 用户显示为字符#)
除此之外,其余的 [ 、@ 、] 和空格字符按原样显示

二、使用已声明变量

    例如:a=1
                echo $a
    注:要想将一个变量声明为指定类型,其语法为:declare(或typeset)  [-aixr]  变量名

    参数:
-a  :声明为数组类型
-i  :声明为整型
-x  :声明为环境变量(功能与 export 相同)
-r  :声明为只读类型,此变量声明后不能更改内容,也不能撤销

三、Shell脚本

$$   当前shell脚本运行时的pid(进程号)
$*    所有向脚本传递的参数(字符串形式显示)
$@  所有向脚本传递的参数列表(List形式)
$n    向脚本传递的第n个参数
$#    向脚本传递的参数个数
$?    最后一条命令的退出状态,0表示没有错误,其他表示有错误

示例脚本(testfun.sh):

#!/bin/bash
funecho()
{
        echo "This is funecho()"
        echo "pid=$$"
        echo "parastring=$*"
        echo "paralist=$@"
        echo "para0=$0"
        echo "para1=$1"
        echo "para2=$2"
        echo "para3=$3"
        echo "para4=$4"
        echo "para5=$5"
        echo "before_ret:para_num=$#"
        echo "before_ret:return_value=$?"
        return "$#"
}
echo "before_fun:para_num=$#"
echo "before_fun:return_value=$?"
echo "fun begin--------"
funecho p1 p2 p3 p4
echo "after_ret:para_num=$#"
echo "after_ret:return_value=$?"
echo "fun end--------"
echo "after_fun:para_num=$#"
echo "after_fun:return_value=$?"

运行:./testfun.sh

before_fun:para_num=0
before_fun:return_value=0
fun begin--------
This is funecho()
pid=1760
parastring=p1 p2 p3 p4
paralist=p1 p2 p3 p4
para0=./testfun.sh
para1=p1
para2=p2
para3=p3
para4=p4
para5=
before_ret:para_num=4
before_ret:return_value=0
after_ret:para_num=0
after_ret:return_value=0
fun end--------
after_fun:para_num=0
after_fun:return_value=0

$ 是 变量符,在Linux系统里面表示获取一个变量的值。比如 a=finmnk 使用 $a 就表示变量a,其值为 finmnk%。
再举例如:
#!/bin/bash --------指定编译shell环境为bash
STR="Hello World!"----设置STR的变量值为Hello World!
echo $STR ------ 用echo命令读取STR变量的数值。

这里如果不加$, 输出结果是STR,加上$,输出结果就是Hello World!。

$# 是传给脚本的参数个数

$0是脚本本身的名字¥零,不是字母O

$1是传递给该shell脚本的第一个参数$3是第三个参数

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$@ 是传给脚本的所有参数,与$*同;"$@"有引号的时,是多个分开的指,而"$*"是一个值

$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

$_ 是最后执行的命令

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

命令替换
在bash中,$( )与`反引号`都是用来作命令替换的。 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。

exp 1

[root@localhost ~]# echo today is $(date "+%Y-%m-%d")
today is 2017-11-07
[root@localhost ~]# echo today is `date "+%Y-%m-%d"`
today is 2017-11-07
 
$( )与`` 在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:

``很容易与''搞混乱,尤其对初学者来说,而$( )比较直观,命令的边界明白。

最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。

exp 2

[root@localhost ~]#  echo Linux `echo Shell `echo today is `date "+%Y-%m-%d"```
Linux Shellecho today is 2017-11-07     #过多使用``会有问题
[root@localhost ~]# echo Linux `echo Shell $(echo today is $(date "+%Y-%m-%d"))`
Linux Shell today is 2017-11-07    ``和$()混合使用
[root@localhost ~]# echo Linux $(echo Shell $(echo today is $(date "+%Y-%m-%d")))
Linux Shell today is 2017-11-07    #多个$()同时使用也不会有问题
 
${ }变量替换
一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围

exp 1

[root@localhost ~]# A=Linux
[root@localhost ~]# echo $AB    #表示变量AB

[root@localhost ~]# echo ${A}B    #表示变量A后连接着B
LinuxB
 
取路径、文件名、后缀

先赋值一个变量为一个路径,如下:
file=/dir1/dir2/dir3/my.file.txt

命令    解释    结果
${file#*/}    拿掉第一条 / 及其左边的字符串    dir1/dir2/dir3/my.file.txt
[root@localhost ~]# echo ${file#*/}
dir1/dir2/dir3/my.file.txt

${file##*/}    拿掉最后一条 / 及其左边的字符串    my.file.txt
[root@localhost ~]# echo ${file##*/}
my.file.txt

${file#*.}    拿掉第一个 . 及其左边的字符串    file.txt
[root@localhost ~]# echo ${file#*.}
file.txt

${file##*.}    拿掉最后一个 . 及其左边的字符串    txt
[root@localhost ~]# echo ${file##*.}
txt

${file%/*}    拿掉最后一条 / 及其右边的字符串    /dir1/dir2/dir3
[root@localhost ~]# echo ${file%/*}
/dir1/dir2/dir3

${file%%/*}    拿掉第一条 / 及其右边的字符串    (空值)
[root@localhost ~]# echo ${file%%/*}
(空值)

${file%.*}    拿掉最后一个 . 及其右边的字符串    /dir1/dir2/dir3/my.file
[root@localhost ~]# echo ${file%.*}
/dir1/dir2/dir3/my.file

${file%%.*}    拿掉第一个 . 及其右边的字符串    /dir1/dir2/dir3/my
[root@localhost ~]# echo ${file%%.*}
/dir1/dir2/dir3/my
记忆方法如下:

# 是去掉左边(在键盘上 # 在 $ 之左边)
% 是去掉右边(在键盘上 % 在 $ 之右边)
单一符号是最小匹配;两个符号是最大匹配
*是用来匹配不要的字符,也就是想要去掉的那部分
还有指定字符分隔号,与*配合,决定取哪部分

取子串及替换

命令                                    解释                              结果
${file:0:5}               提取最左边的 5 个字节                /dir1
${file:5:5}               提取第 5 个字节右边的连续 5 个字节         /dir2
${file/dir/path}            将第一个 dir 提换为 path              /path1/dir2/dir3/my.file.txt
${file//dir/path}        将全部 dir 提换为 path               /path1/path2/path3/my.file.txt
${#file}              获取变量长度                     27
 
根据状态为变量赋值

命令    解释    备注
${file-my.file.txt}    若 $file 没设定,则使用 my.file.txt 作传回值    空值及非空值不作处理
${file:-my.file.txt}    若 $file 没有设定或为空值,则使用 my.file.txt 作传回值    非空值时不作处理
${file+my.file.txt}    若$file 设为空值或非空值,均使用my.file.txt作传回值    没设定时不作处理
${file:+my.file.txt}    若 $file 为非空值,则使用 my.file.txt 作传回值    没设定及空值不作处理
${file=txt}    若 $file 没设定,则回传 txt ,并将 $file 赋值为 txt    空值及非空值不作处理
${file:=txt}    若 $file 没设定或空值,则回传 txt ,将 $file 赋值为txt    非空值时不作处理
${file?my.file.txt}    若 $file 没设定,则将 my.file.txt 输出至 STDERR    空值及非空值不作处理
${file:?my.file.txt}    若 $file没设定或空值,则将my.file.txt输出至STDERR    非空值时不作处理
tips:

以上的理解在于, 你一定要分清楚 unset 与 null 及 non-null 这三种赋值状态. 一般而言, : 与 null 有关, 若不带 : 的话, null 不受影响, 若带 : 则连 null 也受影响.

数组
A="a b c def"   # 定义字符串
A=(a b c def)   # 定义字符数组
 
命令    解释    结果
${A[@]}    返回数组全部元素    a b c def
${A[*]}    同上    a b c def
${A[0]}    返回数组第一个元素    a
${#A[@]}    返回数组元素总个数    4
${#A[*]}    同上    4
${#A[3]}    返回第四个元素的长度,即def的长度    3
A[3]=xzy    则是将第四个组数重新定义为 xyz     
$(( ))与整数运算
bash中整数运算符号

符号    功能
+ - * /    分别为加、减、乘、除
%    余数运算
& | ^ !    分别为“AND、OR、XOR、NOT”
在 $(( )) 中的变量名称,可于其前面加 $ 符号来替换,也可以不用。

[root@localhost ~]# echo $((2*3))
6
[root@localhost ~]# a=5;b=7;c=2
[root@localhost ~]# echo $((a+b*c))
19
[root@localhost ~]# echo $(($a+$b*$c))
19
------------------------------------
进制转换
$(( ))可以将其他进制转成十进制数显示出来。用法如下: echo $((N#xx)) 其中,N为进制,xx为该进制下某个数值,命令执行后可以得到该进制数转成十进制后的值。

[root@localhost ~]# echo $((2#110))
6
[root@localhost ~]# echo $((16#2a))
42
[root@localhost ~]# echo $((8#11))
9
 
(())重定义变量值------------------

[root@localhost ~]# a=5;b=7
[root@localhost ~]# ((a++))
[root@localhost ~]# echo $a
6
[root@localhost ~]# ((a--));echo $a
5
[root@localhost ~]# ((a<b));echo $?
0
[root@localhost ~]# ((a>b));echo $?
1

*********************************************************************************************
cd      :【change directory】更改、切换目录 (文件夹)
cd ..  :返回上一层,cd ../..返回上上层,cd ../../..返回上上上层....命令为:cd ../abc/  意思为从当 前目录返回上一层目录并进入到上一层目录里的abc文件夹
ls      :【list,列表 】列出/查看目录中的文件
ls -a  :【a=all】显示所有文件,包括隐藏文件
ls -l   :显示详细信息  ,或者用两个l,即命令行输入“ll”显示详细信息
      ls -l 命令查看的内容信息解析,显示的文件列表头部有10个字符=1+3+3+3,含义如下:
      【第1个字符为文件类型,后面9个为文件权限】
     文件类型含义如下:
      d ——directory,表示文件夹
      l ——link,表示符号连接文件(即快捷方式),后面会用->指示出它所指向的文件
      -  ——表示普通文件,其中硬链接命令创建的就是普通文件。
      s  ——表示socket文件
      p  ——pipe表示管道文件,进程间通信用
     文件权限解析如下:
      前3个字符,表示此文件的属主,对文件的权限。属主就是拥有者
      中3个字符,表示此文件的属主所在的组,对文件的权限
      后3个字符,表示其他用户,对文件的权限
注:rwx与权限含义,r,read可读 ,w,write可写,x,excute可执行,-,无此权限

如果可执行文件hello.exe用./hello.exe无法执行,可先用ls -l命令查看该文件是否有x即可执行权限,如果没有,可用 chmod 777 hello  命令,增加当前目录中hello可执行文件的执行权限

which vi查看系统中的编辑工具vi的路径 也可以用which vim等查看其他工具位置 
pwd   :【print working directory】打印当前工作目录(文件夹)

man   :查询man手册获得帮助信息,如man ls,显示ls支持的命令,其他应用方式如下
man 1 ls ,1代表查询的是linux命令
man 2 ls ,2代表查询的是linux的api
man 3 ls ,3代表c库函数

mkdir :  【make directory】创建空文件夹,级联文件夹  如 mkdir work  创建名为work的文件夹
mkdir -p abc/def :创建级联文件夹,创建了abc文件夹,同时abc中又创建了def文件夹
touch :创建空文件,如 touch 123.txt  在当前目录中创建名为123的文本文档,其他格式的文件如.c文件等雷同

mv :【move】在目录间移动文件,修改文件名/重命名
        格式为 mv 源文件pathname  目的文件pathname   【注:pathname 就是全路径】如 mv abc/work.txt ./work.txt   就是把abc中的work文件移动到当前目录中,.是当前文件夹。再如,mv  abc.txt  aaa.txt 这种情况当前文件路径没变,把abc移动到aaa,就意味着名字被改成aaa了

cat : 【】直接在命令行下显示文件内容,适合文件内容比较少的文件,内容多用vi打开
          如 cat hello.txt  查看hello这个文本文档内容

vi编辑器的使用【查看/编辑文档】,vi和vim的联系,linux的编辑器有vi,vim,gedit,建议用vim
vi,没有鼠标的年代创造的,全键盘流操作,如vi work.txt 打开文档,然后先按a,i或o进入普通编辑模式,完成编辑后按esc  退出编辑,再按:之后,输入wq保存退出 
vim,是vi的升级版,适配鼠标时代,推荐用vim,【若没有,则用 sudo apt-get install vim 安装】

vi的两种工作模式:命令模式,输入模式
刚打开文件默认处于命令模式,需要按a或者 i 键转入输入模式,按esc退出输入,进入命令模
在打开的文档内进行操作:
查找内容
:命令模式下输入/内容,查找内容,比如/world ,查找world
快速切换行:命令模式下“:数字”,比如,:100  回车后,光标移动到100行首
显示行号:命令模式下 :set nu  
不显示行号:命令模式下:set nonu  
设置永久显示行号:需要修改vi的配置文件,目录在~/.vimrc  ,首先用命令 vi ~/.vimrc  打开这个文件,输入 set nu 保存退出即可
整行删除,打开一个文本文档,需要删除某一行内容,进入命令行:3,选择第三行,然后输入dd,删除此行,用鼠标,键盘选择要删除的行也行。
删除连续多行,选中要选择n行中的第一行,输入ndd,比如删除3行,输入3dd,从上往下删除
复制内容:命令模式下,nyy  比如3yy,就是复制3行,从上往下复制,光标应该在复制内容的第一行
粘贴内容:命令模式下p。是往当前光标所在行的下一行粘贴。
注:如果复制程序时有行号会很麻烦,此时需要关闭行号显示 :set nonu 先关闭再复制
如果要保存编辑后的文档,需要按【esc键】退出输入模式,即进入命令模式,然后在命令模式下先输入:然后输入wq即可保存后退出,【注:w保存,q退出】
wq最常用
:w 只保存,不退出
:q 只退出,不保存
:q!强制退出
:wq!保存并强制退出
编辑过程中需要临时退出,按 Ctrl+Z
需要再次对刚才退出的文件进行编辑,在终端中输入命令 FG
退出当前执行的程式  Ctrl+C

cp:【copy】复制粘贴文件或文件夹,跟mv接近  
        格式:cp 源文件pathname  目标文件pathname   【注:pathname 就是全路径】
       cp -r 复制文件夹
       cp -f 强制复制,就是会覆盖掉同名文件,要小心。
       例,cp abc.txt ../123.c,将abc内容复制到上一级目录的123.c文件中
      一般应用时,cp -f 复制文件   cp -rf 复制文件夹  为啥一般应用是都加f,因为如果已经有了重名文件,复制动作就停止了,而且没有提示,也就是没有执行复制动作。所以用强制复制,就是有重名的也复制并强制覆盖,但强制复制有风险,可能会覆盖掉重名文件的重要信息,要注意。

rm  :【remove,去除,删除】删除文件,文件夹   
      格式 rm 文件pathname  如果被删的文件不存在,则会提示警告信息
rm -r 文件夹pathname  删除目录及其内容,但系统会询问用户是否确认删除
rm -f 文件/夹pathname 强制删除就是当被删除文件不存在时,不提示错误,也没有错误返回值,不影响运行。
rm *   删除当前文件夹全部内容
rm -r abc/   删除文件夹abc中的内容

rmdir:【remove directory】只能删除空文件夹,有内容则删不了 有内容的文件夹可以用 rm -rf 文件夹pathname 删除
注:-r  即recursive递归,表示删除全部;-f 即force强制,表示强制删除

ln :【link】连接文件,类似windows的快捷方式,创建一个图标指向某个目录的文件或文件夹
linux的连接文件分为【软连接】和【硬链接】两种。
软连接:用-s  即symble 符号,也就是符号连接,格式为 ln -s  源文件 符号连接文件
例,ln -s  hello.c  test.c  其中,test.c就是hello.c的符号连接,删除test.c 不影响hello.c文件
硬链接无 -s     格式为  ln  源文件 符号连接文件
区别是:软连接有主从关系,源文件为主,连接文件为从,删除主文件,从文件就成了一个指向空的图标,没有意义了。但硬链接创建的从文件,是平等关系,删除主,从就会变为主。硬链接无论创建多少个从文件,其实硬盘上只有一个源文件,不同名字的重文件都连接在上面,相当于源文件具备了被删除n次的能力。无论删除哪个,只要还有源文件或者从文件没删除,就不会真正删除掉该文件。类似复制命令,但实际不同,复制命令,是在硬盘创建了2份文件,而硬链接不同,只有一个本体,其他都是虚拟分身。以上仅为概略说明,实际并非如此,而是跟引用计数有关。

apt-get,ubuntu中用来在线安装卸载软件的命令 【Advanced Package Tool (APT)】
类似360软件中心,服务器创建了一个列表,筛选出了适配当前系统可以安装的程式,让安装简单化。避免了因为linux版本内核不同造成的各种安装异常问题。
安装:apt-get install qq,安装前建议先更新apt ,命令是:sudo apt update 注意:前提是在线才能操作,也就是联网才行。
卸载:apt-get remove qq
安装虚拟机中的ubuntu扩容软件,带界面  sudo apt install gparted  

linux用户
普通用户:多个,类似windows的guest,从普通用户切换到特权,su root 需要密码
特权用户:一个,类似windows的Administrator,特权切普通,su 普通用户名

用系统编译工具gcc编译hello.c文件   gcc  hello.c
用gcc编译后的文件进行自定义名字   gcc [options] [filenames] -o output_filename
-o之后是加我们自己给新生成文件起的名字
比如用gcc编译一个hello.c文件,编译后的文件名字为 test,则命令是 gcc hello.c -o test

用安装在其他文件夹下的第三方编译工具编译.c文件   sudo /root/....../arm-himix200-linux-gcc  hello.c 
或者直接用arm-himix200-linux-gcc hello.c   如果记不住这么长的编译器名字,可以先输入arm然后按Tab键,会提示arm开头的所有文件或路径名

查看编译过程中,不同阶段的编译结果
-E 预处理后停止,比如用命令 gcc -E hello.c -o hiall.i  此命令作用:用gcc命令 执行hello.c文件时,在预处理后,停下来,并将处理结果存放到“*.i”文件里,-E就是预处理后停下来,E要大写,预处理后的文件名后缀为i    -o 后面是新生成的文件的文件名
-S 编译结束后停止 文件名后缀为.s ,如果不用-o 指定新生成的文件名,就用源文件名.s
-c 汇编结束后停止 

./ 运行可执行文件命令  比如运行当前目录中的hello.run文件,命令为  ./hello.run

如果提示没有执行权限,可以用ls -l查看该文件的权限,如果没有执行权限,需要提升权限

chmod 提升权限命令 chmod a+x hello.run 
其中,a代表所有用户组,包括root,文件拥有者用户组,其他用户组。
+x 执行权限 +r阅读权限 +w写入权限

提升后,再用ls -l命令查看是否提升成功

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

海思3516 linux系统下,
查看u盘分区
ls /dev/sd*   可以查看dev文件夹里有sda,sda1等分区,sda1就是u盘扇区

挂载u盘
mount -t vfat /dev/sda1 /mnt/usbdisk/    
vfat是u盘格式fat32
/dev/sda1是u盘扇区,注意sda1后面有空格隔开,解析文件系统上的设备
/mnt/usbdisk/是u盘挂载点,

【dev为device设备,u盘挂载在dev文件夹的sda1里的mnt里的usbdisk中,打开usbdisk就是u盘内容】

**********************************************************************************************

1. 格式化规定符
Turbo C2.0提供的格式化规定符如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━
符号 作用
——————————————————————————
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
━━━━━━━━━━━━━━━━━━━━━━━━━━
说明:
(1). 可以在"%"和字母之间插进数字表示最大场宽。
例如: %3d 表示输出3位整型数, 不够3位右对齐。
%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,
小数点占一位, 不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。
但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;
若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。
另外, 若想在输出值前加一些0, 就应在场宽项前加个0。
例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度
为4位。
如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,
小数点前的数字代表最小宽度。
例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则
第9个字符以后的内容将被删除。
(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。
例如: %ld 表示输出long整数
%lf 表示输出double浮点数
(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可
说明输出为左对齐, 否则为右对齐。
例如: %-7d 表示输出7位整数左对齐
%-10s 表示输出10个字符左对齐

X 表示以十六进制形式输出
02 表示不足两位,前面补0输出;
举例:
printf("%02X", 0x123);  //打印出:123
printf("%02X", 0x1); //打印出:01

% d, % D, % i为32位整型数(int) ,% li 长整型,%ld长整型输出,
% lld 64位长整数(long long)
% llu 无符号64位长整数
% Lf 64位双数
% %: 为'%'字符;
% u, % U: 为32位无符号整型数(unsigned int);
% hi: 为有符号的16位整型数(short);
% hu: 为无符号的16位整型数(unsigned shord);
% qi: 为有符号的64位整型数(long long);
% qu: 为无符号的64位整型数(unsigned long long);
% x: 为32位的无符号整型数(unsigned int), 打印使用数字0 - 9的十六进制, 小写a - f;
% X: 为32位的无符号整型数(unsigned int), 打印使用数字0 - 9的十六进制, 大写A - F;
% qx: 为无符号64位整数(unsigned long long), 打印使用数字0 - 9的十六进制, 小写a - f;
% qX: 为无符号64位整数(unsigned long long), 打印使用数字0 - 9的十六进制, 大写A - F;
% 02x: 表示不足两位,前面补0输出;如果超过两位,则实际输出
% .2x:效果和 % 02x相同 ( % 02x = % .2x)
% 2x:表示数据不足两位时,前面补空格; 如果超过两位,则实际输出
% -2x:表示数据不足两位时,后面补空格; 如果超过两位,则实际输出
 
% o, % O: 为32位的无符号整数(unsigned int), 打印八进制数;
% f: 为64位的浮点数 默认情况下保留小数点6位(double);
% .100f用来输出实数,保留小数点100位。
% e: 为64位的浮点数(double), 打印使用小写字母e, 科学计数法介绍了指数的增大而减小;
% E: 为64位的浮点数(double), 打印科学符号使用一个大写E介绍指数的增大而减小;
% g: 为64位的浮点数(double), 用% e的方式打印指数, 如果指数小于4或者大于等于精度, 那么% f的风格就会有不同体现;
% G: 为64位的浮点数(double), 用% E的方式打印指数, 如果指数小于4或者大于等于精度, 那么% f的风格就会有不同体现;
% L: 在明确规定的长度下, 进行修正, 下面的一批数据a, A, e, E, f, F, g, G应用于双精度长整型的参数;
% a: 为64位的浮点数(double), 按照科学计数法打印采用0x和一个十六进制数字前使用小写小数点p来介绍指数的增大而减小;
% A: 为64位的浮点数(double), 按照科学计数法打印采用0X和一个十六进制数字前使用大写字母小数点P界扫指数的增大而减小;
% F : 为64位的浮点数(double), 按照十进制表示法进行打印;
% c: 为8位的无符号字符 % c(unsigned char), 通过打印NSLog()将其作为一个ASCII字符, 或者, 不是一个ASCII字符, 八进制格式\ddd或统一标准的字符编码的十六进制格式\udddd, 在这里d是一个数字;
% C: 为16位Unicode字符 % C(unichar), 通过打印NSLog()将其作为一个ASCII字符, 或者, 不是一个ASCII字符, 八进制格式\ddd或统一标准的字符编码的十六进制格式\\udddd, 在这里d是一个数字;
 
% s: 对于无符号字符数组空终止, % s系统中解释其输入编码, 而不是别的, 如utf - 8;
% S: 空终止一系列的16位Unicode字符;
% p: 空指针(无效*),打印十六进制的数字0 - 9和小写a - f, 前缀为0x;
% z : 修改说明在 % z长度以下d, i, o, u, x, X适用于某一指定类型的转换或者适用于一定尺寸的整数类型的参数;
% t: 修改说明在 % t长度以下d, i, o, u, x, X适用于某一指定类型或一定尺寸的整数类型的转换的参数;
% j: 修改说明在 % j长度以下d, i, o, u, x, X适用于某一指定类型或一定尺寸的整数类型的转换的参数
 
% @对象
% p 指针


2. 一些特殊规定字符
━━━━━━━━━━━━━━━━━━━━━━━━━━
字符 作用
——————————————————————————
/n 换行
/f 清屏并换页
/r 回车
/t Tab符
/xhh 表示一个ASCII码用16进表示,
其中hh是1到2个16进制数
————————————————

                                                  
参考链接:

Linux 中符号$的应用_linux $-CSDN博客

Linux “$” 的所有相关用法_linux $-CSDN博客

关于c中的%x及其它格式化符_%04x-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值