SSH下常用Shell指令 (更新中-2009.09.16)

SSH是许多国外虚拟主机IDC提供的Linux Shell环境.本文给出常用的SSH下Shell指令.
此文为本人原创,绝非从网上复制而来,我相信其精确性可完善性非网络上凌乱文章可比

鉴于篇幅,只给出基本指令,常用参数.所有指令在Bash Shell环境下测试过.
您可以在Shell下,用 “help 指令名称” 或 “man 指令名称” ,或 “指令名称 –help”查看详细帮助.
Note:
1.Linux区分大小写.所有命令一般均为小写.参数也区分大小写
2.参数中若有空格,需要用 ” ” 或 ‘ ‘ 圈起.后者不会解析其中任何Shell变量
3.一般情况下,执行任何命令中,可按 ctrl + C 退出

1.基本操作和文件管理.
pwd
cd
mv
rm // 删除文件/文件夹.加入 -r 参数以递归形式删除文件夹和所有子文件夹
touch //常用于建立新的空文件,若文件已存在,修改其时间为现在
mkdir //建立目录,加入 -p参数可一次建立多层目录
chmod //改变文件权限.对web目录下文件夹,推荐设置为755以下
chown //更改文件所有者,若PHP以Apache Mode方式运行,可能经常需要用此命令改变PHP程序建立的文件宿主
md5sum //不加参数直接计算文件md5或加 -c参数从文件读取md5并校验文件列表完整性
ln //建立文件链接 -s 为符号链接(相当于windows快捷方式)

2.基本SHELL管理
jobs //显示后台执行任务.通常用之获取后台任务代码
ps //显示进程列表,在虚拟主机Shell环境下并不常用
fg //后跟任务代码,后台执行程序.之前可以先用 ctrl +z 将前台执行任务暂停
bg //fg 的反向命令
export // Bash Shell ,通常用于设置环境变量.每次登陆时,此设置将被初始化.可以编辑根目录 .bash_profile 文件,来实现每次登陆自动导入某些环境变量(例如,PASH路径)
exit //推出当前Shell
crontab //计划任务 -l 显示当前. -e 编辑 “* * * * * command “形式 (分别为 分,时,日,月,周)
kill //常用于终止(后台)进程 必须加上-9 参数. 进程号可用 ps 查询
pkill //通过输入进程名称,终止其,方便.同样需要 -9 参数

Note : 通常,有两种方法可以实现 直接新建后台程序. “nohup “或在命令后加 & .推荐两个一起用.

3.文件处理与编辑
cat //显示文件内容 -n 显示行号 .或用 cat 文件列表 > outfile 合并文件.
more //显示文件内容,不如 less方便.
less //最常用显示文件内容命令. -N 显示行号.按 u / d 向 前/后 翻页. q推出 “/ CHARS ” 查找字符串.
tee //直接在命令行下输出内容到文本文件 -a 则为附加在文件末尾
tail //显示文件尾部内容 -n 指定行数.常用于查看日志文件
tr //替换字符串 .建议用 cat file | tr string1 string2 .For example: cat testfile | a-z A-Z 将文件小写转为大写.
vim //最强大的文本编辑器. -b二进制编辑. 进入后,ctrl+ u/d 翻页,:N 跳到第N行…..按 a/A/o/O/i/I 进入编辑模式. 按 ESC进入指令模式, :wq 保存并退出,:w保存,:q!不保存强制退出. vim参数/命令很多,但不难,这里不列了
sed //高级文本处理程序.语法复杂 .For example : sed ‘2,3d” testfile 删除testfile文件2~3行; sed
“s/is/are/g” testfile 将testfile中所有 is 换成 are .可以直接使用正则表达式.
awk //高级文本处理程序.这个语法更复杂 偶都不懂 -_-.

Note : awk 和 sed 号称Linux 文本处理两大利器.若能掌握很有用处

