zoukankan      html  css  js  c++  java
  • skills_linux

    skills_linux

    2 压缩、解压缩、加密压缩

    2.1 tar

    1. 压缩
      tar -cvf

    2. 解压缩
      tar -xvf

    • 因为-f 表示指定文件名称,所以后面一定跟一个文件名
      eg. tar -zcvf 09dir.tar.gz 09dir/
    • tar拆分压缩大文件,以及加压缩拆分后的文件
      tar zcvf - dir1/ | split -b 200m - dir1.tar.gz
      cat dir1.tar.gz.a* | tar zxv
      note: split用法:Usage: split [OPTION]... [FILE [PREFIX]]

    2.2 zip(可以加密压缩)

    1. 压缩
    zip -P ciichr Java.zip Java1.java  Java2.java  # 明文加密压缩
    zip -e Java.zip Java1.java  Java2.java   # 交互式加密压缩,看不到输入的密码
    some parameters: 
    -d   delete entries in zipfile  # 从 压缩文件内删除指定的文件
    -r  recurse into directories  # 递归压缩目录内容
    -q   quiet operation  
    -v   verbose operation/print version info
    -e
           --encrypt
                  ble,  use  the  non-echoing,  interactive  prompt to enter passwords.
    -P password
           --password password
                  Use  password  to  encrypt zipfile entries (if any).  THIS IS INSECURE!  Many multi-user operating systems provide ways for any user to see the current command line of any other user; even on
                  stand-alone systems there is always the threat of over-the-shoulder peeking.  Storing the plaintext password as part of a command line in an automated script is even worse.   Whenever  possi‐
                  ble,  use  the  non-echoing,  interactive  prompt to enter passwords.  (And where security is truly important, use strong encryption such as Pretty Good Privacy instead of the relatively weak
                  standard encryption provided by zipfile utilities.)
    
    1. 解压缩
    unzip 
    Grammer: unzip [-cflptuvz] [-agCjLMnoqsVX] [-P <密 码>] [.zip文 件] [文件] [-d <目录>] [-x <文件>] 或 unzip [-Z]
    some parameters: 
    -l  list files (short format)
    -q  quiet mode (-qq => quieter)
    -v  list verbosely/show version info
    -o  overwrite files WITHOUT prompting 
    -n   never overwrite existing files
    -P <password>  # 如果压缩文件有密码,则使用该参数
    [.zip文件]   指定.zip压缩文件
    [文件]   指定 要处理.zip压缩文 件中的哪些文件
    -d  extract files into exdir  # 指 定文件解压缩后所要存储的目录
    -x  exclude files that follow (in xlist)  # 指定不要处理.zip压 缩文件中的哪些文件
    
    # windows上的压缩文件解压缩到linux上时,中文会乱码,这时只需要指定解压缩的字符集为GBK即可
    eg. unzip -q -O GBK -d dir7/ dir7.zip
    # 也可以把 -q 和 -O 参数合并到一起
    unzip -qO GBK -d dir7/ dir7.zip
    

    3 tree; tree -d; tree -L num

    4 scp -r jdk1.8.0_291/ node3:$PWD

    $PWD :表示远程节点中和本地当前目录相同的路径

    5 去掉You have new mail in /var/spool/mail/root提示

    echo "unset MAILCHECK">> /etc/profile
    source /etc/profile
    

    6 curl下载文件

    curl -O http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm  # 大写字母O
    curl -o dodo222.jpg http://www.linux.com/dodo1.JPG  # 小写字母o
    wget -c http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm  # 支持断点续传
    

    7 进程休眠

    sleep 1 睡眠1秒
    sleep 1s 睡眠1秒
    sleep 1m 睡眠1分
    sleep 1h 睡眠1小时
    

    8 vmware压缩linux虚拟机的磁盘大小

    8.1 启动虚拟机,执行如下命令来清理不使用的磁盘

    dd if=/dev/zero of=/0bits bs=20971520
    sudo rm /0bits
    
    dd: error writing ‘/0bits’: No space left on device
    1601+0 records in
    1600+0 records out
    33558560768 bytes (34 GB) copied, 442.518 s, 75.8 MB/s
    

    8.2 关闭虚拟机

    8.3 在vmware工作目录下输入虚拟机磁盘清理命令,等到命令执行完成。例如:

    D:\develop\VMwareWorkstation>cd D:\develop\vm\node3
    D:\develop\vm\node3>"D:\develop\VMwareWorkstation\vmware-vdiskmanager.exe" -k centos7.vmdk
    note:以上方法亲测有效!之前试过直接使用下面这2个按钮,但是无效(后来测试在xp虚拟机上使用下面的2个按钮,有效!!!)

    9 sftp登录方法和常用命令

    ① sftp [username@]{ip | hostname} (默认username是root)
    指定用户名登录: sftp zygf@{ip | hostname}(zygf为用户名)
    ② 登录成功后,会提示输入密码
    ③ 然后,可进入目录, ls 查看目录下内容
    ④ cd 切换目录,get 获取文件, put 上传文件,pwd 查看当前目录
    ⑤ quit / bye / exit 退出sftp

    10 shell终端中打开图形界面的文件夹

    nautilus {path}

    11 linux中批量递归删除目录下所有文件的Windows换行符\r

    vim deleteSpecialCharacter.sh
    #!/bin/bash
    for line in `find /develop/ideaws/bd | egrep -v ".crc$"`
    do
    if [ -f $line ]; then
    echo $line
    # vim -e -s -c "set fileformat=unix" -c "wq" $line  # it's invalid
    vim -e -s -c "%s/\r//g" -c "wq" $line
    fi
    done
    

    note:执行完脚本后,git diff 某个文件,进行对比时,可能会报警告:\ No newline at end of file
    git diff aaa.txt
    此时不用理会,直接git commit提交所有代码即可,提交后,git diff中的警告消失。
    reference(newest version):
    github-deleteSpecialCharacter.sh
    gitee-deleteSpecialCharacter.sh

    12 linux中利用fstab实现磁盘分区自动挂载

    如何格式化磁盘、给磁盘分区以及挂载,参考我的另一篇博客:
    https://www.cnblogs.com/mediocreWorld/p/11123786.html

    博客中有一个格式化分区的命令: mkfs -t ext4 -c /dev/sdb6, 可以用这个命令代替 mkfs.ext4 /dev/sdb6
    还有其中的一个命令,设置开机自动挂载磁盘:echo "/dev/sdb6 /data02 ext4 defaults 0 0" >> /etc/fstab ,扩展一下。
    我的/etc/fstab 配置文件,是以下这些内容:

    UUID=6485a272-312b-4971-b39a-9eca7d48b9e7 / ext4 errors=remount-ro 0 1
    UUID=f8ef8a43-653c-4de2-8a20-10490a1299fc /home ext4 defaults 0 2
    UUID=89fc9952-7348-47cb-93dd-b354e8484767 none swap sw 0 0
    UUID=e05681c1-9cf1-40a4-9c4a-95829f9683dc /boot ext4 defaults 0 2
    UUID=4526-E5C5 /boot/efi vfat defaults 0 1
    /dev/sdb6 /data02 ext4 defaults 0 0
    

    其中,最后一行是我后来通过该命令 echo "/dev/sdb6 /data02 ext4 defaults 0 0" >> /etc/fstab 添加的。

    可以看到,在 fstab 文件中,每行数据都分为了 6 个字段,它们的含义分别是:

    • 用来挂载每个文件系统的分区设备文件名或 UUID(用于指代设备名);
    • 挂载点;
    • 文件系统的类型;
    • 各种挂载参数;
    • 指定分区是否被 dump 备份;
    • 指定分区是否被 fsck 检测;
    1. 第一个字段可以是UUID,也可以是分区名,如/dev/sdb6。
      查看UUID的2个方法:
      • dumpe2fs /dev/sdb6 | grep UUID
      • ls -l /dev/disk/by-uuid/
    2. 第二个字段,需要强调的是,挂载点一定要是已经建立的空目录。
    3. 第三个字段为文件系统名称,CentOS 6.3 的默认文件系统应该是 ext4。
    4. 第四个字段是挂载参数,这个参数和 mount 命令的挂载参数一致。
    5. 第五个字段表示“指定分区是否被 dump 备份”,0 代表不备份,1 代表备份,2 代表不定期备份。
    6. 第六个字段表示“指定分区是否被 fsck 检测”,0 代表不检测,其他数字代表检测的优先级,1 的优先级比 2 高。所以先检测 1 的分区,再检测 2 的分区。一般分区的优先级是 1,其他分区的优先级是 2。

    13 文件的分割和合并

    1. 分割:Usage: split [OPTION]... [FILE [PREFIX]]
      eg. split -b 4000m -a 1 -d win7.iso win7.iso
      -b 分割后的每个文件的大小
      -a 后缀的位数,默认2位,此处设置为1位
      -d 后缀名设置为0、1、2等的数字,默认是aa、ab等的字母
      第1个win7.zip是要被分割的文件名称,第2个win7.zip是每个分割出来的文件名称的前缀,
      假设win7.zip有5G,则最终分割好的文件包含:win7.zip0,win7.zip1

    2. 合并: cat
      eg1. cat file1 file2 file3 > outputFile
      eg2. cat x* >> newfilename

    14

    15

    16

    17

    18

  • 相关阅读:
    入门训练 圆的面积
    入门训练 序列求和
    interface
    Horizon
    H903
    Sphinx Building Docs in horizon
    Cinder Columns
    DevStack添加Swift
    Murano py27和py34的兼容处理
    Murano Weekly Meeting 2015.12.01
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15145748.html
Copyright © 2011-2022 走看看