linux一些笔记

一.数值运算

linux命令行中进行数值运算要用双括号(())

在这里插入图片描述

二.特殊字符

用来处理参数的特殊字符

  • $*:以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
  • $$: 脚本运行的当前进程ID号。
  • $!: 后台运行的最后一个进程的ID号。
  • $#:表示提供到shell脚本或者函数的参数总数;
  • $?:表示"最后一次执行命令"的退出状态

用来删除的字符

  • #*/:删除从串头数第一个/及其左边的字符串

  • ##*/:删除从串头数最后一个/及其左边的字符串
    在这里插入图片描述

  • %/*:删除从串尾数第一个/及其右边的字符

  • %%/*:删除从串尾数最后一个/及其右边的字符
    在这里插入图片描述

三.整数比较

  • -eq 等于,如:if ["$a" -eq “$b” ]
  • -ne 不等于,如:if ["$a" -ne “$b” ]
  • -gt 大于,如:if ["$a" -gt “$b” ]
  • -ge 大于等于,如:if ["$a" -ge “$b” ]
  • -lt 小于,如:if ["$a" -lt “$b” ]
  • -le 小于等于,如:if ["$a" -le “$b” ]
  • < 小于(需要双括号),如:(("$a" < “$b”))
  • <= 小于等于(需要双括号),如:(("$a" <= “$b”))
  • > 大于(需要双括号),如:(("$a" > “$b”))
  • >= 大于等于(需要双括号),如:(("$a" >= “$b”))
    在这里插入图片描述

四.chmod和chown指令

4.1 chown指令

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown
将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

使用权限 : root

语法 chown [-cfhvR] [–help] [–version] user[:group] file…

参数 :

  • user : 新的文件拥有者的使用者 ID group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • –help : 显示辅助说明
  • –version : 显示版本

实例

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

4.2 chomod指令

Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。

使用权限 : 所有使用者

语法 chmod [-cfvR] [–help] [–version] mode file…

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者
  • g 表示与该文件的拥有者属于同一个群体(group)者
  • o 表示其他以外的人
  • a 表示这三者皆是

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本

实例
将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

ex1.py 设定为只有该文件拥有者可以执行 :

chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1

  • 若要rwx属性则4+2+1=7;

  • 若要rw-属性则4+2=6;

  • 若要r-x属性则4+1=5。

    chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

效果相同
若用chmod 4755 filename可使此程序具有root的权限

五.mknod

mknod:make node 生成设备节点/文件

mknod [OPTION]… NAME TYPE [MAJOR MINOR]

DESCRIPTION
options 选项
Create the special file NAME of the given TYPE.

   Mandatory arguments to long options are mandatory for short options too.

   -m, --mode=MODE   设置设备文件的文件权限
          set file permission bits to MODE, not a=rw - umask

   -Z, --context=CTX   设置selinux的安全上下文
          set the SELinux security context of NAME to CTX

   --help display this help and exit

   --version

   TYPE 类型
   b      create a block (buffered) special file
   c, u   create a character (unbuffered) special file
   p      create a FIFO

linux操作系统跟外部设备(如磁盘,光盘等)的通信都是通过设备文件进行的,应用程序可以打开、关闭、读写这些设备文件,从而对设备进行读写,这种操作就像读写普通的文件一样简单。linux为不同设备提供了很多设备问价你,比如read(),write(),open(),close()。所以在系统与设备通信之前,系统首先要建立一个设备文件,这个设备文件存放在/dev目录下。其实系统默认情况下就已经生成了很多设备文件,但有时候我们需要自己手动新建一些设备文件,这个时候就会用到像mkdir, mknod这样的命令。
例如:

mknod DEVNAME {b | c} MAJOR MINOR #标准格式

mknod -m 666 "${IMAGE_DIR}/firmadyne/ttyS1" c 4 65

"${IMAGE_DIR}/firmadyne/ttyS1"是要创建的设备文件名(ttyS1)。如果想将设备文件放在一个特定的文件夹下,需要先用mkdir创建一个目录

mkdir "${IMAGE_DIR}/firmadyne/"
  • -b,块设备,设置设备名称成为一个外接存储设备文件,例如磁盘等。
  • c,字符设备,设置设备名称为一个外接存储设备文件,例如打印机、鼠标、键盘、终端都是以字符的形式传送数据。
  • p设置设备文件名成为一个FIFO文件。
  • MAJOR和MINOR分别表示主设备号和次设备号,为了管理设备,系统为每个设备分配一个编号,一个设备号由主设备号和次设备号组成。主设备号标示某一种类的设备,次设备号用来区分同一类型的设备。linux操作系统中为设备文件编号分配了32位无符号整数,其中前12位是主设备号,后20位为次设备号,所以在向系统申请设备文件时主设备号不好超过4095,次设备号不好超过2^20 -1。则上面的例子的主设备号为4,次设备号为65.

六.sync

sync命令用于强制吧文件系统buff的内容,写入系统磁盘。在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写
入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值