功能 | 格式 | 例子 |
批量修改后后缀名 | Rename | Find ./ –type f –name ‘*.txt’ –exec rename 'txt’ ‘log’ {} \; |
增
新建文件夹/目录 | mkdir | Mkdir dir |
新建文件 | Touch | Touch touch |
1、创建用户 2、创建用户,并指定目录 3、创建用户,并指定属组 4、创建用户,并指定目录和属组 | Useradd |
|
创建用户组 | Groupadd | Groupadd grp |
增加权限 (1)、file1属主加执行权限 (2)、文件file1属组加写权限 (3)、文件file1其它加执行权限 (4)、文件file1所有加写权限 (5)、更改属主3,属组4,其他用户权限5 (6)、加-R参数表示子目录一起改权限 | Chmod | 属主u、同组g、其他o、所有a 可读r、可写w、可执行x
chmod 345 file1 chmod u+wr,g+r,o+rx file1 6、chmod –R a+r file1 |
删
| Rm | Rm folder Rm –rf folder |
| Rm | Rm file Rm file1 file2 |
| Userdel |
|
| Groupdel | Groupdel grp |
删除权限 | Chmod | Chmod a-x F |
改
修改文件或目录名称/不提示
| Mv |
MV folder folder |
批量修改后后缀名 | Find restart |
|
重启服务 | 1、service network restart | |
将所有的f1文件改为f2 | Mv | find ./ –nameF1 –print –execF1F2 {} \; |
文件或目录复制 | Cp | CpFF_cp |
切换用户 | Su | Su use |
修改文件或目录用户拥有者及所属组 1、单---拥有者 2、双—拥有者或属组 3、子目录也更换 | Chown |
Chown –R new_use:new_group folder; |
| chgrp | 1、Chgrp new_group F 2、chgrp –R new_group folder |
指定用户新名称 | Usermod -l | Usermod –l new_use now_use |
锁定用户账号 | Usermod –L | Useermod –L now_use |
解除用户账号锁定 | Usermod –U | Usermod –U now_use |
1、修改用户组属组名 2、修改用户组属GID 3、修改用户组属组名和GID | Groupmod | Groupmod –n new_zu now_zu Groupmod –g 666 now_zu Groupmod –n new_zu now_zu –g 666 |
查
| Ls | 1、Ls 2、Ls /home 3、ls -a |
| Ll |
|
查看文件或目录大小 | du | Du f |
查看当前目录 | Pwd | Pwd |
切换目录 | Cd | Cd ./ |
查看当前用户 | Who | Who am I |
查看用户属组 | Groups | groups |
查看文件 | Cat | 【选项】1、[-n]:输出行编号 2、[-b]:1开始所有非空编号 3、[-s]:多行空格换成一行编号 |
查看文件内容只能向下翻页 | more | More filename |
查看文件内容能向上/下翻页 | less | less filename |
查看文件前10行 | Head | Head filename |
查看文件尾10行 | Tail | Tail 10 filename |
1、查找当前目录下的文件 2、查找当前目录下所有的文件 3、查找目录下file开头且大1k的文件 | find |
|
1、计算列数 2、Bytes数 3、字数 | Wc –l Wc –c Wc -w | Wc –l filename Wc –c filename Wc –w filename |
系统
查看网卡 | Ifconfig | Ifconfig Service network restart /etc/……/ifcfg-eth0 |
查看系统内核 | ||
查看系统磁盘空间 | ||
查看系统时间 | date | date |
查看进程 | ps/jobs | ps –ef|grep tomcat jobs -l |
查看帮助 | man | man |
查看服务状态 | chkconfig | chkconfig --list 查看服务状态 service 服务名 status |
1、查看历史命令 2、查最近4条命令 3、清空命令 | history | 1、history 2、history 4 3、history –c |
杀死进程 | kill | kill id |
挂载光盘 | mount | 挂载目录/mnt/usb mount /dev/sdb1 /mnt/usb |
卸载光盘 | umounts | 卸载挂载目录 mount /mnt/usb |
查看挂载 | Df -h | Df -f |
压缩文件 | Gzip | Gzip |
解压文件 | Unzip | Unzip |
安装程序 | rpm | Rpm |
编辑器 | vi | vi |
用法: shutdown [-i | -l | -s | -r | -a] [-f] [-m \computername] [-t xx] [-c "comment"] [-d up:xx:yy]没有参数 显示此消息(与 ? 相同)
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "别开bt了 谢谢" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d [p]:xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)
-f:强行关闭应用程序
-m \计算机名:控制远程计算机
-i:显示图形用户界面,但必须是Shutdown的第一个选项
-l:注销当前用户
-r:关机并重启
-t时间:设置关机倒计时
-c "消息内容":输入关机对话框中的消息内容(不能超127个字符
2、举例:
关闭计算机 shutdown –s (方法:”开始”->”运行”->”shutdown -s”->”确定”)
延迟3秒关闭计算机 shutdown –s –t 3(方法:”开始”->”运行”->”shutdown –s –t 3”->”确定”)
取消关闭计算机 shutdown –a (方法:”开始”->”运行”->”shutdown –a”->”确定”)
Bash | bash | 执行脚本 | bash helloworld.sh ./w.sh | |
重定向符 > | 标准输出 | command > out.file 2>&1 & command 2> err.txt >&2 | ||
重定向符 >> | 追加 | cal >> c.txt | ||
重定向符 2> | 标准错误 | ls ddd 2> /dev/null | ||
重定向符 < | sort < name.txt > name.out | |||
重定向符 << | ||||
正则表达式 | . 匹配任意字符 ^ 匹配行首 $ 匹配文件尾 [] 匹配字符组之一 * 匹配0到n个字符 \{min,max\} \(…\) | XXX* 匹配至少两个连续的X X\{1,10\} 匹配1到10个连续的X ^\(.\) 匹配行首的第一个字符(不管是什么) ^\(.\).*\1$ 匹配一行中的头一个字符和最后一个字符相同的行 | ||
管道符 | | ||||
双引号 | 引用字符串,但对$,`,\敏感 | "" | echo "$$" echo "\$$" | |
单引号 | 引用字符串,对特殊字符不敏感 | '' | echo '$$' | |
反引号 | 将反引号内的字符串作为命令 | `` | echo `date` | |
命令集 | 一行中执行多个命令 | ; 顺序执行 && 前面成功后续才执行 || 前面失败后续才执行 | ls;ls ls&&ls ls||ls | |
变量 | 位置变量 $$ 脚本当前进程ID $! 后台运行的最后一个进程的ID $? 命令的退出状态(0表示成功,1表示失败) $# 传递到脚本的参数个数 $* 以一个单字符串的形式显示所有向脚本传递的参数 $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数 $_ 就是set命令 | 观察$*和$@的不同: for i in "$*" do echo $i done for i in "$@" do echo $i done | ||
wc | 统计字数 | -l 统计行数 -c 统计字符 -w 统计字 | cat /etc/passwd | wc -l | |
sleep | 等待 | sleep 5 暂停5秒 usleep 500 这个单位是纳秒 | ||
read | 从键盘读入信息到变量中 | read name | ||
变量赋值 | PATH="$PATH":/root LANG=C LANG=zh_CN.gb2312 PS1='[\u@\h \W]\$ ' | |||
set | 显示当前shell的变量,包括当前用户的变量(即环境变量) | set | ||
unset | 删除变量 | unset i | ||
export | 把变量即刻导入到当前的用户环境中(被export的变量叫环境变量),这时可以在env中看到 | 环境变量相当可以被子进程使用,其他变量不行。 | export LANG=C export LC_ALL=en | |
env | 显示当前用户环境的变量(被export的变量可以用env查看到) | env | ||
alias | 命令别名 | alias ll alias l=ls -la | ||
unalias | 取消命令别名 | unlias l | ||
cut | 提取字符串 | -c 字符 -f 字段 | cat /etc/passwd | cut -d ":" -f1 last | cut -d " " -f1 列出第一个区块 who | cut -c1-8 每行的1-8个字符 cut -d: -f1,6 /etc/passwd | |
join | 把两个文件中相同的行连起来 | join -t ':' /etc/passwd /etc/shadow join -t ':' -1 4 /etc/passwd -2 3 /etc/group | ||
sed | Stream Editor流编辑器 | sed 's/Unix/UNIX/' myFile 把Unix换成UNIX(没改原文件),但只改动每行的第一个改掉 sed 's/Unix/UNIX/g' myfile > temp.txt 把每行的所有Unix都换成UNIX sed '1,2d' myfile 删除第1、2行 sed '/[Tt]est/d' 删除含test或Test的行 sed -n '20,25p' text 只显示第20到25行 sed 's/…//' data 删除文件中每行的前3个字符 sed 's/…$//' data 删除文件中每行的最后3个字符 | ||
awk | last -n 5 | awk '{print $1 "\t" $3}' | |||
paste | 和cut相反的命令,合并行 | -d 指定合并的分隔符 -s 把文件内的所有行合并为一行 | paste names numbers 把两个文件的每行都分别合起来 paste -d'+' names addresses numbers paste -s names ls | paste -d' ' -s | |
sort | 对文件内容做排序 | -n 以数字排序 -r 反向排序 -u 同样的只出现一次 | sort -n name.txt | |
diff | 比较两个文件的不同 | diff file1 file2 | ||
uniq | 删除重复行从而只显示一个 | last | cut -d " " -f1 | sort | uniq 查看这个月登录主机的用户都有谁 | ||
source | 执行脚本 | source helloworld.sh | ||
tee | 输出到文件的同时显示在屏幕上 | -a 追加到末尾 | ||
tr | 替换指定内容 | -d 删除指定串 -s 替换重复字符 | cat dostxt | tr -d '\r' > dostxt-noM 去掉文件中的DOS下的 ^M 断行符 | |
split | 分割文件 | -b 以文件size分 -l 以行数分 | split -l 5 /etc/passwd test | |
test | 测试文件 测试字符串 测试数值 | 文件: 字符串: 数值: | ||
expr | expr 10 + 10 只算整数,真正的计算要用bc(计算器) expr 3 \* 7 乘号要转义 | |||
函数 | 下例可以看出$*和$@的区别: function testargs { echo "There is $# args" echo $10 } testargs "$*" testargs "$@" |
任务计划 | tab键 | 命令自动补全 | 按一下会自动展开; 按两下会列出所有命令 | |
nohup | 不挂断的运行 | |||
& | 后台运行 | command & | ||
Ctrl+Z | 后台运行 | |||
jobs | 列出作业 | |||
fg | 前台 | %number 表示jobs的工作代号 | fg %2 后台程序切到前台 | |
bg | 后台 | %number 表示jobs的工作代号 | bg %1 将Stopped状态的后台程序改为Running状态 | |
at | 一次性运行的任务计划 | -f 要提交的脚本 -r 清除 -l 罗列 | at 3:00pm tomorrow -f /home/wuxh/hello.sh at now + 5 minutes | |
crontab | 循环运行的任务计划 | -u 用户 -e 编辑crontab -l 罗列 -r 删除crontab | 格式: 分<>时<>日<>月<>星期<>要运行的命令 45 4 1,10,22 * * /apps/bin/backup.sh |
FTP常用命令
get[回车] 下载
put[回车] 上传
delete[回车] 删除