shell脚本
---------删除
do: 删至行首 (数字0)
d$: 删至行尾 同 D
dd: 删除光标所在的行
法一: 单行删除,:1(待删除行)d 多行删除 ,:1,10d 法二: 光标所在行,dd 光标所在行以下的N行,Ndd 方法1: 光标放到第6行, 输入:2yy 光标放到第9行, 输入:p 此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面。 方法2: 命令行模式下输入 6,9 co 12 复制第6行到第9行之间的内容到第12行后面。 方法3: 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代 光标移到起始行,输入ma 光标移到结束行,输入mb 光标移到粘贴行,输入mc 然后 :'a,'b co 'c 把 co 改成 m 就成剪切了 要删除多行的话,可以用 :5, 9 de VIM常用命令 常用命令 1) 光标命令 k,j,h,l---上下左右光标移动命令,虽然可以在Linux中使用键盘右边的四个光标键, 但是记住这四个命令还有非常有用的,也就是右手在键盘上放置的位置部分 nG ----n为行数,该命令立即使光标跳到指定行。 Ctrl+G-----光标所在位置的行数和列数报告 w,b------使光标向前或向后跳过一个单词 2) 编辑命令 i,a,r -------在光标的前,后,上方插入字符命令(i=insert,a=append,r=replace) cw,dw------ 改变(置换)/删除光标所在处的单词的命令 (c=change,d=delete) x,d$,dd -----删除一个字符,光标所在处到行尾的所有字符,和整行的命令 3) 查找命令 /string, ?string-----从光标所在处向后/向前查找相应的字符串的命令 4)拷贝复制命令 yy,p -----拷贝一行到剪贴板/取出剪贴板中内容的命令 常见问题及应用技巧 1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分 vi file :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分 :3r /etc/passwd 这是在指定的行号后面读入文件内容 另外一种方法删掉文件中所有的空行及以#开始的注释行 #cat squid.conf.default | grep -v '^$' | grep -v '^#' 2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘 vi file :w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1 :20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1 3) 用VI编辑一个文件,但需要删除大段大段的内容 vi file Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G. :23,1045d 假定两次行号为23和1045,则把这几间的内容全删除 也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除. 4) 在整个文件或某几行中在行首或行尾加一些字符串 vi file :3,$s/^/some string / 在文件的第一行至最后一行的行首前插入some string :%s/$/ some string/g 在整个文件每一行的行尾添加 some string :%s/string1/string2/g 在整个文件中替换string1成string2 :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2 Note: s为substitute,%表示所有行,g表示global 5) 同时编辑两个文件,在两个文件中拷贝剪贴文本 vi file1 file2 yy 同时打开两个文件,在文件1的光标所在处拷贝所在行 :n 切换到文件2 (n=next) p 在文件2的光标所在处粘贴所拷贝的行 :N 切换回文件1 6) 替换文件中的路径 :%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin 或者用 :%s//usr/bin//bin/g 在'/'前用符号指出'/'是真的单个字符'/' 7) 用 vi 多行注释 如果要给多行程序作注释,一个笨办法就是 插入 # ,然后用 j 跳到下一行用 . 命令,重复上个命令。如果要注释几百行,这样的方法恐怕太愚蠢了。一个聪明的办法是: :.,+499 s/^/#/g
-------复制
cp /home/地址,需复制的文件 /auto_cron/cron-tocheck/复制的地址
------显示磁盘空间
df-h
---------撤销
按u——取消最近一次操作,可按多次,类似撤销
------撤销 撤销
ctrl + R
---------光标定位
G 移至行行首
nG 移至第n行行首
n+ 移n行行首
n- 移n行行首
n$ 移n行(1表示本行)行尾
0 所行行首
$ 所行行尾
^ 所行首字母
h,j,k,l 左移移移右移
H 前屏幕首行行首
M 屏幕显示文件间行行首
L 前屏幕底行行首
) :光标移至句尾
( :光标移至句首
}:光标移至段落最后一个字母
{:光标移至段落第一个字母
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
光标移动
h或左箭头:光标向左移动一个字符,数字和字母合起来连用,5h表示向左移动5个字符,以下三个一次类推
j或右箭头:光标向下移动一个字符
k或上箭头:光标向上移动一个字符
l或下箭头:光标向右移动一个字符
ctrl+f :光标向下移动一页
ctrl+b:光标向上移动一页
ctrl+d:光标向下移动半页
ctrl+u:光标向上移动半页
+ :光标移动到非空格的下一行
- :光标移动到非空格的上一行
n
0或者home键:光标移动到这一行的最前面(常用)
$或者end键:光标移动到这一行的最后面(常用)
G :移动到文件的最后一行(常用)
nG :n表示数字,例如:10G,光标移动到文件的第10行(常用)
gg :光标移动到文件的第一行(常用)
n+回车键 :光标向下移动n行,例,先按10,接下来按回车,光标就会向下移动10行(常用)
:n+回车键 : n代表数字,光标移动到第n行(常用)
--用vim清空文件内容
在命令模式下,首先执行 gg
这里是跳至文件首行
再执行:dG
这样就清空了整个文件!
-----vim 删除 从当前行到最终行
删除所有内容(先用G转到文件尾) ,使用:
:1,.d
--------替换
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
----------------按文件的修改时间排序
ls -lt 时间由新到旧递减
ls -ltr 时间由就到新递增
按/键——输入指定的字符串,从当前光标处向下查找。
按?键——输入指定的字符串,从当前光标处向上查找。
----------修改表名
mv: mv cust_info_2.sql cust_info_3.sql
----------移动文件
mv:mv cust_info_2.sql /auto/running
-----去除搜索后的高亮显示
:noh
------注销代码
在27 - 30行添加//注释
:27,30s#^#//#g
在27 - 30行删除 //注释
:27,30s#^//##g
在10 - 20行添加 #注释
:10,20s/^/#/g
在10 - 20行删除 # 注释
:10,20s/^/#/g
--------查询文件内容
grep: grep active_user_month /auto_cron/cron-running/bidw/dms/*
-------------整数比较
-eq 等于
-ne 不等于
-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于
-----------解压文件
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
----------删除shell脚本
rm 文件名字
---------删除文件夹
rm -rf 目录名字
-----------换账户
su + 账户名
输入密码
----------发布html的方法
1、将文件夹放到自己的目录底下
2、scp -r /home/.../文件名/ 10.....:/var/www/html/.../
--------显示文件个数
ls |wc –l
-----------显示行数
set nu
# Ctrl + l - 清屏
# Ctrl + A - 光标移到行首
# Ctrl + E - 光标移到行尾
# Ctrl + W - 清除光标之前一个单词
# Ctrl + K - 清除光标到行尾的字符
# Ctrl + T - 交换光标前两个字符
# Ctrl + V - 输入控制字符 如Ctrl+v ,会输入^M
# Ctrl + F - 光标后移一个字符
# Ctrl + B - 光标前移一个字符
# Ctrl + H - 删除光标前一个字符
# N++F - 光标后移N个单词,N为1时可省略
# N++B - 光标前移N个单词,N为1时可省略
--------看文件大小
hadoop fs -du /dw/dml/person_recom|awk ' { SUM += $1 } END { print SUM/(1024*1024*1024) }'
命令行复制粘贴快捷键
1. 在控制台下(也就是本台电脑的图形化界面下的,那个命令行):
复制命令:Ctrl + Shift + C 组合键.
粘贴命令:Ctrl + Shift + V 组合键.
2.在终端下 :(这个是远程登陆的命令行,也就是你要操作的电脑在远程)
一般用的是这个但是这个insert键,如果是笔记本的话必须借助功能件组合才能打出来,我电脑是联想的功能键是Fn
复制命令:Ctrl + Insert 组合键 或 用鼠标选中即是复制。
粘贴命令:Shift + Insert 组合键 或 单击鼠标滚轮即为粘贴。
ROOT:存放ROOT用户的相关文件
HOME :存放普通用户的相关文件(新建的用户)
BIN:存放常用命令的目录 cd 切换目录 ls dir
SBIN:存放要具有一定权限才可以使用的命令
MNT:默认挂载光驱和软驱的目录
ETC:存放配置相关的文件,mysql,tomcat,
USR:文件默认安装的文件夹,类似XP的program files
VAR:存放经常变化的数据,如网页,apache
BOOT:存放引导相关的文件
显示当前在哪个目录:pwd
用户管理
添加用户 useradd useradd xiaoming
设置密码 passwd passwd xiaoming 系统会提示输入新密码,两次输入
提示符#表示root用户 $ 表示普通用户
删除用户 userdel userdel xiaoming 只是删除用户名称 OR userdel -r xiaoming 删除用户以及用户主目录
init 运行级别(XP的安全模式与正常的启动模式)
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户有网络服务
4 系统未使用保留多用户
5 图形界面 startx
6 系统重启
常用的是3与5,要修改可改文件 /etc/inittab的
id:5:initdefault:这一行中的数字
su 切换用户,或者 logout
设为6后一直重启,如何更改:
在启用GRUB的时侯,按“e”,选中第二项,按“e”,进入修改界面,在最后输入空格+1,这个就是表示1号运行级别。只能用1来启动!,最后按b 。
用运行级别1 可以绕过ROOT密码,不需要密码就可以用,用passwd就OK
如何找回丢失密码
ls -a 显示隐匿文件 -l显示长列表格式
mkdir 建立目录
rmdir 删除空目录 如果有内容?
TAB 命令补全 相同的话,可以按两次
touch 建立空文件
cp cp -r dir1 dir2 递归复制
mv
rm 参数
rm -rf
ln
ln -s
more 分页显示不能前翻 crtl+pageup 空格向后翻;
less 分页显示,可以向前翻
grep在文本中查询 grep -n (显示行数)"关键字" 文件名称
| 管道命令 在LINUX和UNIX系统中,|就是管道命令,怎么理解?
把上一个命令的结果交给|的后面的命令处理
即上一个处理的结果就是下一个命令的输入
man 找男人 相当于DOS 下的HELP
find 搜索文件及目录
find /-name aaa.java /表示根目录,
find /auto_cron/cron-running/bidw/st02/user_stats/ -name"bidw-sql-st-st02_stock_user_stats_day.sql" | xargs grep"dms.\|ods.\|st.\|from\|join\|FROM\|JOIN"
find /root/ -name aaa.java 锁定范围
数据重定向 将操作流保存到另一个地方
grep -n (显示行数)"关键字" 文件名称 > kkk.bak >输出到
ls -l > a.txt
ls -al
>> 追加写
>覆盖写
注销:
exit
关机:
shutdown -h now
重启:
reboot
帮助:
man ls
man -f ls
info ls
时间:
date +%Y/%m/%d
更改文件用户组
chgrp -R user file/d
更改文件用户
chown -R user file/d
更改文件属性
chmod -R 777 file/d
当前路径
pwd
建新目录
mkdir d
删除空目录
rmdir d
复制
cp -a 源文件 目标文件
删除
rm -rf 文件/目录
移动或者重命名
mv 源文件 目标文件
查看文件
cat -n file
tac file
nl file
more file
less file
head -n 10 file
tail -n 10 file
查看二进制文件
od file
创建文件
touch file
搜索命令文件
which name
搜索特定文件
whereis name
locate name
查找文件
find -name file
查看磁盘大小
df -h
查看目录容量
du -h 目录
挂载目录
mount --bind 目录a 目录b
卸载挂载目录
umount 目录b
压缩和解压
tar -zcvf test.tar.gz 目录
tar -zxvf test.tar.gz
tar -jcvf test.tar.bz2 目录
tar -jxvf test.tar.bz2
增加用户
useradd -u group -m user
修改密码
passwd user
删除用户
userdel user
增加用户组
groupadd usergroup
删除用户组
groupdel usergroup
切换用户
su user
查看用户组
groups
切换有效用户组
newgrp group
执行系统命令(visudo里允许情况下)
sudo
用户登录历史
last or lastlog
正在登录用户
w or who
检查用户设置文件信息
pwck
当前作业放后台暂停
ctrl+z
当前后台作业
jobs -l
后台作业拿到前台
fg %1
后台暂停作业后台运行
bg %1
内存正在使用的进程
ps aux
进程树
pstree -Aup
进程cpu/mem等状态
top
删除进程
kill -9 %1
kill -9 pid
killall -9 httpd
系统内存
free -m
网络监控
netstat -tulnp
系统信息
uname -a
ps aux|grep '13:34'
top -bc|grep"/auto_cron/cron-running/dam/user_center/bidw-sh-dml-user_logo.sh"
使用df命令
看磁盘挂载
设置注释代码颜色
vi ~/.vimrc 加入如下内容
hi Commentctermfg =blue
ps -ef |grep 'spark-shell --driver-memory'
kill -s 9 65714
:linux中拷贝文件夹时,一般要加参数: -r 或者 -af才能拷贝整个文件夹,否则就会报错:略过目录,意思就是拷贝不成功
echo "民行优2" >> /auto_cron/cron-running/dam/article_tag/stopword.txt
df
查看文件系统中磁盘的使用情况–硬盘已用和可用的存储空间以及其它存储设备。你可以使用df -h
将结果以人类可读的方式显示。
top
命令会默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u
查看某个用户的CPU使用排名情况