mac基本命令

mac系统命令

创建新用户

useradd testuser 创建用户testuser
passwd testuser 给已创建的用户testuser设置密码
然后切到root用户,创建文件夹/home/testuser

su 用户名
说明:su是switch user的缩写,表示用户切换

Mac下的 tree 命令 输出目录树层结构
mac 下使用brew包管理工具安装 tree

brew install tree

我们可以在目录遍历时使用 -L 参数指定遍历层级
tree -L 2
如果你想把一个目录的结构树导出到文件 Readme.md ,可以这样操作
tree -L 2 >README.md //然后我们看下当前目录下的 README.md 文件
只显示文件夹;
tree -d

xcode-select --install
softwareupdate --list 升级软件

brew install pillow
brew uninstall pillow
brew安装在/usr/local/Cellar/pillow
推荐brew——mac的统一依赖包管理器

查找文件
全局搜
find ~ -iname "screen*"
特定文件夹里面搜
find ~/Library/ -iname "com.apple.syncedpreferences.plist"

如何批量删除文件或者文件夹
find . -name ".gz" -exec rm -rf "{}" ;
可以先执行find . -name "
.gz"查看文件是否选对了再执行

mdfind命令就是Spotlight功能的终端界面,这意味着如果Spotlight被禁用,mdfind命令也将无法工作。
mdfind -name "Photo 1.PNG"
因为mdfind就是Spotlight功能的终端界面,你还可以使用mdfind寻找文件和文件夹的内容,比如通过以下命令寻找所有包含Will Pearson文字的文件:
mdfind "Will Pearson"
mdfind命令还可以通过-onlyin参数搜索特定文件夹的内容,比如
mdfind -onlyin ~/Library plist
这条命令可以搜索Library文件夹中所有plist文件。

终端配置和跳板机SSH设置

可以参考这篇最佳实践:使用SSH连接Linux服务器
或者直接按照以下步骤:

  • 终端配置
    参考MacBook pro使用攻略里的iterm配置

  • 跳板机SSH配置
    本机新增或修改~/.ssh/config 文件,添加如下内容(其中前四行必填,User 值需换成自己的跳板机用户名、IdentityFile 值为指向跳板机的私钥文件的路径):

Host mnet
    HostName mnet.xxx.com
    Port 36000
    User m_xxx  # 请改为你的跳板机用户名
    IdentityFile ~/.ssh/id_rsa  # 请改为你的跳板机私钥文件路径
    ServerAliveInterval 60
    ServerAliveCountMax 10

请注意

1、写入你自己的config文件的时候,把注释全部去掉,要不然报错
2、id_rsa这个文件的权限要配置好,要不然会报UNPROTECTED PRIVATE KEY FILE!错
解决方法:
chmod 400 id_rsa

加了这个配置之后,以后在终端可以直接使用 ssh mnet来连接跳板机。
在mnet跳板机可以新建vim xxx.id_rsa,然后把其他人mnet的xxx.id_rsa内容复制进去,注意核对是否复制完全。
这样就能通过ssh user_00@ip -p 36000 -i xxx.id_rsa
访问服务器了。

linux命令

scp 跨机远程拷贝
scp的具体用法可以参考这篇文章
which virtualenv 查看virtualenv命令路径
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

从远程服务器退出 exit
列出所有隐藏文件 ls -a
显示文件详细详细 ll 具体文件
查当前用户名 whoami
查看当前ip hostname -I或者ip addr show
删除目录 rm -rf dir
删除文件 rm file
创建文件 touch file
创建目录 mkdir dir

log输出
cat error.log | grep -C 5 'nick' 显示file文件里匹配foo字串那行以及上下5行
cat error.log | grep -B 5 'nick' 显示foo及前5行
cat error.log | grep -A 5 'nick' 显示foo及后5行
head -n log2014.log 显示前n行
tail -n log2014.log 显示最后n行
grep -Hni -C 3 bf99bec4 -R . --include='*.log'
H代表文件名 n代表所在行数 C代表匹配前后三行都输出
grep 同时满足多个关键字和满足任意关键字
grep -E "word1|word2|word3" file.txt
满足任意条件(word1、word2和word3之一)将匹配。
grep word1 file.txt | grep word2 |grep word3
必须同时满足三个条件(word1、word2和word3)才匹配。

