shell之常用命令
一些技巧
- ctrl+alt+f1切换至命令行模式
- ctrl+alt+f7切换至图形界面
-
命令行编辑:光标跳转ctrl+a 行首ctrl+e 行尾ctrl+d 删除ctrl+u 删除光标至行首的内容ctrl+k 删除光标至行尾的内容ctrl+l 清屏
-
命令历史使用:!n 执行命令历史中第n条命令!-n 倒数第n条命令!!执行上一条命令!sring 执行命令历史中最近一次匹配的历史命令!$ 引用上一次命令中最后一个参数
-
命令别名只在当前shell的声明周期有效,shell关闭,失效;同一个账号,多个终端,也无效alias cls=‘clear’alias 直接输入,可以显示当前所有的别名
-
命令替换把命令中某个子命令替换为其执行结果echo "The current directory is $(pwd)"touch ./file-$(date +%F-%H-%M-%S).txtualias
-
bash 支持的引号` `:命令替换"":弱引用,可以实现变量替换'':强引用,不完成变量替换
-
文件名通配,globbing*:任意长度的任意字符?:匹配任意单个字符,至少有一个[]:匹配指定范围内的任意单个字符[:space:] 空白字符[:punct:] 标点符号[:lower:] 小写字母[:upper:] 大写字母[:alpha:] 大小写字母[:digit:] 数字[:alnum:] 数字和大小写字母man 7 grep[^]:匹配指定范围外的任意字符
常识的东西
/etc 配置文件 /home 用户家目录 /root 管理员家目录 /lib 库文件,内核模块文件modules 静态库,动态库 /media 移动设备挂载点 /mnt 挂载点目录 临时文件挂载点 /opt 可选目录,用于安装第三方程序目录 /proc 内核映射文件 /sys 跟硬件设备相关属性映射文件 /tmp 临时文件 /var 可变化的文件 /bin 可执行文件,用户命令 /sbin 管理命令 /usr 全局共享的只读文件 /usr/bin /usr/sbin /usr/lib /usr/local/bin /usr/local/sbin /usr/local/lib
常用命令
ls
1.-l 长格式 - --- --- --- -:普通文件 b:块文件 c:字符文件 d:目录 l:符号链接文件 p:管道命令文件 s:套接字文件 文件权限 3位一组 r(4) w(2) x(1) --- user group otherime 文件硬链接数 文件的属主(owner) 文件的属组(group) 文件的大小(size),单位字节 时间戳(timestamp),这里最近一次被修改的时间 访问:access 修改:modify,修改内容 改变:change,metadata,改变元数据(属性) 2.-h:单位转换 3.-a:显示以.开头的隐藏文件 4.-d:显示目录自身属性 5.-i:index node,inode,显示索引节点号 6.-r:逆序显示文件 7.-R:递归显示
man
获得命令帮助 内部命令 help --- 外部命令 command--- 命令手册 man 部命令使用man时,对应的是bash 分章节: 1.用户命令 whatis 查看命令在哪个章节 2.系统调用 3.库用户 4.特殊文件(设备文件) 5.文件格式 解释某个命令的配置文件 6.游戏 7.杂项 8.管理命令(/sbin /bin) []可选 <>必选 ....可以出现多次 ()分组 man使用: 向后一屏,space 向前一屏,b 向后一行,enter 向前一行,k 查找: /keyword 向后 多个结果的时候 n 下一个 N 上一个 ?keyword 向前查找
文本处理
cut -d 指定分隔符,默认是空格 -f 指定要显示字段 sort 默认是按ASCII升序,自左往右 -n 按照数值大小排序 -r 逆序 -t 指定分割符 -k 以哪个字段为关键字进行排序 -u 排序后,相同的行只显示一次 -f 忽略字符大小写 uniq 只有相邻行,字符一样才认为是重复 -d 报告重复行,是哪个 -D 所有重复的行 -c 显示某一行重复次数 wc(word count) 默认统计:行 单词数 字节数 -c 字节数 -w 单词数 -l 行数 -L 最长的一行包含多少字符
tr 用于转换或删除字符,逐个字符进行处理,并非直接处理单词
tr ‘a-z’‘A-B’将小写转换成大写
tr -d ‘ab’删除字符集中出现的所有字符
命令历史
history -c 清空命令历史 -d 删除指定行或者开始之后的行 -d 100 ,-d 100 10 -w 保存命令历史到历史文件中
用户管理
useradd [options] username -u UID(>500 不能重复) useradd -u 1000 user1 -g GID(基本组,必须存在) useradd -g mygroup user2 -G GID (附加组,可以有多个) -c “comment” -d /path/to/somedirectory指定家目录 -s 指定shell的路径 useradd -s /bin/bash user3 $SHELL用于保存当前用户的默认shell -m -k 强行创建家目录,并将/etc/skel 下的配置文件复制过去 -r 添加一个系统用户,默认没有家目录 id查看用户账号的属性信息 -u -g -G -n finger 检索用户信息 finger username userdel 默认不删除家目录 -r 删除用户的同时删除家目录 修改账号属性信息 usermod -u UID -g GID -a -G GID额外指定附加组(没有-a会覆盖原有的附加组) -c -d -m指定新的家目录,并 移动文件到新的家目录下去 -s 修改shell -l 修改登录名称 -e 指定过期时间 -L lock -U unlock chsh username修改用户默认shell chfn username 修改注释信息 密码管理 passwd [username] --stdin echo “redhat”| passwd --stdin user2 -l lock -u unlock -n 最小密码期限 -d 删除密码 pwck 检查用户账号的完整性
文件查找
locate 非实时,模糊匹配,查找时根据系统文件数据库进行 updatedb 手动生成文件数据库 find 实时,精确,支持众多标准 find 超找路径 查找标准 查找到以后的处理运作 匹配标准: -name ‘FIlENAME’区分大小写 -iname 不区分大小写 -regex pattern 基于正则表达式进行文件名查找 -user USERNAME根据属主查找 -group GROUPNAME 根据属组查找 -uid UID -gid GID -nouser 查找没有属主文件 -nogroup 查找没有属组的文件 -type 【f d c b l p s】 -size #k #M #G -mtime -ctime -atime -mmin【+|-】# -cmin 【+|-】# -amin 【+|-】# -perm mode /mode 有一位匹配就行 -mode完全匹配 组合条件 -a and -o or -not ! 运作: -print 显示 -ls 类似ls -l 的形式显示每一个文件的详细 -ok command {} find / -size +1M -exec echo {} -exec command {}
转载请注明出处:http://www.cnblogs.com/tla001/
一起学习,一起进步