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

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

posted @ 2021-08-16 00:29  mediocrep  阅读(120)  评论(0编辑  收藏  举报
既然选择了远方,便只顾风雨兼程!