美文网首页Mac Pro我用 Linux程序员
Linux/macOS Shell命令 学习笔记

Linux/macOS Shell命令 学习笔记

作者: SpiffyEight77 | 来源:发表于2017-08-31 15:12 被阅读190次
Shell

Basical control

  1. 更改当前工作目录 $ cd Change Dir
~ stevewayne$ cd Code
Code stevewayne$ pwd
/Users/stevewayne/Code

~ stevewayne$ cd     //更改到~ home目录
~ stevewayne$ cd /   //更改到/ 根目录
  1. 打印当前工作目录 $ pwd Print Working Directory
~ stevewayne$ pwd
/Users/stevewayne
  1. 列出当前工作目录下的所有目录和文件 $ ls list directory contents
~ stevewayne$ ls
Applications            Pictures
CMD             Public
  1. 绝对路径 从 / 目录开始 /Users/stevewayne
    相对路径 .. 符号表示当前目录的父目录 . 符号表示当前目录
~ stevewayne$ cd /
/ stevewayne$ ls 
Users               sbin
Volumes             tmp
/ stevewayne$ cd /Users   //绝对路径
/ stevewayne$ cd ../Users //相对路径
  1. 查看命令及参数的含义$ man + order q退出 n下一个;/+参数 查看参数含义
~ stevewayne$ man rm

Basical control of File and Directory

  1. 复制文件/目录 $ cp
CMD stevewayne$ cp -r dir1 dir //复制目录到指定目录
CMD stevewayne$ cp a.txt b.txt //复制文件到指定文件
  1. 移动文件/目录 $ mv
CMD stevewayne$ mv a.txt /Users/stevewayne/CMD/dir1 //移动文件到指定目录
CMD stevewayne$ mv dir1 /Users/stevewayne/CMD/dir3  //移动目录到指定目录
CMD stevewayne$ mv dir dir2/                        //相对路径
  1. 重命名目录/文件 $ mv
CMD stevewayne$ mv dir dir3     //重命名目录
CMD stevewayne$ mv a.txt aa.txt //重命名文件
  1. 删除文件/目录$ rm
CMD stevewayne$ rm -r b  //删除目录
CMD stevewayne$ rm b.txt //删除文件
  1. 创建文件$ touch$ >
CMD stevewayne$ touch a.txt
CMD stevewayne$ > b.txt
  1. 创建目录$ mkdir
CMD stevewayne$ mkdir dir
  1. 查看文件/目录类型 $ file
CMD stevewayne$ file a.txt
a.txt: empty               //查看文件类型
CMD stevewayne$ file dir
dir: directory             //查看目录类型
  1. 查看文件大小 $ du display disk usage statistics
CMD stevewayne$ du -k a.txt
0   a.txt
CMD stevewayne$ du -m a.txt
0   a.txt
  1. 下载文件 $ wget
CMD stevewayne$ wget http://happypeter.github.io/LGCB/book/
  1. 查看文件 $ cat $ less
CMD stevewayne$ cat index.html
CMD stevewayne$ less index.html //可翻页
  1. 创建隐藏文件/目录
stevewayne$ touch .d.txt
CMD stevewayne$ mkdir .dir
  1. 查看隐藏文件/目录
CMD stevewayne$ ls -a
.       .d.txt      a.txt       dir2
..      .dir        b.txt       index.html
.DS_Store   .swp        dir1

Basical control of Wildcard

  1. *代表全部,*.txt 所有的txt结尾的文件
CMD stevewayne$ ls *.txt
a.txt   b.txt

Packed File

  1. 压缩文件.zip
CMD stevewayne$ ls
a.txt       dir     dir2
b.txt       dir1        index.html
wenruihuadeMacBook:CMD stevewayne$ zip -r dir.zip dir/
  adding: dir/ (stored 0%)
wenruihuadeMacBook:CMD stevewayne$ ls
a.txt       dir     dir1        index.html
b.txt       dir.zip     dir2
  1. 解压文件.zip
CMD stevewayne$ unzip dir.zip
  1. 解压文件tar.gz
dir stevewayne$ tar zxvf wget-1.5.3.tar.gz
  1. 压缩文件tar.gz
CMD stevewayne$ tar zcvf tar.tar.gz index.html/ a.txt/
a index.html
a a.txt
  1. 解压文件tar.bz2
dir stevewayne$ tar jxvf wget-1.11.3.tar.bz2
  1. 压缩文件tar.bz2
