alias d="npm run dev" // 给命令设置别名 ???? alias |grep d // 查看命令是否生效 unalias d // 删除别名 alias // 查看具体命令的别名 cd - // 返回上一次所在的目录 ❤️ man rm // 查看rm的作用和使用方法, 按q退出 ???????? pwd // 查看目录的完整路径 cp 源文件 目标文件 // cp 参数 源文件 目标文件 参数-r表示对目录进行递归操作 常用 cp -a //参数含义: ①-p 保留原始文件属性 ②-d 若对象为"链接文件",则保留"链接文件"属性 ③-r 递归持续复制(用于目录) ④-i 若目标文件存在则询问是否覆盖 ⑤-a 相当于(-pdr) mv 源文件 目标文件 // 用于剪切文件或将文件重命名。如果目标文件存在,移动文件到目标文件。否则则是改名操作 diff file1 file2 // 比较并显示两个文件的差异 ps // 显示当前进程状态 lsof -i :9527 // 显示端口9527所占用的进程。 kill -9 30142 // 根据PID号终止进程 history // 列出最近执行过的几条命令及编号 ???? !513 // 重复执行最近执行过的某条命令, 配合history列出的命令使用。 ???? ctrl+r // 搜索最近使用的命令 ???? date // 显示系统的当前日期和时间 === date "+%Y-%m-%d %H:%M:%S" // 2020-12-22 16:53:34 date -s "20170901 8:30:00" // 将系统的当前时间设置为2017年9月1日8点30分的date cal // 显示日历 ctrl+k // 剪切(删除)光标处到行尾的字符 ctrl+u // 剪切(删除)光标处到行首的字符 ctrl+w // 剪切(删除)光标前的一个单词 ctrl+y // 粘贴ctrl+u/ctrl+k/ctrl+w删除的文本 ctrl+a // 光标回到行首 ctrl+e // 光标回到行尾 ctrl+f // 光标向右移动一个字符(相当于方向键右键) ctrl+b // 光标向左移动一个字符(相当于左向键右键) option+方向键 // 光标移动一个单词 ctrl+c // 中断终端正在执行的任务或删除整行 ctrl+l // 清除屏幕???? mkdir // 创建空白的目录。 可以结合-p参数来递归创建具有嵌套叠层关系的文件目录 mkdir -p a/b/c ctrl+r // 搜索以前使用过的命令 echo 'hello world!' >> 1.txt // 将hello world! 添加到1.txt文本的末尾 vim 1.txt // 打开1.txt rf // 删除文件或目录 :wq // 保存编辑操作退出 :wq! // 保存编辑强制退出 top // 动态的监视进程活动与系统负载等信息 who // 用于查看当前登入主机的用户终端信息 cat // 查看纯文本文件 -n 显示行 more // 查看纯文本文件(内容较多的) find // 按照指定条件来查找文件 find *a* 查找包含a的文件 find . -name test.js // 查找当前目录下的所有test.js文件 ???? find . -name "test*" 支持用通配符 echo $SHELL // 将变量SHELL的值输出到屏幕上 export -p // 打印所有全局变量; export MYEVN=nihaoa哥们"哈哈" // 设置全局变量; echo $MYENV // 查看全局变量 unset MYEVN // 取消某个变量 which cmd // 查看cmd命令的全路径 cmd --help // 查看cmd的帮助命令 wc [option] [file] // 统计文件的行数、单词数或字节数 复制代码
2. linux/mac下自定义命令alias, 永久生效(重启不失效)
编辑~/.bashrc
文件。如果没有就新建touch ~/.bashrc
在末尾每行加入一个alias命令。 打开文件的命令open -e ~/.bashrc
。
function svnUpdate(){ local day=`date "+%Y/%m/%d %H:%M:%S"` if [[ $1 == "" ]] then npm run build && rm -rf node_modules && svn add * --force && svn ci -m "测试"$day && cnpm i && npm run dev else npm run build && rm -rf node_modules && svn add * --force && svn ci -m "$1" && cnpm i && npm run dev fi } alias b='npm run build' alias d='npm run dev' alias cpb='npm run build && rm -rf /Users/andy/document-root/rootDist/*.zip && cp ./*.zip /Users/andy/document-root/rootDist && open /Users/andy/document-root/rootDist/' alias sc='svnUpdate' 复制代码
保存文件后运行: source ~/.bashrc
。 如果还不行的话,说明没有~/.bash_profile文件,或者文件中没有执行.bashrc文件。 (.bash_profile文件是用户登陆终端的时候会自动执行的文件,一般此文件中会调用.bashrc) 如果是这样,需要打开(如果没有的话先创建)文件: ~/.bash_profile 在里面加入一行:source ~/.bashrc
。 退出保存后执行 source ~/.bash_profile
使刚才的配置生效就可以了。
注意: 如果你的终端安装了Zsh,发现使用上面的步骤后并不一定生效,经过排查后发现Zsh有自己的启动默认执行的文件 ~/.zshrc ,要在Zsh中使alias永久生效,则仅需编辑 ~/.zshrc 文件,操作方法跟上面一致。 最后输入alias
查看自己的别名有没有生效吧。
open -e ~/.zshrc source ~/.zshrc 复制代码
建议安装zsh
使用更多的功能。 目前github已经有121kstar了, 足见它的流行。zsh git地址
3. vi命令详解
vi是Linux命令行解码下的文字编辑器。而vim是vi命令的曾倩版,与vi编辑器完全兼容, 建议使用vim。 一般来说, vim可分为三种模式: 普通模式, 编辑模式, 命令模式。
- 普通模式: 用vim命令打开一个文件, 默认状态就是普通模式。 在普通模式中, 不能进行编辑输入操作。 但是可以执行一些操作命令如删除、复制、粘贴等之类的工作
- 编辑模式: 只有按下
i, I, o, O, A, r, R, s, S
(其中i最常用)等字幕后才可以执行录入文字等编辑操作。看文件是否处于编辑模式,就是串口左下角要有插入的标记--INSERT--
或--插入--
。按esc
退到普通模式。 - 命令模式: 在普通模式下。 输入
:
或/
或?
时,光标会自动定位在那一行。 在这个模式中,可以执行保存、退出、搜索、替换。输入:wq
(保存退出)或:wq!
(强制保存退出)。按esc
退到普通模式
4. 如何在linux终端同时运行多个linux命令
在一行中运行两个或多个命令可以节省大量时间,并在Linux中提高效率。 而在linux中,有三种方法可以在一行中运行多个命令; && ||
- 使用
;
符号运行多条命令
cmd1;cmd2;cmd3 复制代码
cmd1将首先运行,不管cmd1运行成功还是出现错误,cmd2都会在它之后运行,当cmd2命令完成时,cmd3将会运行
- 使用
&&
符号运行多条命令
有时候希望确保Linux命令中,只有在前一个命令成功结束时,下一个命令才会运行。这就是逻辑和运算符&&出现的地方:
cmd1 && cmd2 && cmd3 // 短路逻辑 复制代码
当&&前面的一个命令出现错误时,&&分隔的命令会停止执行后面的命令
- 使用
&
符号运行多条命令
后一个命令必须等前一个命令运行完, 不关心是否成功,使用单与号(&)
cmd1 & cmd2 // cmd2必须等cmd1运行完, 不论cmd1是否成功。 cmd1和cmd2都会运行 复制代码
- 使用
||
符号运行多条命令
可以使用逻辑操作符(||)运行命令行,但是只有在前一个命令出现错误时才运行下一个命令
md1 || cmd2 || cmd3 // 这三个命令并行执行 复制代码
如果cmd1运行失败,则运行cmd2。如果cmd2运行成功,cmd3将不会运行。 5. 合并使用&&
和||
运算符 例如,可以检查文件是否存在,并相应地打印消息
[root@localhost ~]# [ -f file.txt ] && echo "File exists" || echo "File doesn't exist" 复制代码
5. ctrl + z挂起后, 恢复的命令是什么
- fg: 将后台程序转入到前台
- bg: 将前台程序转入到后台
作者:andy凌云
链接:https://juejin.cn/post/6907045464940478477
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。