|
总结一些自己常用的linux命令,以防忘记,找起来也省点时间;
PATH环境变量以及常快捷键
- echo $PATH查看当前环境变量
- export PATH=$PATH:/home/ubuntu/ 临时设置环境变量,当前会话有效
- ~/.bashrc件最末添加命令设置环境变量,然后重启shell,或者source ~/.bashrc,永久有效
- tab可以补全命令
- whereis 查找命令所在录
户与户组
- Linux户分三类:root户/虚拟户/普通户
- 添加户时候,系统会动在/etc/passwd件添加户记录
- 在/home录下创建新户录:sudo useradd -d /home/xxx -m xxx ,sudo passwd xxx ,sudo userdel -r xxx ,whoami/groups
- 每个户都有个户组,系统可以对个户组中的所有户进 集中管理。不同Linux系统对户组的规定有所不同,如Linux下的 户属于与它同名的户组,这个户组在创建户时同时创建。
- 户组的管理涉及户组的添加groupadd、删除groupdel和修改 groupmod。组的增加、删除和修改实际上就是对/etc/group件的更 新。
- 与户和户组相关的信息都存放在些系统件中,这些件包括/ etc/passwd, /etc/shadow, /etc/group等
- 每个户都在/etc/passwd件中有个对应的记录——户名: 令:户标识号:组标识号:注释性描述:主录:登录Shell
- 加密后的户令字存放到/etc/shadow件
- “组标识号”字段记录的是户所属的户组,对应着/etc/group件中 的条记录。
件属性与权限操作
- $ ls -l:-rwxr-xr-x 1 ubuntu ubuntu 430540 Dec 23 18:27 example.le对应:件的类型和权限、硬链接个数、User、Group、件、期、 件名
- chown username lename修改user名
- chgrp groupname lename
- chown username.groupname lename
- chown 和 chgrp 都有个 -R 选项,该选项可以来告诉它们递归地 将所属权和组改变应到整个录树中:chown -R ubuntu /home/ubuntu
- Linux的权限只有rwx三种:r(Read,读取):对件,具有读取件内容的权限;对录来说,具有浏览录的权限;w(Write,写):对件,具有新增,修改,删除件内容的权限;对录来说,具有新建,删 除,修改,移动录内件的权限;x(eXecute,执):对件,具有执件的权限;对录了来说该户具有进录的 权限。
- 件类型除了“-”普通件外,“d”录、“l”符号链接、“c”字符专门设备件、“b”块专门设备 件、“p”先进先出、“s”套接字
- 修改件的权限:chmod [ugo][=+-][rwx] lename,三个进制数表示件权限,chmod 777 lename = chmod ugo=rwx lename
- Linux的权限rwx的数值表示:rwx 7,rw- 6,r-x 5,r-- 4,-wx 3,-w- 2,--x 1,--- 0
nd 与 grep
- nd命令是个处不在命令,是linux中最有的命令之。nd命令 于:在个录(及录)中搜索件,你可以指定些匹配条 件,如按件名、件类型、户甚是时间戳查找件
- grep (global search regular expression(RE) and print out the line,全 搜索正则表达式并把打印出来)是种强的本搜索具,它能 使正则表达式搜索本,并把匹配的打印出来
- nd法举例:
- nd path -option [ -print ] [ -exec -ok command ] {} \;
- nd ~ -name "*.txt" -print #在$HOME中查.txt件并显示;
- nd . -name "*.txt" -print;nd . -name "[A-Z]*" -print #查以写字开头的件;
- nd /etc -name "host*" -print #查以host开头的件;
- nd . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个写字和两 个数字开头的txt件。
- grep 'test' d* 显示所有以d开头的件中包含test的;
- grep 'test' aa bb cc 显示在aa,bb,cc件中匹配test的;
- sudo grep -v “#" /etc/host.conf;
- ls -l | grep '^a' 通过管道过滤ls -l输出的内容,只显示以a开头的
- ^ 锚定的开始 如:'^grep'匹配所有以grep开头的;
- $ 锚定的结束 如:'grep$'匹配所有以grep结尾的;
- . 匹配个换符的字符 如:'gr.p'匹配gr后接个任意字符,然后是p;
- * 匹配零个或多个先前字符 如:' *grep'匹配所有个或多个空格后紧跟grep的。 .*起代表任 意字符;
- [] 匹配个指定范围内的字符,如'[Gg]rep'匹配Grep和grep;
- [^] 匹配个不在指定范围内的字符,如:’[^A-FH-Z]rep'匹配不包含A-F和H-Z的个字开头,紧 跟rep的;
- -b 在每前加上其所在的块号,根据上下定位磁盘块时可能会到;
- -c 显示匹配到的的数,不是显示的内容;
- -h 不显示件名;
- -i 较字符时忽略写的区别;
- -l(写的字L) 只列出匹配所在件的件名(每个件名只列次),件名之间换符分隔;
- -n 在每前加上它在件中的相对号;
- -r 对录下递归查询所有录;
- -v 反向查找,只显示不匹配的;
- -w 把表达式作为词来查找,就好像它被\<和\>夹着那样。只适于grep(并所有版本的grep都持这功能,譬如,SCO UNIX就 不持)
tar命令
- tar [-cxtzjvfpPN] 件 录/件
- -c :建个压缩件的参数指令(create 的意思);
- -x :解开个压缩件的参数指令!
- -t :查看 tarle 的件!
- -z :是否同时具有 gzip 的属性?亦即是否需要 gzip 压缩?
- -v :压缩的过程中显示件!这个常,但不建议在背景执过程!
- -f :使档名,请留意,在 f 之后要即接档名喔!不要再加参数!
- -N :后接的期(yyyy/mm/dd)还要新的才会被打包进新建的件中!
- --exclude FILE:在压缩的过程中,不要将 FILE 打包!
ssh和sshd
- sudo apt-get install openssh-server 安装ssh
- sudo ps -e |grep ssh # 有sshd,说明ssh服务已经启动
- sudo service ssh start
- sudo gedit /etc/ssh/sshd_cong配置ssh
vi/vim的三种模式
- 命令模式(Command mode),户刚刚启动vi/vim,便进了命令模式。此状态 下敲击键盘动作会被vim识别为命令,输字符。如我们此时按下i,并不会 输个字符,i被当作了个命令。命令模式只有些最基本的命令,因此仍要依 靠底线命令模式输更多命令;
- 输模式(Insert mode),在命令模式下按下i就进了输模式,按ESC退出输 模式,切换到命令模式。
- 底线命令模式(Last line mode),在命令模式下按下:(英冒号)就进了底线 命令模式。底线命令模式可以输单个或多个字符的命令,可的命令常多。基 本的命令有q(退出程序)、w(保存件)等。按ESC键可随时退出底线命令模 式。