4.备份,还原
tar //最常用的压缩/解压缩文件. 许多参数. -cvf 创建 tar压缩文件 -cvzf 创建 tar.gz格式压缩文件. -xvf 和 -xvzf 分别解压缩 tar tar.gz格式文件.
split //最常用分割文件命令 -b 设置拆分大小 (byte) (可用 -b 6k 输出单个6KB文件) ,-d 生成数字后缀分割包.若要还原文件,用 cat.

Note: Apache2.2以下版本不支持http下载2GB文件.所以备份的web目录超过2GB,需要sllit分割.windows下,可用copy合并

5.MySQL
mysqldump //MySQL备份命令 基本用法:
mysqldump –opt -h HOST -u USER -pPASSWORD DATABASENAME > OUTFILE.sql
请将 HOST,USER,PASSWORD,DATABASENAME 分别换为您数据库的相关信息..注意 -p 与密码之间没有空格. 若不输入 -p,则需要之后在命令行下输入密码. 若计划导入的MySQL版本比导出版本低,需要用 –compatible=NAME 参数打开兼容备份模式 (NAME可选值包括ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options,推荐mysql40).-d 为只导出数据库结构,不导出内容 .
mysql //Shell下MySQl命令 mysql -u username -p password dbname .等入控制台后,可执行sql语句.
用 mysql -u USER -pPASSWORD -h HOST database < backup.sql 是MySQL恢复的最常用方法. 6.搜索. find //最常用 搜索特定字符串文件/目录 . 可选择项目包括 -name -path -type . grep //强大的搜索文件中字符串命令.参数 -a 忽略二进制数据. -d 搜索目录 -i 忽略大小写.支持正则表达式 Note: grep 两个常用参数 -e ,-f .分别相当于 egrep fgrep .fgrep 不支持正则,所有字符(包括统通配符 *,? 都作为本义解释),即为查找完全匹配字符串. egrep 为扩展的正则查询,支持全部正则表达式,与 grep相比,增加了对 ? + | () 正则符号支持.如果用正则搜索,建议使用 egrep. 关于正则表达式子,简要符号参考. . 代表任意一个字符 ^ 行的开始 $ 行的结束 * 匹配(左侧)零个或多个字符 ? 匹配零个或一个字符 + 匹配一个或多个字符 [] 匹配一个范围内字符 .例: [abc]匹配 a或 b或c ,[a-zA-Z]匹配任意一个字母 . [^]匹配一个不在其中范围字符 \ 转义符 {n,m} 重复左侧字符 n~m次.另有 {n} {n,} \w 相当于 [a-zA-Z0-9] () 子正则表达式 | 选择 [:NAME:]匹配特定字符.例如 [:space:] 匹配所有空白字符 [:digit:] 匹配数字. 正则优先级( 从高到低) \ (), (?:), (?=), [] *, +, ?, {n}, {n,}, {n,m} ^, $, \anymetacharacter | 7.网络命令 ftp //FTP指令,ftp HOST 或 直接ftp 进入控制台 之后可执行标准FTP命令. exit 退出. lynx //强大的文本浏览器, 许多参数. 支持密码验证,GET/POST提交等 . up down 切换链接. left right 后退/前进 curl //强大的命令行HTTP访问工具.完全支持Cookies -b -c 分别指定读取/生成的cookies文件. nslookup // 功能强大. 参数包括 set type=[A|NS] ,server 指定查询服务器 dig //域名查询高级命令 -t 指定类型( A MX NS) -b 指定查询主机.比nslookup查到信息多 scp //通过SSH,远程与另一个主机交换文件.非常好用. ssh //SSH命令 ping //功能同 windows下 mail //最基本的邮件命令. mail -s "MAIL TITLE" [email protected] ,然后在命令行下输入邮件内容. 最后一行输入 . 回车.回车 发送.或用 -f 指定邮件文件位置. pine //最强大的邮件工具 -attach 增加附件.或直接在界面下操作 wget //强大的下载工具.速度极快 -c 断点续传. -O 指定输出文件名

0 Responses to “SSH下常用Shell指令 (更新中-2009.09.16)”


Comments are currently closed.