常用终端操作及命令

一、常用终端操作

1.1、常用快捷键

CTRL+A:     移动光标至行首    
CTRL+E:     移动光标至行尾
CTRL+U:     删除光标前所有字符 清除一行命令(输错一行命令的时候使用😂)
CTRL+K:     删除光标后所有字符
CTRL+L:     清屏,相当于指令“clear”    

1.2、文件及目录操作

  • 新建文件 xxx.xx 格式文件:
    • vim xxx.xx
    • touch xxxtouch.xxx
  • 终端重命名:
    • 文件:mv a.text b.text
    • 文件夹:mv a文件夹 b文件夹
  • 拷贝文件:
    • cp -R 源路径 目标路径
    • sudo cp -R 源路径 目标路径
  • 编辑模式退出:
    • 按住 shift 和 :键
    • 输入 wq,保存并退出

1.3、终端路径说明

  • Tips:
    • 直接拖文件夹到终端,可以查看其路径
    • 前面加 cd 可以在终端快速定位到相应的目录
    • Mac 让 Finder 显示路径:在“终端”中输入下面的命令:defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
    • 终端查看安装路径(一般查看 Mac 安装的第三方插件,命令行插件,安装包): which pythonwhich fastlanewhich rubywhich git
  • 终端路径说明:~ 就表示 /Users/username
    • 所以下面两个路径是一样的:
    • ~/library/developer/Xcode
    • /Users/xxxUser/Library/Developer/Xcode

1.4、终端文件编辑

  1. 进入 root 用户模式下: $ sudo su -
  2. Finder 打开目录:
    1. 打开当前目录:$ open .
    2. 打开其他目录:$ open ~/Downloads/
  3. 查看当前登录系统的账户用户名:$ whoami

vim 编辑功能

  1. vim xxx(进入编辑界面,底部可以看到文件基本信息)
  2. 输入 i 就可以开始编辑了(底部出现 -- INSERT -- 正式进入编辑模式)
  3. esc,按住 shift + :,然后输入::wq,退出编辑
  4. normal 模式下,输入 / 可以进行查找

1.5、终端权限相关操作

  • 终端权限设置:把一个文件夹的权限设置为任何用户可读可写。
  • 方法一:
    • 给文件夹添加权限:sudo chown -R "$USER":admin /usr/local
  • 方法二:使用 chmod 777 命令+路径
    • chmod 777 /private/etc/apache2/
    • 如果上面👆的代码不能执行,则使用下面的👇的代码,
    • sudo chmod 777 /private/etc/apache2/

1.6、获取 ip 地址

  • 内网ip:netstat -nr
    • 查看 default 一行 ip
  • 外网ip:curl ifconfig.me
    • 原理是访问 ifconfig.me 网站,然后返回 ip 相关的信息
    • json 格式返回 ip 信息:curl ifconfig.me/all.json

二、常用终端命令

2.1、cd

  • 快速cd到桌面:cd ~/Desktop

2.2、open

  • 用finder打开当前目录:open .
  • 终端打开文本编辑器:open -e
  • 打开Xcode:open -a Xcode
    • open -a Xcode /Users/xxxUser/Desktop/xxx.text
    • open -a Sublime\ text /Users/xxxUser/Desktop/xxx.text
    • open -a TextEdit /Users/xxxUser/Desktop/xxx.text

2.2、curl

linux curl 是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 url 为下载工具。

2.2.1、发起 get 请求:

curl -X GET "http://localhost/api_get.php" -m 30 -v

2.2.2、发起 post 请求,参数type=1:

curl -X POST "http://localhost/api_post.php" -d "type=1" -m 30 -v

2.2.3、直接使用 curl 命令下载文件,和迅雷 say goodbye !

Key Words:终端下载

# 1、下载文件mp4
curl -o test.mp4 https://xxx.com/xxx.mp4

# 2、下载文件
curl -o test.rar 'http://www.osetc.com/test.rar。'

# 3、下载微博视频
curl -o test.mp4 'http://f.us.sinaimg.cn/002Mx3nQlx07fxoW9z4Y01040100k21r0k01.mp4?label=mp4_hd&template=28&Expires=1517971824&ssig=eRcS02wqEc&KID=unistore,video'

# 4、下载网页数据到 web.html 文件中
curl http://www.baidu.com -o baidu.html       

参考:

2.3、find

查找任何扩展名为“png”的文件:(在当前目录及其子目录(用“.”表示)中)

find . -name "*.png"

2.4、du:文件大小计算

文件大小计算:du命令

du -h -d=1 ~/Library/Developer/Xcode/*

2.5、sed:去掉文件里面的空格和换行符

**注意:**使用命令前,为了确保文件编码格式是正确的,先拷贝所有内容到qq输入框内,然后再拷贝出去

  • 去掉空行空格命令:cat cc.sh | sed -e '/^$/d' | sed 's/ //g' > ccccc.sh
  • 查看文件中的空行空格:cat -v a.text
  • 去掉文件中所有的空格:sed 's/ //g' ccc.sh > cccc.sh
cat c.sh | sed -e '/^$/d' | sed 's/ //g' > cc.sh
cat ~/Desktop/cc.sh | sed -e '/^$/d' | sed 's/ //g' > ~/Desktop/ccc.sh

cat cc.sh | sed -e '/^$/d' > ccc.sh
sed '/^\s*$/d' cc.sh
awk NF cc.sh
sed -n '/./p' cc.sh

2.6、ls:备份列表

2.6.1、备份文件夹里面的目录名字

ls -lh /Desktop/XXX > /Desktop/list.text

2.6.2、获取HomeBrew安装的列表

/usr/local/bin/brew list > /Users/xxxUser/Desktop/AppList_Brew.text

2.6.3、获取所有安装的软件列表:

# 1、详细信息,读写权限等
ls -lh /Applications > /Users/xxxUser/Desktop/AppList_All.text
# 2、只有名字的列表
ls -1 /Applications | sed 's/\.app//g' > /Users/xxxUser/Desktop/AppList_all01.text

/usr/local/bin/mas list > /Users/xxxUser/Desktop/AppList/AppList_mas.text
/usr/local/bin/brew cask list > /Users/xxxUser/Desktop/AppList/AppList_cask.text

ls -1 /Users/xxxUser/Desktop/Gitee/组织:生活相关/life_tips/Life_Tips | sed 's/\.app//g' > /Users/xxxUser/Desktop/AppList_all01.text

2.7、wget:本地下载网站

  • 安装wget工具:brew install wget
  • wget下载网站:wget -r -p -np -k -E http://findlifee.com

2.8、date

获取时间相关

#:输出年月日
echo $(date +%Y/%m/%d)  #会输出:2014/02/21

#:输出时分秒
echo $(date +%H:%M:%S)  #会输出:12:50:44

#:输出年月日时分秒
echo $(date +%F-%T)	    #会输出:2018-07-24-16:20:20

#:输出星期
echo $(date +%A)		#会输出:星期五

#:输出当前时间(时分秒)
echo $(date +%T)		#会输出:12:52:51

#:输出当前时间(时分)
echo $(date +%R)	    #会输出:12:45

#:输出当前年月日
echo $(date +%F)	    #会输出:2014-02-21

2.9、sleep

命令控制睡眠时间

sleep .5    # Waits 0.5 second.
sleep 5     # Waits 5 seconds.
sleep 5s    # Waits 5 seconds.
sleep 5m    # Waits 5 minutes.
sleep 5h    # Waits 5 hours.
sleep 5d    # Waits 5 days.

书籍推荐