学习bash的一些零碎知识总结(一)

1. chown [-R] 账号名称:组名 文件或目录

    chown root:root install.log

    chown .root install.log    #单纯的修改用户组

2. 向PATH中加入新路径

    PATH="$PATH":/root

    PATH=${PATH}:/root

    PATH=$PATH:/root

3. 利用cp建立软链接与硬链接

    cp -l bashrc bashrc_hlink

    cp -s bashrc bashrc_slink

4. cat与nl显示文本文件

    cat -b /etc/yum.repos.d/rhel-source.repo    #列出行号,仅针对非空白行

    cat -n /etc/yum.repos.d/rhel-source.repo    #列出行号,连同空白行

    nl /etc/yum.repos.d/rhel-source.repo         #默认对空白行不加行号

5. less显示文本

    /字符串    #向下查询“字符串”

    ?字符串    #向上查询“字符串”

    n            #重复前一个查询

    N            #反向重复前一个查询

6. which、whereis、locate

    which [-a] command    #将所有由PATH目录中可以找到的命令全列出,而不止第一个被找到的命令

    whereis ifconfig    #寻找特定文件,利用数据库来查找数据

    locate ifconfig      #寻找特殊文件,将能找到的都列出来,首次运行前需要先执行updatedb

7. 主分区与扩展分区最多有4个,扩展分区最多只能有1个,逻辑分区是由扩展分区持续分出来的分区

8. dumpe2fs [-bh] 设备文件名

    dumpe2fs -h /dev/sda1    #仅列出superblock的数据,不会列出其他区段的内容

7. 目录树读取

    通过挂载信息找到挂载点inode号->根目录inode内容->根目录block->目录inode->目录block->文件inode->文件block

8. df -haT    #列出所有文件系统以及对应的文件系统名称

9. du [-sSh] 文件或目录名称

    du -sh /etc/yum.repos.d    #列出总量,而不列出每个个别的目录占用容量

    du -Sh /etc/yum.repos.d    #以子目录为单位,包括子目录的子目录,显示目录下的文件的大小,如果有嵌套目录,则不计嵌套目录的大小

10. ln -s 源文件 目标文件    #-s为软链接,不加任何参数为硬链接

11. mount -a    #依照/etc/fstab的数据将所有未挂载的磁盘都挂载上

     /etc/filesystems    #系统指定的测试挂载文件系统类型

    /etc/filesystems    #Linux系统已经加载的文件系统类型

    /lib/modules/$(uname -r)/kernel/fs    #Linux支持的文件系统驱动程序

    mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash    #挂载U盘,iocharset指定语系,中文语系是cp950

12. e2label 设备名称 新的Label名称

    dumpe2fs -h /dev/sda1    #查看卷标信息

    e2label /dev/sda1 "my_test"    #设置为新的label

    dumpe2fs -h /dev/sda1    #查看卷标是否修改成功

13. tune2fs [jlL] 设备代号

    tune2fs -l /dev/sda1    #查看卷标信息,类似dumpe2fs -h /dev/sda1

    tune2fs -L /dev/sda1 "my_test"    #类似e2label,修改文件系统的Label

14. /etc/fstab说明

    /repo/iso/rhel-6.5.iso  /repo/rhel   iso9660     loop              0 0

    设备文件名或Label       挂载点        分区格式    文件系统参数   能否dump、是否fsck检验扇区

15. dd if=/dev/zero of=/software/rhel.img bs=1M count=20000

16. tar [jz][tcx]vf 文件

    tar jcvf filename.tar.bz2 待压缩文件或目录    #通过bzip2进行压缩

    tar zcvf filename.tar.gz 待压缩文件或目录     #通过gzip进行压缩

    tar jxvf filename.tar.bz2 待解压文件或目录    #通过bzip2进行解压

    tar zxvf filename.tar.gz 待解压文件或目录     #通过gzip进行解压

    tar jtvf filename.tar.bz2    #查看bzip2压缩文件内容

    tar ztvf filename.tar.gz     #查看gzip压缩文件内容

    tar zxvf filename.tar.gz -C /tmp    #指定解压缩目录

    tar jcvf filename.tar.bz2 --exclude=/home/a --exclude=/etc/b* /etc /home    #打包某目录,但不包含指定文件

17. 用env查看环境变量;用set查看所有变量

18. 整个系统默认的语系定义在/etc/sysconfig/i18n

    locale -a    #linux支持的语系

19. read [-pt] variable

    read -p "Please enter your name: " -t 30 named    #-p加入提示信息,-t指定等待秒数

    echo $named

20. declare -i sum=1+2+3    #指定sum为整数类型

     declare -x variable    #将variable设置为环境变量,类似export

     declare -r sum    #将sum设置为只读

21. /etc/profile->/~/.bash_profile->~/.bash_rc->/etc/bashrc

22. cut -d ‘分隔符’ -f fields

    echo $PATH | cut -d ':' -f 3,5

    export | cut -c 12-    #取出固定字符区间

23. grep [-irnv] '字符串'

    '^$'代表空白行

    grep -v '^$' /etc/syslog.conf | grep -v '^#'    #不要空白行,不要开头是‘#’的行

24. sort [-fbMnrtuk] 文件或标准输入

     sort默认以第一个数据来排序,以“文字”类型来排序;-f:忽略大小写;-b:忽略最前面的空格符;-n:使用纯数字排序;-r:反向排序;-u:uniq;-t:指定分隔符,默认是Tab键;-k:指定field

     cat /etc/passwd | sort -t ':' -k 3    #指定分隔符是‘:’, 并以第三个区域来排序

     cat /etc/passwd | sort -t ':' -k 3 -n    #指定以数字来排序

     last | cut -d ' ' -f1 | sort

25. uniq [-ic]    #-i忽略大小写, -c进行计数

    last | cut -d ' ' -f 1 | sort | uniq -c

26. wc [-lwm]    #-l仅列出行,-w列出单词数,-m列出字符数

    last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l

27. tr [-ds] string    #-d删除信息中的string字符串;tr用于删除一段信息中的文字,或进行文字替换

    last | tr '[a-z]' '[A-Z]'

    cat /etc/passwd | tr -d ':'

28. test -s filename    #检测该文件名是否存在且为非空白文件

     test -z string    #判断字符串是否为0, 若string为空,则返回true

     test -n string    #判断字符串是否为非0,若string不为空,则返回true

     -a and,-o or,!非

29. $#代表后接的参数个数,不包括文件名

     $@代表“$1”、"$2"、“$3”之意,每个变量是独立的

     $*代表“$1c$2c$3”,c为分隔符,默认为空格,一般情况下使用$@

30. test可以利用-a、-o,也可以利用&&、||;而if [条件判断]后只能用&&、||;意思是[]内可以用-a、-o,[]间只能用&&、||

40. for var in con1 con2 con3 ...

     for i in $(seq 1 100)

     for((i=1; i<=$num; i=i+1))

41. sh [-nvx] scripts.sh    #-n不执行仅查询语法错误;-v执行前先打印;-x将使用到的script内容显示到屏幕上

转载于:https://my.oschina.net/renguijiayi/blog/179574

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值