dir stevewayne$ tar jcvf wget.tar.bz2 wget-1.5.3.tar.gz/ wget-1.11.3.tar.bz2/
a wget-1.5.3.tar.gz
a wget-1.11.3.tar.bz2
wenruihuadeMacBook:dir stevewayne$ ls
a.txt           wget-1.11.3     wget-1.5.3.tar.gz
b.txt           wget-1.11.3.tar.bz2 wget.tar.bz2
index.html      wget-1.5.3

Redirect

  1. > 把内容输出到文件中
CMD stevewayne$ date >a.txt
wenruihuadeMacBook:CMD stevewayne$ cat a.txt
2017年 7月30日 星期日 16时25分21秒 CST
  1. 把CMD目录下所有的.txt结尾的文件输出到b.txt文档,再把文档中的内容输出到下一个命令中
CMD stevewayne$ ls |grep txt > b.txt
wenruihuadeMacBook:CMD stevewayne$ cat b.txt
a.txt
b.txt
CMD stevewayne$ grep txt <b.txt
a.txt
b.txt
  1. 3个重要文件
    文件描述符为 0 的文件叫做 stdin (标准输入文件),描述符为1的叫做 stdout (标准输出文件),为2的叫 stderr (标准错误输出文件)
CMD stevewayne$ cowsay
Hello Wayne _____________
< Hello Wayne >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
  1. > 会覆盖原本的内容,所以使用 >> 操作
CMD stevewayne$ cat a.txt >> b.txt
wenruihuadeMacBook:CMD stevewayne$ cat b.txt
a.txt
b.txt
2017年 7月30日 星期日 16时25分21秒 CST
  1. $ cat合并文件内容
CMD stevewayne$ cowsay > c.txt
CMD stevewayne$ cat c.txt
 _____________
< Hello Wayne >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
CMD stevewayne$ cat a.txt b.txt >> c.txt
CMD stevewayne$ cat c.txt
 _____________
< Hello Wayne >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
2017年 7月30日 星期日 16时25分21秒 CST
a.txt
b.txt
2017年 7月30日 星期日 16时25分21秒 CST
  1. 输出标准错误输出的文件描述
CMD stevewayne$ ls ccc 2> c.txt
CMD stevewayne$ cat c.txt
ls: ccc: No such file or directory

Pipe line

  1. 去除文件中的重复内容
CMD stevewayne$ cat a.txt
d.txt
a.txt
c.html
b.txt
b.txt
CMD stevewayne$ cat a.txt |uniq|grep txt|sort > c.txt
CMD stevewayne$ cat c.txt
a.txt
b.txt
d.txt

Power

  1. 一般来说,用户只在主目录底下会拥有写权限
~ stevewayne$ cd /
/ stevewayne$ mkdir a
mkdir: a: Permission denied
  1. 超级用户 $ sudo
/ stevewayne$ sudo mkdir a
Password:
/ stevewayne$ ls
Applications            etc
Library             home
......

3.File Mode 三种权限w(写)、r(读)、x(执行)

$ ls -l a.txt
-rw-rw-r-- 1 peter peter 0 Aug 30 11:57 a.txt

1 表示的是硬链接( hard link )的数目。前后两个 peter 分别代表拥有者( owner )名和组( group )名。0 是文件大小,以字节为单位,这里明显是个空文件。接下来是“最后修改时间”。

wrx.png

Chmod(修改文件模式)

1.修改所有者组( owner group ), 组( group ), 其他用户叫( world ) 所有权限。

CMD stevewayne$ ls -l a.txt
-rw-r--r--  1 stevewayne  staff  31  7 30 17:01 a.txt
CMD stevewayne$ chmod 777 a.txt
CMD stevewayne$ ls -l a.txt
-rwxrwxrwx  1 stevewayne  staff  31  7 30 17:01 a.txt

process

1.报告系统当前的进程状态 ps process status

CMD stevewayne$ ps
  PID TTY           TIME CMD
 1046 ttys000    0:00.04 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server
 1048 ttys000    0:00.03 -bash

2.查看系统当前所有进程

CMD stevewayne$ ps aux

3.结束进程

CMD stevewayne$ kill pid
CMD stevewayne$ killall program_name

相关文章

网友评论

  • 翱翔云端:请问MacOS的shell和Linux的shell有什么异同?虽然这两个家伙都从Unix哪里借了很多东西。
  • 2ea9b53c88bb:你好我想请教你帮我解答一些问题。
    SpiffyEight77:@Fil_2cc7 你说吧

本文标题:Linux/macOS Shell命令 学习笔记

本文链接:https://www.haomeiwen.com/subject/rfczkxtx.html