• linux命令操作


    文件预设权限:

    umask / umask -S

    umask的分数是默认值需要减掉的权限

    文件隐藏属性:

    chattr 配置文件隐藏属性

    chattr [+-=][ASacdistu] 文件或目录名称

    + :增加某一个特殊参数,其他原本存在参数则不动。

    - :移除某一个特殊参数,其他原本存在参数则不动。

    = :设定一定,且仅有后面接的参数

    a :当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有 root 才能设定这属性;

    i :他可以让一个文件不能被删除、改名、设定连结也无法写入或新增数据。对于系统安全性有相当大的帮助,只有 root 能设定此属性。

    lsaddr 显示文件隐藏属性

    lsattr [-adR] 文件或目录

    -a :将隐藏文件的属性也秀出来;

    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;

    -R :连同子目录的数据也一并列出来!

    文件特殊权限:SUIDSGIDSBIT(只对目录有效)

    SGID对于文件来说:

    对于二进制文件需要具有文件的执行权限,执行时该文件会获得程序群组的支持

    SGID对于目录而言:

    文件目录需要有执行和写入的权限,用户可以进入该目录,用户在此目录下的有效群组将会变成该目录的群组; 若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。

    SBIT:当用户对于此目录具有 w, x 权限,亦即具有写入的权限时,当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件

    SUID/SGID/SBIT 权限设定

    4 SUID ,2 SGID ,1 SBIT

    chmod 4755 filename

    观察文件类型:file想要知道某个文件的基本数据

    脚本文件名的搜寻:

    which [-a] command

    -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

    文件档名的搜寻:

    whereis [-bmsu] 文件或目录名

    -l :可以列出 whereis 会去查询的几个主要目录而已

    -b :只找 binary 格式的文件

    -m :只找在说明文件 manual 路径下的文件

    -s :只找 source 来源文件

    -u :搜寻不在上述三个项目当中的其他特殊文件

    locate:根据数据库去搜寻文件,但可能数据库未更新,可能会无法找到,根据updatadb更新数据库。

    locate [-ir] keyword

    -i :忽略大小写的差异;

    -c :不输出档名,仅计算找到的文件数量

    -l :仅输出几行的意思,例如输出五行则是 -l 5

    -S :输出 locate 所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等

    -r :后面可接正规表示法的显示方式

    findfind -name/-size [+-]SIZE/-type TYPE(一般正规文件 (f), 装置文件 (b, c), 目录 (d), 连结档 (l), socket (s), FIFO (p) 等属性)/-perm mode(文件权限刚好等于mode)/-perm /mode

    (包含任一权限)

    在后面还可以带-exec +命令最后以结尾

    eg.:find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} ; 在这两个目录下找到只要含有st就可以的文件然后ls -l显示出来,{;}代表的是结束,是跳脱字符用于;

    linux常见的压缩命令:

    gzip [-cdtv#] filename

     -c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;

    -d :解压缩的参数;

    -t :可以用来检验一个压缩文件的一致性~看看文件有无错误;

    -v :可以显示出原文件/压缩文件案的压缩比等信息;

    -# # 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好预设是 -6

    zcat/zmore/zless 则可以对应于cat/more/less 的方式来读取纯文本档被压缩后的压缩文件

    bzip2 [-cdkzv#] filename

    -c :将压缩的过程产生的数据输出到屏幕上

    -d :解压缩的参数

    -k :保留源文件,而不会删除原始的文件

    -z :压缩的参数 (默认值,可以不加)

    -v :可以显示出原文件/压缩文件案的压缩比等信息;

    -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快

    xz [-dtlkc#] filename

    -d :就是解压缩

    -t :测试压缩文件的完整性,看有没有错误-l :列出压缩文件的相关信息

    -k :保留原本的文件不删除~

    -c :将数据由屏幕上输出

    -# :较佳的压缩比的

    tar打包命令:

    虽然压缩命令也可以将压缩目录,但只是将目录下的文件分别进行压缩,tar可以将多个目录和文件打包成一个大文件,将这些文件进行压缩,同时透过压缩命令的支持,将文件进行压缩。

    缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

    询:tar -jtv -f filename.tar.bz2

    解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

    -z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz

    -j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2

    -J :透过 xz 的支持进行压缩/解压缩:此时档名最好为 *.tar.xz

    -z-j-J不可以同时出现在同一tar命令中

    -p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

    -P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;

    --exclude=FILE:在压缩的过程中,不将 FILE 打包

    备份dddd if="input_file" of="output_file" bs="block_size" count="number"

    if :就是 input file也可以是装置;

    of :就是 output file也可以是装置;

    bs :规划的一个 block 的大小,若未指定则预设是 512 bytes(一个 sector 的大小)

    count:多少个 bs 的意思。

    备份文件:cpio

    cpio命令没有指定需要备份的文件,只是指定了备份的地址,这就需要管道,将数据显示出来由cpio通过数据流重导向去备份。而且cpio备份时没法识别绝对路径和相对路径,所以需要切换到文件的当前路径然后使用命令将数据由管道再由cpio数据流重导向到备份的路径。

    cpio -ovcB > [file|device] <==备份

    cpio -ivcdu < [file|device] <==还原

    cpio -ivct < [file|device] <==察看

    makefile的基本语法及变量

    目标(target): 目标文件 1 目标文件 2

    gcc -o 欲建立的执行文件 目标文件 1 目标文件 2

    变量的基本语法:

    1. 变量与变量内容以『=』隔开,同时两边可以具有空格;

    2. 变量左边不可以有 ,例如上面范例的第一行 LIBS 左边不可以是 ;

    3. 变量与变量内容在『=』两边不能具有『:』;

    4. 在习惯上,变数最好是以『大写字母』为主;

    5. 运用变量时,以 ${变量} $(变量) 使用;

    6. 在该 shell 的环境变量是可以被套用的

    7. 在指令列模式也可以给予变量。

    gcc编译的过程中,所指定的变量可以定义在makefile中,可以是同一shell中的环境变量,也可以是指令列中定义的变量,他们的优先级是:

    1. make 指令列后面加上的环境变量为优先;

    2. makefile 里面指定的环境变量第二;

    3. shell 原本具有的环境变量第三。

    $@:代表目前的目标(target)

    tarball

    软件安装的指令:

    ./configure:使用一支script检查linux环境,相关的软件属性

    makeclean:去除目标文件

    makefile:根据makefile文件进行文件编译

    makeinstall:根据makefileinstall把数据安装到指点目录

    函式库管理:

    静态库:后缀名为.o,在文件编辑过程中直接将库整合到代码中,占用的空间会比较大,当使用的库升级后,整个执行档必须要全部重新编译才能将新的库应用到程序中。优点是编译好的文件可以独立执行。

    动态库:linux的大多数函式库是动态的,后缀名为.so,在文件中,他只有一个指向的位置,当执行时,会读取库去执行,并不包括库的内容,所以占用的空间会小一些,这种类型的库编译出来的程序不可以独立执行,但是当有编译时所需要的库升级时,不需要重新编译。

    程序的动态库解析:ldd [-vdr] [filename]

    将动态库加载到内存中:增加动态库的读取速度的操作

    1. 首先必须要在 /etc/ld.so.conf里面写下想要读入高速缓存当中的动态函式库所在的目录

    2. 接下来则是利用 ldconfig 这个执行档将 /etc/ld.so.conf 的资料读入快取当中;

    3. 同时也将数据记录一份在 /etc/ld.so.cache 这个文件当中

    服务器硬件数据的收集:

    以系统内建 dmidecode 解析硬件配备

    dmidecode -t type

    type参数:

    1 :详细的系统数据,含主板的型号与硬件的基础数据等

    4 CPU 的相关资料,包括倍频、外频、核心数、核心绪数等

    9 :系统的相关插槽格式,包括 PCI, PCI-E 等等的插槽规格说明

    17:每一个内存插槽的规格,若内有内存,则列出该内存的容量与型号

    硬件资源的收集与分析:

    linux主机的硬件设备:

    lspci [-vvn]

    -v :显示更多的 PCI 接口装置的详细信息;

    -vv :比 -v 还要更详细的细部信息;

    -n :直接观察 PCI ID 而不是厂商名称

    了解系统接了多少个usb设备: 

    lsusblsusb [-t]

    -t :使用类似树状目录来显示各个 USB 端口口的相关性

    检查由开机到现在,磁盘已经存储了多少数据量:

    iostat [-c|-d] [-k|-m] [-t] [间隔秒数] [侦测次数]

  • 相关阅读:
    收藏的一些前端学习的网址
    使用box-shadow 实现水波、音波的效果
    asyncjs,waterfall的使用
    兼容opacity的方法
    在php框架中写正规则表达式时的磕绊
    浏览器的渲染原理
    正规则表达式判断数字
    ie6,7,8不兼容rgba,写background时候不要写成rgba
    jquery-ias插件详解
    制作手机页面过程中遇到的一点问题
  • 原文地址:https://www.cnblogs.com/pw-fan/p/11244364.html
Copyright © 2020-2023  润新知