移动光标的法:
- h 或 向左箭头键(←) 光标向左移动个字符
- j 或 向下箭头键(↓) 光标向下移动个字符
- k 或 向上箭头键(↑) 光标向上移动个字符
- l 或 向右箭头键(→) 光标向右移动个字符
- + 光标移动到空格符的下
- - 光标移动到空格符的上
- 如果想要进多次移动的话,例如向下移动 30 ,可以使 "30j" 或 "30↓" 的组合按键, 亦即 加上想要进的次数(数字)后,按下动作即可
- n<space> 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这的 n 个字符。例如 20<space> 则光 标会向后移动 20 个字符距离。
- 0 或功能键[Home] 这是数字『 0 』:移动到这的最前字符处 (常)
- $ 或功能键[End] 移动到这的最后字符处(常)
- H 光标移动到这个屏幕的最上那的第个字符
- M 光标移动到这个屏幕的中央那的第个字符
- L 光标移动到这个屏幕的最下那的第个字符
- G 移动到这个档案的最后(常)
- nG n为数字。移动到这个档案的第 n 。例如 20G 则会移动到这个档案的第 20 (可配合 :set nu)
- gg 移动到这个档案的第,相当于 1G 啊! (常)
- n<Enter> n 为数字。光标向下移动 n (常)
翻
- [Ctrl] + [f] 屏幕『向下』移动,相当于 [Page Down]按键 (常)
- [Ctrl] + [b] 屏幕『向上』移动,相当于 [Page Up] 按键 (常)
- [Ctrl] + [d] 屏幕『向下』移动半
- [Ctrl] + [u] 屏幕『向上』移动半
删除、复制与粘贴
- x, X 在字当中,x 为向后删除个字符 (相当于 [del] 按键), X 为向前删除个字符(相当于 [backspace] 亦即是退格键) (常)
- nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
- dd 删除游标所在的那整(常)
- ndd n 为数字。删除光标所在的向下 n ,例如 20dd 则是删除 20 (常)
- d1G 删除光标所在到第的所有数据
- dG 删除光标所在到最后的所有数据
- d$ 删除游标所在处,到该的最后个字符
- d0 那个是数字的0 ,删除游标所在处,到该的最前个字符
- yy 复制游标所在的那(常)
- nyy n 为数字。复制光标所在的向下 n ,例如 20yy 则是复制 20 (常)
- y1G 复制游标所在到第的所有数据
- yG 复制游标所在到最后的所有数据
- y0 复制光标所在的那个字符到该的所有数据
- y$ 复制光标所在的那个字符到该尾的所有数据
- p, P p为将已复制的数据在光标下贴上,P则为贴在游标上! 举例来说,我前光标 在第 20 ,且已经复制了 10 数据。则按下 p 后, 那 10 数据会贴在原本的 20 之后, 亦即由 21 开始贴。但如果是按下 P 呢? 那么原本的第 20 会被推到变成 30 。 (常)
- J 将光标所在与下的数据结合成同
- c 重复删除多个数据,例如向下删除 10 ,[ 10cj ]
- u 复原前个动作。(常)
- [Ctrl]+r 重做上个动作。(常)
搜索替换
- /word 向光标之下寻找个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字 符串,就输 /vbird 即可! (常)
- ?word 向光标之上寻找个字符串名称为 word 的字符串。
- n 这个 n 是英按键。代表重复前个搜寻的动作。举例来说, 如果刚刚我们执 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下个名称为 vbird 的字符 串。如果是执 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
- N 这个 N 是英按键。与 n 刚好相反,为『反向』进前个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
- :n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 之间寻找 word1 这个 字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常)
- :1,$s/word1/word2/g 或 :%s/word1/word2/g 从第到最后寻找 word1 字符 串,并将该字符串取代为 word2 !(常)
- :1,$s/word1/word2/gc 或 :%s/word1/word2/gc 从第到最后寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给户确认 (conrm) 是否需要取代!(常)
切换到编辑模式
- i, I 进输模式(Insert mode): i 为『从前光标所在处输』, I 为『在前所在的第个空格符处开始输』。 (常)
- a, A 进输模式(Insert mode): a 为『从前光标所在的下个字符处开始输』, A 为『从光标所在的最后个字符处开始输』。(常)
- o, O 进输模式(Insert mode): 这是英字 o 的写。o 为『在前光标所在的下处输新的』; O 为在前光标所在处的上输新的!(常 )
- r, R 进取代模式(Replace mode): r 只会取代光标所在的那个字符次;R会直取代光标所在的字,直到按下 ESC 为;(常)
- [Esc] 退出编辑模式,回到般模式中(常) 编辑模式在vi画的左下角处会出现『--INSERT--』或『--REPLACE--』的字样
命令模式
- :w 将编辑的数据写硬盘档案中(常)
- :w! 若件属性为『只读』时,强制写该档案。不过,到底能不能写, 还是跟你对该档案的 档案权限有关啊!
- :q 离开 vi (常)
- :q! 若曾修改过档案,不想储存,使 ! 为强制离开不储存档案。
- :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常)
- ZZ 这是写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
- :w [lename] 将编辑的数据储存成另个档案(类似另存新档)
- :r [lename] 在编辑的数据中,读另个档案的数据。亦即将 『lename』 这个档案内容加到游标所在后
- :n1,n2 w [lename] 将 n1 到 n2 的内容储存成 lename 这个档案。
- :! command 暂时离开 vi 到指令模式下执 command 的显示结 果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档 案信息!
- :set nu 显示号,设定之后,会在每的前缀显示该的号
- :set nonu 与 set nu 相反,为取消号!
代码中批量添加注释
- 批量注释:Ctrl + v 进块选择模式,然后移动光标选中你要注释的,再按写 的 I 进插模式输注释符号如 // 或 #,输完毕之后,按两下 ESC,Vim 会动将你选中的所有都加上注释,保存退出完成注释。
- 取消注释:Ctrl + v 进块选择模式,选中你要删除的的注释符号,注意 // 要 选中两个,选好之后按 d 即可删除注释,ESC 保存退出。
- 批量注释:使下命令在指定的添加注释。使名命令格式: :起始号,结 束号s/^/注释符/g(注意冒号),如:10,20s#^#//#g,:10,20s/^/#/g
- 取消注释:使名命令格式: :起始号,结束号s/^注释符//g(注意冒号),如: 10,20s#^//##g,:10,20s/#//g

在Linux上安装Git并创建版本库
- sudo apt install git
- git init # 在个新建的录下创建版本库
- git的常命令
- git add [FILES] # 把件添加到版本库
- git commit -m "wrote a commit log infro” # 把件提交到仓库
- git log / git reog
- git status
- git diff [FILES]
- git reset --hard HEAD^ # 回滚到指定版本,上个版本就是HEAD^,上上个版本就是HEAD^^
- git pull
- git push
|