命令(command)格式
一般情况下command [选项(options)] [参数[arguments]] 此处选项和参数可以是多个
选项options:定义命令的执行方式
使用“-”引导
-短选项
短选项:通常只有一个字符 使用“-”引导 多个短选项可以组合使用 如 rm -rf /tmp/dir/ (强行删除目录dir及其内的文件盒子目录)
--长选项
长选项:通常就是一个具有完整意义的单词或词组 用“--”引导 如一个外部命令cd可使用 man --help
参数argument:命令的作用对象
此项可省略,但往往无参命令都具有默认作用对象
注意:1.取消命令执行 ctrl+c
2.一行可以执行多个命令 使用“;”隔开即可
命令(command)种类
1.内部命令
隶属于某个已打开的shell程序的命令 如cd;type cd==>cd is a shell builtin (built-in:内嵌的)
2.外部命令
在系统某个路径下,一个具有与命令名称对应的文件名的可执行文件的命令 如man;type man==>man is hashed(/usr/bin/man)
注意:1.使用type command 可判断命令式内部或者外部命令
2.使用which command 可查找该命令的位置
获得命令的帮助信息
1.大多数外部命令使用--help的长选项即可 command --help
2.内部命令可以使用help command
重点3.查找命令手册 man command
4.查看命令信息页 info command
5.查看命令自身带的文档(部分)/usr/share/doc/command-version
6.红帽官方文档 redhat.com
7.google
cp (拷贝文件和目录)
格式:#cp source destination
source是个已知文件,destination 如果是文件 cp /bin/cut /tmp/testcut 这表明先将cut复制到/tmp/下 然后更名为testcut
如果是目录 cp /bin/cut /tmp/ 直接复制即可
注意:destination不管是目录或文件 它的父目录必须存在 例如 cp (-r)/bin/cut /tmp/mybin/ 似乎是先创建目录,然后将文件复制到目录下,实际则不然 因为假设成功 路径为/tmp/mybin/cut 请注意此时cut文件的父目录不存在 所以报错
#cp source... destination
如果source字段有多个 那么destination只能是目录
options
-f 强制复制不进行询问是否覆盖原文件 在管理员模式下cp是cp -i(-i选项表示必须询问)的别名 通过#which cp可以查看
-p preserve 保留源文件权限 时间戳 属主 属组等属性
注意:不能保留属主 属组是root的文件属性
-a archive档案 相当于 -rp
-r,-R,--recursive
递归复制多个目录
注意:只是目录
cp -r 目录 文件 (文件和目录重名才发生此情况)此时不能覆盖文件 命令执行错误
cp -r 目录1 目录2 这两个目录均是已存在的目录 执行结果会将目录1放在目录2下,作为目录2的一个子目录
cp -r 目录1 目录2 此时目录2不存在 将目录1复制到目录2的父目录下,并且更名为目录2的名字 目录2的父目录必须存在
bash -x shellname 显示shell每一步执行结果
-n shellname 简单检查shellname文件中的语法
shellname 执行shellname文件
sed (Stream EDitor) 行编辑器
特性
1.非交互式的编辑器
2.没有破坏性,默认不修改文本
3.sed支持sed脚本
功能
搜索匹配的内容并执行各种操作(删除,打印,替换)
格式及其意义
sed "FIRADDR1,LASTADDR2command" inputfile
FIRADDR1,LASTADDR2 从FIRADDR1到LASTADDR2用命令进行处理
此字段还可以是
1.num:第num行
2./pattern1/,/pattern2/ 基本正则表达式
从第一次出现pattern1的行到第一次出现pattern2的行执行command
command
p 打印 print 而非paste
打印匹配的内容
[num]a\string 在第num行后开辟一个新行打印string
[num1,num2]a\string 分别在第num1行到第num2行后开辟一个新行打印string
[num]a\...\n... 表明在第num行后开辟两个新行显示内容 \n 表示换行
i\string 在当前光标所在处上方的每一行上方均显示一个新增行 打印string
! 被匹配到的内容不作处理
s 此处与vim末行模式下的substitute功能类似
sed 常用选项
-n quiet 只显示匹配的内容
-e " " -e " " -e " " inputfile 一次指定多个操作
-i 直接修改文件
-f 先将多个操作写入一个文件,用-f来读取而后实现对其他文件的处理
read (跟用户键盘交互)
1.read VARIABLE_NAME回车
string回车
回车
将string赋值给VARIABLE_NAME
Attention:当变量(假设3个)少于用户输入的数据(假设4个)则
用第一个变量接受第一个数据
用第二个变量接受第二个数据
用第三个变量接受后面的所有数据
2.-p ”string“ 在屏幕上打印string
read -p "value" VARIABLE_NAME 将value赋值给VARIABLE_NAME
exit
在脚本中遇到exit 脚本执行就结束
exit num
指定脚本退出码
0表示正确执行
1-255表示错误执行
elinks [options] [url] 基于文本的web客户端工具
http://www.google.com 交互式查看网页
-dump url 不工作在交互模式下,查看网页。
主要用于输入重定向
-source url 查看网页源代码
wget 非交互式的下载工具
wget [options] url 支持http和ftp
-O(大写) FILE 下载内容保存哪个文件当中
-c 断点续传,有时需要制定位置
-q 工作在静默模式下,不显示任何信息
网络不好时候 还需要
--tries=20 表示试20次
--wait=20 等20秒继续尝试连接
ftp
ftp ip地址
ftp>help 查看ftp模式下的命令
cd 切换ftp服务器目录
ls 查看ftp服务器目录
get 下载一个文件
mget 下载多个文件
put 上传一个文件
mput 上传多个文件
Attention:1.下载或上传的目录均是切换进ftp模式下的目录
2.另外一种登录方式:ftp ftp://用户名:密码@Server address/目录
lftp
lftp 172.16.17.29
lftp:172.16.17.29~> 支持命令补全
!COMMAND 执行Linux本机命令
lcd 切换Linux本机目录
mirror 下载目录
Attention:另外一种登录方式:lftp ftp://用户名:密码@Server address/目录
lftpget 非交互式下载工具
lftpget [options] URL
-c (continue previous download)断点续传
rsync 复制
-r recursive 复制目录
-p 保留文件原有属主属组
-a=-rp
-e ssh FILE USERNAME@SERVER:PATH 将本地文件加密复制到服务器上
Attention:可以当做复制命令用,不同的是,复制之前先比较目标文件和源文件,若相同(已有同名文件),则不复制,若不同,复制
ping 查看到目标主机的连接状况
-c num ping num次
-W num deadline 只等待1S
dig -t A FQDN(FULL Qualified Domain Name,形如xyl.marvel.com) 正向解析 FQDN-->IP
-x IP 反向解析 IP-->FQDN/Alias
host -t A FQDN 正向解析
-t PTR IP 反向解析
traceroute 目标主机 追踪路由
netstat 查看网络链接状态信息
-t 查看跟tcp相关的链接状态
-u 查看跟UDP相关的链接状态
-ul 查看监听UDP的链接信息
-tul 查看监听TCP和UDP的链接信息 TCP条目会出现LISTEN的字样 但是UDP不会出现,不过依然是监听的
-nr 显示路由信息
-n 显示数字 不做正向解析
-p 显示进程号/进程名
curl 支持ftp和http的下载工具
curl [options] URL
-I 显示会话建立内容
-V verbose 显示会话建立详细信息
-O(大)ftp://PATH 下载到本地当前目录下,文件名与源文件相同
-o(小) FILE ftp://PATH 下载到本地FILE文件中
-s silence 静默模式
su (Switch User,切换用户)
su -|-l username (make the shell a login shell)使username登陆 此种切换是完全切换
su username 半切换到另一个用户,保留以前信息
su -|-l redhat -c 'command'
-c 执行命令
w 监控当前登陆用户
who 也是监控当前登陆用户 不同的是w显示的信息更为详细
last 成功登陆服务器及系统重启的相关信息
-n num 最近num此
lastb 显示登陆的失败尝试
lastlog 监视所有用户的最近一次登陆时间
-u username 指定监视username用户
转载于:https://blog.51cto.com/bloodhero/789559