1.指令类1.查看操作1.)查看linux版本#查看内核版本$uname-r#-a查看完整内核#查看系统信息$cat/etc/issue$cat/etc/redhat-release#查看centOS系统Version2.)Findfiles$ll-a#mac下:ls-al#当前搜索指定文件/目录,不递归$ll|grep"name"#按文件/目录名递归查找$find-name"name"#可以指定类型-typef:文件,-typed:目录,mac下找到后加上路径#找到后,可以执行指定的命令,如:$find-typed-name"node-sass"-execrm-rf{}+#'+'用于完成查找和合并处理,否则会提示Nosuchfileordirectorywhiledeleteandrecursive#或者用xargs实现$find-typed-name"node-sass"|xargsrm-rf#按键词搜索$grep-n'keyword'*#只搜索文件,不递归子目录$grep-nr'keyword'#递归搜索,-n显示行号#树路径,需要安装$yum/brewinstalltr??ee$tree-L2#数字表示级别$tree-L2-d#只显示目录3.)查看文件/内容#指定要查找内容的文件$cat"fileName"|grep"keyword"#查看指定的首尾行$head"fileName"#默认10行,-n:查看前n行$tail"fileName"#默认10行,-n:查看后n行$tail-f"fileName"#动态显示文件的新内容,比如log#echo输出带颜色(red=31,green=32,yellow=33,cyan=36,white=37),\e也可以替换为\033$echo-e"\e[36m显示内容\!...\e[0m"#需要转换!字符,或者把双引号"改成单引号'$echo-e"\e[36mSuccess\!\e[0m"#1个粗体,5个闪烁的文字$echo-e"\e[1;32;5m显示内容。..\e[0m"4.)查看路径和服务$pwd#查看当前路径$whereisxxx#查看可执行服务,没用which$env#查看系统环境变量$echo$PATH#显示系统路径配置5.)查看/结束进程#查看职业排名$top#查看指定进程$ps辅助|grepxxx#auxor-ef#-v不包含自身或指定字段$psaux|grepxxx|grep-v'grep'#查看指定字段$psaux|grepxxx|awk'{print$1}'#通过进程目录查看$ll/proc/pid#查看cwd和exe相关信息#优雅结束进程$kill-lPID#强制结束进程$kill-9PID#结束同一个进程组中的所有进程$killall进程名如果系统没有killall命令,可以安装:$apt-getinstallpsmisc#centOS下使用yum安装2.新建操作1.)创建一个newfile$toucha.js2.)Create/appendechocommand'>'usedtocreatenew,'>>'usedtoappendcontent#Createnew,andaddcontent$echo'helloworld'>a.txt#新建文件,一次追加多行$echo-e'line1\nline2'>a.txt#\nBranch#Append,一次追加多行$echo-e'line1\nline2'>>a.txt#Append,多行追加多次,'\'多行连接符$echo'line1'>>a.txt\&&echo'line2'>>a.txtcat可以将一个文件的内容追加到另一个文件$catfile1>>file2#显示并保存为file2$catfile1|teefile2#tee-aappend3.)sed命令sed-i无需打开即可直接查找、替换、删除、添加文件#全局替换,只替换第一个匹配,去掉g$sed-i's/originalstring/newstring/g'a.txt#Mac下-i后加''或'_bak'$sed-i'''s/originalstring/newstring/g'a.txt#删除所有与字符串匹配的行$sed-i'/matchingstring/d'a.txt#在特定字符串的行之后插入一个新行,如果在该行之前插入/a改为/i$sed-i'/specificstring/anewlinestring'a.txt#在文件末尾添加多行内容$sed-i'$aline1\nline2'a.txt4.)vi编辑内容$vi"fileName"#非编辑模式下搜索:输入/,n向后搜索,N向前搜索,dd删除,uu继续复制:按yy,然后p#不退出执行其他命令:!catxxx#searchandreplace:%s/x/y/g#将x替换为y,/g全局替换在vi编辑模式下,移动方向键输出字母或者mac上的delete键无法使用,解决办法如下:$echo-e"setnocp\nsetbackspace=2">>~/.vimrc&&source~/.vimrc如果服务器没有安装vi/vim,也可以使用nano编辑器$nano5。)创建软链接$ln-ssourcetarget#使用绝对路径创建,-f:强制覆盖6.)复制文件/目录$cp-rsourcedest#-f:强制覆盖而不提示7.)移动/重命名$mvsourcetarget#当source和target名称相同时,重命名8.)新建多级目录父目录如果不存在则新建$mkdir-p/x/y/z3,权限操作1.)更改所有者$chown-Ruser:groupfile2.)更改读写权限a.)数字表示:权限由三位数字组成,分别代表User、Group、Other的权限,各由r=4,w=2,x=1叠加$chmod777file#全部有读/写/执行权限$chmod755file#除了所有者,其他组和人只能读/执行$chmod750file#所有者组可以读取/执行,其他人没有b.)字母表示法:a:everyone,u:owner,g:ownergroup,o:Others$chmoda+xfile#Everyone只能执行$chmoda=rwxfile#同777$chmoda-wxfile#去掉write/execution#团队成员可以访问目录$chmodg+rxdir#x可以进入目录,r可以查看目录内容3.)lgitclone下gitkey提示0644权限解决方法gitclone出现0644错误时,说明当前key权限存在安全隐患,修改:$chmod0600~/.ssh/id_rsa4,用户管理1.)新建用户/group$useradd'username'#新建组$groupadd'username'2.)设置密码$passwd'username'3.)切换用户$su-'username'#切换用户和切换用户环境$su'username'#不管ofenvironment#切换并执行Script$su-'username'-c'ls-a'切换用户时如果su提示:此账号当前不可用,或者无法切换,说明该用户被限制登录,先查看:$猫/etc/密码|grep如果'username'是/sbin/nologin或/bin/false,则将其更改为/bin/bash4.)Deleteuser/group#删除用户,-r清空用户目录$userdel-r'username'#删除组$groupdel'username'删除用户时报错:userdel:用户test当前被进程1使用,需要手动删除passwd、shadow、group、gshadow等文件中的用户组信息行$vipw#相当于vi/etc/passwd$vipw-s#相当于vi/etc/shadow$vipw-g#相当于vi/etc/group$vipw-gs#相当于vi/etc/gshadow#删除用户目录$rm-fr'/home/username'5.)查看用户/组$w#显示当前在线用户列表$id#查看当前用户信息$groups#查看当前组中的成员$groups'username'#查看中的成员publishgroup$cat/etc/group#查看所有组$cat/etc/shadowand/etc/passwd#查看所有用户名6.)用户添加sudo权限当提示用户xxx不在sudoers文件中时,需要切换到root权限或者有sudo权限的用户,执行:#修改/etc/sudoers文件$visudo#在根字段下添加一行xxxALL=(ALL:ALL)NOPASSWD:ALL上面的NOPASSWD表示sudo时不需要密码执行,如果需要密码验证只剩下ALL7.)用户直接使用root权限编辑passwd文件,找到用户所在行,将用户ID修改为0$vi/etc/passwd#orvipwcommand#x:把后面的数字改成0hoby:x:0:1002:tommy:/home/hoby:/bin/bash8.)如果有用户加入应用组,每次都需要sudo权限运行一个应用,比如:docker,比较麻烦。您可以将当前用户添加到应用程序所属组:#添加到组$sudogpasswd-a'username''appgroup'#或者$sudousermod-aG'groupname''appgroup'#从组中移除$sudogpasswd-d'username''appgroup'需要注意的是:用户需要注销再登录才能生效。添加的结果可以在/etc/group5中查看,网络运行1.)查看网络$ifconfig#win>ipconfig>ipconfig/flushdns#Refreshdns2.)查看端口/服务#查看本地端口$netstat-an|grep8000#mac&&linux>netstat-an|findstr8000#windows#测试本地/远程端口$telnetx.x.x.x8000$sshx.x.x.x-p8000#测试web服务$curl-Ilocalhost:8080#添加参数-v,显示一个通信进程#查看端口占用信息$lsof-itcp:8000(简称lsof-i:8000)默认不启用telnet,需要在mac下安装:brewinstalltelnet,win下打开功能:控制面板>程序和功能>打开或关闭Windows功能3.)远程连接#远程连接$ssh-p22user@x.x.x.x#远程文件传输$scpx.tar.gzuser@x.x.x.x:remoteDir#-oStrictHostKeyChecking=no参数在第一次连接自动化脚本时忽略确认提示#远程传输目录$scp-rlocalDiruser@x.x.x.x:remoteDir#远程执行批处理scriptsserv=webssh-Tquser@x.x.x.x<
