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/^Y
:y
表示同意当前替换;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 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。