Linux-常用命令

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 :n表示数字,例如:按10,之后按空格键space,光标会向右移动这一行的10个字符(常用)

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



批量增加注释
Ctrl + v 进入块选择模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式输入注释符号如 // 或 #,输入完毕之后,按两下ESC,Vim会自动将你选中的所有行首都加上注释,保存退出完成注释。


批量取消注释
Ctrl + v 进入块选择模式,选中你要删除的行首的注释符号,注意// 要选中两个,选好之后按d即可删除注释,ESC保存退出。

http://jingyan.baidu.com/article/15622f247cc404fdfcbea5e4.html

查看进程

ps aux|grep '13:34' 


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"

top 命令

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才能拷贝整个文件夹,否则就会报错:略过目录,意思就是拷贝不成功



------txt中写入一个词

echo "民行优2" >> /auto_cron/cron-running/dam/article_tag/stopword.txt





26.df – Disk space Free

df查看文件系统中磁盘的使用情况–硬盘已用和可用的存储空间以及其它存储设备。你可以使用df -h将结果以人类可读的方式显示。


28.Top – TOP processes

top命令会默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u 查看某个用户的CPU使用排名情况


-------查看文件夹大小
du -h --max-depth=1 /auto_cron/cron-running/dam





你可能感兴趣的:(技术层-Linux)