mysql

Linux 下命令操作
启动: service mysqld start
停止: service mysqld stop
重启: service mysqld restart
查看状态: service mysqld status
查看状态: systemctl status mysqld.service
/etc/init.d/mysql

crtontab

crontab启动:/etc/init.d/cron start ( service cron start )
crontab重启: /etc/init.d/cron restart (service cron restart )
crontab关闭: /etc/init.d/cron stop ( service cron stop )
编辑crontab:crontab -e

apache

启动: service apache2 start
停止: service apache2 stop
重启: service apache2 restart
查看状态: service apache2 status
查看状态: systemctl status apache2.service

配置生效
sudo a2ensite mysite.conf
配置不生效
sudo a2dissite yoursite.conf

vim

Vim常见有两种模式一种是Insert模式,该模式下可以像其它文本编辑器一样正常输入字符;另一种是Normal模式,该模式下Vim监听用户的按键可以对文本进行快速修改。

想要从Insert模式切换到Normal模式只需按下ESC键即可。

想要从Normal模式切换到Insert模式,有很多方法。
最直接的是按下I键,效果是:在当前光标处插入文本。
如果按下A键,效果是:在下一光标处追加文本。

以下均是在Normal模式下的部分 快捷键说明:

光标的快速移动

  • h,j,k,l:左,下,上,右
  • w:光标移动至下一单词首位
  • b:光标移动至当前单词首位,如果光标已经在当前单词首位,就移动到前一单词首位
  • e:光标移动至当前单词末位
  • gg:光标移动至文本首行
  • Shift+g:光标移动至文本尾行
  • :n 跳到n行
  • 整页翻页 ctrl-f ctrl-b f就是forword b就是backward
  • 翻半页 ctrl-d ctlr-u d=down u=up

插入行

  • o:在当前光标的下方插入新一行
  • Shift+o: 在当前光标的上方插入新一行

删除与还原

  • x:删除光标后的一个字符
  • Shift+x:删除光标前的一个字符
  • dd:删除光标所在整行,同时被删除内容存于剪贴板上
  • de:删除光标后的单词内容,同时被删除内容存于剪贴板上
  • dw:删除光标后的单词内容以及之后的空格,同时被删除内容存于剪贴板上
  • u:还原上一个操作(不限于删除)

剪切、复制与粘贴

  • 选定文本块:使用v进入可视模式;移动光标键选定内容
  • y:复制选定块
  • yy:复制光标所在整行 nyy 就是复制当前和下面n行
  • d:剪切选定块
  • dd:剪切光标所在整行
  • p:粘贴文本

查找与替换

  • f+o:在当前行的光标之后查找字母o
  • F+b:在当前行的光标之前查找字母b
  • :/word:全文查找word按下:实际上是进入了Vim的命令模式。查找操作支持正则表达式
  • r+p:将光标之后的字符替换为字母p
  • :s/word/replace:光标所在行的第一个word替换为replace
  • :%s/from/to/:全文查找from并替换为to
  • :1,50s/from/to/:在第1行和第50行之间(含)进行搜索和替换。:45s/from/to/表示仅仅在第45行进行搜索和替换。而1,$行号范围和%是等价的。
  • :%s/from/to/g:全文查找from并替换为to,包含选项g的替换范围更广。??
  • :%s/from/to/gc:全文查找from并替换为to,替换时询问。可以选择y/n/a/q/l/^E/^Yy表示同意当前替换;n表示不同意当前替换;a表示替换当前和后面的并且不再确认;q表示立即结束替换操作;l表示把当前的替换后结束替换操作;^E向上滚屏^Y向下滚屏,用来帮助查看前后内容以决定进行操作。

查找/search 就在全文查找search 搜到之后,按enter,然后按n是向下找 大写N向上找

输入 :s/old/new 只替换光标所在行的第一个匹配串。
输入 :s/old/new/g 只替换光标所在行的所有匹配串。
输入 :#,#s/old/new/g 替换指定行区间的匹配串,其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
输入 :%s/old/new 替换整个文件中每行的第一个匹配串。
输入 :%s/old/new/g 替换整个文件中的每个匹配串。(比较常用)
输入 :%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容