嵌入式开发必备linux基础

来源:互联网 发布:小区网络管理 编辑:程序博客网 时间:2024/05/02 01:04

一、菜鸟级基础篇

关机:shutdown -h now

数据写入磁盘:sync

Linux环境下注释:#

查看当前目录下文件:  ls      #仅列出文件名

                      ls -l    #列出文件名与文件详细信息

                      ls -al   #列出包含隐藏文件在内的文件名与文件详细信息

                      ls -l filiename  #仅列出filename的详细信息

显示当前目录:pwd

进入指定目录:cd 相对路径/绝对路径

相对路径:不从根目录写起的路径

绝对路径:从根目录/”写起的路径

-”表文件;“d”表目录;“l”表连接文件,相当于windows下的快捷方式

文件名前有.”表明该文件为隐藏文件

文件名有*”表明列出与“*”其余部分关键字重合的文件

touch 文件名:创建文件

cat -n 文件名:打印行号查看文件

Tab键按两次:补齐内容操作

man 命令:命令简介

.    #当前目录

..   #上一层目录

~   #主目录

 

二、查询

file 文件名  #查询文件类型

locate/whereis 文件或目录  #快速查找,从现有数据库中查找,而非磁盘

find 路径 -name文件名/缺省类文件名*  #find相关命令过于繁杂,这里仅列出最常用的一个,其余可具体参考man find

 

三、文件与目录

Linux下目录即相当于windows下的文件夹

 

文件与目录的复制、删除与移动:

常用复制命令:cp 源文件 目标文件   #普通复制,复制时会将执行者的权限一同复制

              cp -a   #将源文件所有属性一起复制过来  

              cp -i   #互动模式,若目标文件已存在,覆盖时会事先询问是否覆盖

              cp -r   #递归复制,用于目录复制时

常用删除命令:rm 文件或目录

              rm -r   #递归删除,用于目录删除时

              rm -i   #互动模式,删除前询问用户是否删除

常用移动命令:mv 源文件或目录(可以多个) 目录  #mv也可作为更名操作

              mv -i:互动模式,若目标文件已存在会询问是否覆盖  

 

创建目录:mkdir -m xxx 目录名  #创建时直接设定目录权限

          mkdir -p 目录名   #递归创建

删除目录:rmdir 目录名  #仅删除空的目录

          rmdir -p 目录名 #连同上层空的目录一起删除

 

 

四、权限设置

一般设置:chown -R 账号名称 文件或目录  #递归修改所有者,多个账号用冒号隔开

chgrp -R 账号名称 文件或目录   #递归修改所属用户组

chmod -R xxx 文件或目录     #递归修改权限,r:4  w:2  x:1

chmod u=r/w/x ,g=,o=  文件或目录

chmod u+r/o+w 文件或目录

特殊权限:chmod xxxx 文件或目录 #第一个x4SUID2SGID1SBIT。当有x的权限时才可设置特殊权限。三者特殊权限仅对二进制程序起作用,SUID表示执行者在执行过程中会获得所有者的权限,SGID表示程序执行时会获得所属用户组的权限,SBIT表示只针对目录有效当用户对目录拥有wx权限时,用户在该目录创建的文件或目录,只有自己与root才可以删除。 三者设置完成后通常会在x位置分别显示sst空状态(没有x的权限)时为大写。

chmod u+s,g+t 文件或目录  #符号法设置

ACL权限设置:ACL主要目的是提供传统的权限之外的具体权限的设置。ACL可以针对单一用户,单一文件或目录来进行rwx的权限设置。对于需要特殊权限的使用状况非常有帮助。

    启动ACL 使用mount,可以直接查看挂载参数的功能。如果没有acl,则说明挂载的时候没有开启acl权限。那么我们可以使用dump2fs -h /dev/sda2命令来查看该块设备的状态信息。其中有一行Default mount options: *****,如果****中有acl,则说明支持acl。接下来,我们可以使用mount -o remount,acl / 的命令来重新挂载根分区,这样就打开了acl权限。
 如果想要每次开机都生效,可以编辑/etc/fstab,并修改相关参数。
          /dev/sda1 / ext4 defaults,acl 1 1

     ACL设置技巧:setfacl [-bkRd] [{-m|-x} acl参数]  目标文件名

参数: -m:设置后续的acl参数给文件使用,不可以与-x合用。
        -x:删除后续的acl参数,不可与-m合用。
        -b:删除所有的acl设置参数。
        -k:删除默认的acl参数。
        -R:递归设置acl

                      -d:设置默认的acl参数,只对目录有效。在该目录下新建的数据会用此默认值。

设置acl权限:

setfacl -m u:(用户名):(赋予的权限)    目录或文件

setfacl -m u:st:rx    /project/

setfacl -m g:(组名):(赋予的权限)  目录或文件

setfacl -m g:tgroup2:rwx   /project/

查看ACL设置:

getfacl 目录

删除指定组用户的acl权限:

setfacl  -x  g:组名  文件名

删除指定用户的acl权限

setfacl  -x  u:用户名  文件名

删除文件下所有acl权限

setfacl  -b  文件名

      默认acl权限和递归acl权限的区别

1、默认的只对新建的文件和目录会继承该acl权限,以前建立好的,没有这个功能,如果以前建立好的文件和目录要有该acl权限,得用递归acl权限。

2、递归的alc权限,只对以前创建好的文件和目录能有该acl权限,对于后来新建的没有,默认和递归的作用正好相反。

3、默认acl权限   setfacl  -m d  u:用户名:权限  -R   目录

          递归acl权限  setfacl  -m    u:用户名:权限  -R   目录

 

五、用户与用户组

su - 用户名   #更改登录用户

sudo -u 用户名 操作 #更换用户执行某操作

groups  #查询当前用户所属用户组

newgrp 用户组 #更改有效用户组

useradd -u  UID-g初试用户组 用户名 #添加用户并指定初试用户组和UID

passwd 用户名  #更改用户密码,新建用户不设密码不能使用

userdel  -r 用户  #连同用户主文件夹一同删除

groupadd  用户组 #新建用户组

groupdel 用户组 #删除用户组

进程管理

     ps -a #查看所有进程

      pstree #显示进程树

      kill -9 进程号#删除进程

      top 显示内存信息   

七、打包与压缩

       打包:tar -czvf FileName.tar DirName

       解包:tar -zxvf FileName.tar

       压缩:gzip -v FileName     解压:gzip -d FileName.gz

       压缩:bzip2 -v FileName    解压:bzip2 -d FileName.bz2

 

八、磁盘管理

     fdisk -l #查看磁盘分区