SlideShare ist ein Scribd-Unternehmen logo
1 von 43
常用 Mac/Linux 命令分
享
黄亿华
2013-8-18
Linux 知 深似海识 ...
• http://www.aqee.net/useful-unix-commands-for-data-scienc
• cat data.csv | awk -F “|” ‘{ sum += $4 } END
{ printf “%.2fn”, sum }’
• awk -F "|" '{ sum += $4 } END { printf "%.2fn",
sum }' < data.csv
• awk -F "|" '{ sum += $4 } END { printf "%.2fn",
sum }' data.csv
• 《 Unix 程 》编 艺术
Linux 知 深似海识 ...
• 我 只 “常用”们 说
提纲
• 基本知识
• 基 命令础
• 工具进阶
• shell 脚本
基 知础 识
• 文件系统
• 根目录 /
• 用 目户 录 ~ /Users/xxx
• 一些配置常常保存在 ~/.xxx 里 ( 有一个还
地方是 /etc/)
• 例如 .m2 .bashrc .vimrc
• 藏文件 以”隐 .” 始的文件开
境 量环 变
• PATH
• 些目 下的可 行程序无 完整路这 录 执 须
径
• /[s]bin/: /usr/[s]bin:/usr/local/[s]bin
• XX_HOME
• JAVA_HOME JAVA_PATH
权限系统
• root
• 管理员
• user
• 当前用户
• group
• 组
权限系统
• rwxr-xr-x = ?
读 写 行执
有拥
者
4 2 1
同群
组
4 2 1
非群
组
4 2 1
管道
• 重定向到文件 > &> 1> 2>
• 准 入标 输 0 准 出标 输 1 出错误输 2
• curl http://www.dianping.com/ >
index.html
• 重定向到 用程序应 |
• curl
http://code4craft.github.io/blackhole/install.sh |
sh
基 知础 识
• 常用工具安装
• apt/yum
• homebrew (mac)
• 需要安装 gcc(Xcode 或者 command
line tools)
• brew install
基 命令础 - 目 相录 关
• cd
• cd -
• ls
• ls -a -l -h -R
• pwd
• `pwd`
基 命令础 - 控制台输
出
• cat
• more less
• head tail -n
• echo
• open (in Mac)
有趣的命令 in Mac
• say
• pbcopy
• pbpaste
• say `pbpaste`
基 命令础 - 文件操作
• mkdir
• mkdir -p
• cp/scp
• cp -r
• touch
基 命令础 - 文件操作
• mv
• rm
• rm -rf
• ln
• ln -s from to ( 路径名绝对 )
• unlink
常用命令 - 权限修改
• chmod
• chmod -R 755
• chown
• chown user:group file
压缩 / 解压缩
• tar
• tar -czf soure output
• tar -xzf file
• unzip
• rar?
• mac rar http://rar.cn.uptodown.com/mac
找文件查
• spotlight (in Mac)
• find
• find path -name “*.xxx”
• which find in PATH
• grep
• grep -r -v -F -e
磁盘
• df
• df -h
• du
• du -sh
编码
• md5(in Mac) / md5sum(in Linux)
• md5 file
• md5 -s “xxxx”
• base64
• base64 file
• echo “xxx” | base64 -D
工具进阶
• 熟 掌握练 较难
• 抛 引玉,介 几个基本用法砖 绍
系 控统监
• Activity monitor (in Mac)
• ps
• ps -ef | grep java
• top
• -pid -H
• iostat free sar dstat..
网 相络 关
• telnet
• telnet host port
• ] ctrl+d
• nslookup
• dig
网 相络 关
• rsync
• rsync -avz --delete source target
• 性能 于优 scp
• curl
• wget(not installed in Mac)
文本 理处
• sort
• -t -f
• uniq
• wc
• wc -l -w
文本 理处
• awk
• awk -F ',' '{print $0}' file
• awk '!i[$0]++' 去掉重 行复
• sed
• 不怎么会,大家知道就好 ...
文本编辑
• nano
• vi[m]
瑞士 刀军
• lsof
• lsof -i:port
• netcat
• netcat -lp 8888 -e xxx
• netcat host port
• 用法取决于你的想象力
粘合剂
• xargs
• exec
shell 脚本
• 只介 一些 法 的 西绍 语 级别 东
• 以 bash 例为
shell 脚本格式
• 第一行 #!/bin/sh
• 指定 行脚本的程序执
• #!/bin/python ...
• 注意空格和 行!请 换
• a=”xxx” ✔
• a = “xxx” ✖
量变
• :赋值
• a=2
• export
• 用:调
• ${NAME}
保留字符
• 三 引号种
•“” 包括表 式达
•‘‘ 字面量纯
•`` 行并打印执
• 注释 #
保留字符
• (())
• 算数 算运
• for ((i=0;i<100;i++))
• command&
• 步 行异 执
• nohup & 步异 + 后台 行执
数据结构
• 弱类型
• 数组
• arr=(a b c)
• ${arr[1]} 从 1 始开
判断逻辑
• if .. then .. else/elif .. fi
• 其 是根据程序退出状 判断实 态
• 条件判断逻辑 -test 表 式达
• if test “xx” == “xx”
• if [ “xx” == “xx” ]
• [[]] 内置判断,更强大
判断逻辑
• case
循环
• for x [in array] do .. done
• for f in `ls`
• for f in *.java
• for ((i=0;i<100;i++))
循环
• while .. do .. done
• until .. do .. done
• break
• break n 退出的 数层
• continue
入输 / 出输
• 参数: $0~${n}
• $# 参数个数 $@ 参数数组
• read
• read varname
• echo
• printf
函数
• 定 :义 functionName()
• 参数不写在声明中,而是用 $n 用调
• return
• 用:调
• functionName param1 param2
End
• Thanks!

Weitere ähnliche Inhalte

Was ist angesagt?

《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
Will Huang
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧
David Xie
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash Shell
LI Daobing
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
小新 制造
 
1, shell intro
1, shell intro1, shell intro
1, shell intro
ted-xu
 
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置
wensheng wei
 

Was ist angesagt? (20)

《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
 
揭秘家用路由器Ch10 sharing
揭秘家用路由器Ch10 sharing揭秘家用路由器Ch10 sharing
揭秘家用路由器Ch10 sharing
 
Linux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflowLinux Binary Exploitation - Stack buffer overflow
Linux Binary Exploitation - Stack buffer overflow
 
Linux 教育訓練
Linux 教育訓練Linux 教育訓練
Linux 教育訓練
 
Effective linux.2.(tools)
Effective linux.2.(tools)Effective linux.2.(tools)
Effective linux.2.(tools)
 
[Crypto Course] Block Cipher Mode
[Crypto Course] Block Cipher Mode[Crypto Course] Block Cipher Mode
[Crypto Course] Block Cipher Mode
 
Windbg入门
Windbg入门Windbg入门
Windbg入门
 
新北市教師工作坊 -- Bash script programming 介紹
新北市教師工作坊 -- Bash script programming 介紹新北市教師工作坊 -- Bash script programming 介紹
新北市教師工作坊 -- Bash script programming 介紹
 
Shell奇技淫巧
Shell奇技淫巧Shell奇技淫巧
Shell奇技淫巧
 
如何学习Bash Shell
如何学习Bash Shell如何学习Bash Shell
如何学习Bash Shell
 
Linux Binary Exploitation - Heap Exploitation
Linux Binary Exploitation - Heap Exploitation Linux Binary Exploitation - Heap Exploitation
Linux Binary Exploitation - Heap Exploitation
 
Binary exploitation - AIS3
Binary exploitation - AIS3Binary exploitation - AIS3
Binary exploitation - AIS3
 
OpenResty/Lua Practical Experience
OpenResty/Lua Practical ExperienceOpenResty/Lua Practical Experience
OpenResty/Lua Practical Experience
 
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledgeLinux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
 
Effective linux.1.(commandline)
Effective linux.1.(commandline)Effective linux.1.(commandline)
Effective linux.1.(commandline)
 
Openstack swift, how does it work?
Openstack swift, how does it work?Openstack swift, how does it work?
Openstack swift, how does it work?
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
1, shell intro
1, shell intro1, shell intro
1, shell intro
 
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 

Andere mochten auch

Andere mochten auch (9)

Comandos para ubuntu 400 que debes conocer
Comandos para ubuntu 400 que debes conocerComandos para ubuntu 400 que debes conocer
Comandos para ubuntu 400 que debes conocer
 
Web爬虫那点事
Web爬虫那点事Web爬虫那点事
Web爬虫那点事
 
Network Device Development - Part 4: Firewall 103 ~ Protocol Filter & Payload...
Network Device Development - Part 4: Firewall 103 ~ Protocol Filter & Payload...Network Device Development - Part 4: Firewall 103 ~ Protocol Filter & Payload...
Network Device Development - Part 4: Firewall 103 ~ Protocol Filter & Payload...
 
Network Device Development - Part 5: Firewall 104 ~ Packet Splitter
Network Device Development - Part 5: Firewall 104 ~ Packet SplitterNetwork Device Development - Part 5: Firewall 104 ~ Packet Splitter
Network Device Development - Part 5: Firewall 104 ~ Packet Splitter
 
2015.10.05 Updated > Network Device Development - Part 2: Firewall 101
2015.10.05 Updated > Network Device Development - Part 2: Firewall 1012015.10.05 Updated > Network Device Development - Part 2: Firewall 101
2015.10.05 Updated > Network Device Development - Part 2: Firewall 101
 
2015.10.05 Updated > Network Device Development - Part 1: Switch
2015.10.05 Updated > Network Device Development - Part 1: Switch2015.10.05 Updated > Network Device Development - Part 1: Switch
2015.10.05 Updated > Network Device Development - Part 1: Switch
 
Web crawler
Web crawlerWeb crawler
Web crawler
 
計概:Programming Paradigm
計概:Programming Paradigm計概:Programming Paradigm
計概:Programming Paradigm
 
無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享無瑕的程式碼 Clean Code 心得分享
無瑕的程式碼 Clean Code 心得分享
 

Ähnlich wie 常用Mac/Linux命令分享

Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Dahui Feng
 
VIM入门与进阶
VIM入门与进阶VIM入门与进阶
VIM入门与进阶
pan weizeng
 
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
Chang Mt
 
scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎
Ping Yin
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
redhat9
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
mingjin
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
Yiwei Ma
 

Ähnlich wie 常用Mac/Linux命令分享 (20)

Rootkit 101
Rootkit 101Rootkit 101
Rootkit 101
 
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
 
開發流程與工具介紹
開發流程與工具介紹開發流程與工具介紹
開發流程與工具介紹
 
VIM入门与进阶
VIM入门与进阶VIM入门与进阶
VIM入门与进阶
 
Ubuntu
UbuntuUbuntu
Ubuntu
 
Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)
 
Using Shell & Mastering Shell
Using Shell & Mastering ShellUsing Shell & Mastering Shell
Using Shell & Mastering Shell
 
20121111 linux intro
20121111 linux intro20121111 linux intro
20121111 linux intro
 
scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎scrapy+sphinx搭建搜索引擎
scrapy+sphinx搭建搜索引擎
 
4, files & folders
4, files & folders4, files & folders
4, files & folders
 
Elastic stack day-2
Elastic stack day-2Elastic stack day-2
Elastic stack day-2
 
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
Win dbg入门
Win dbg入门Win dbg入门
Win dbg入门
 
Ruby basic
Ruby basicRuby basic
Ruby basic
 
Linux system security
Linux system securityLinux system security
Linux system security
 
Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出Shell,信号量以及java进程的退出
Shell,信号量以及java进程的退出
 
Python 于 webgame 的应用
Python 于 webgame 的应用Python 于 webgame 的应用
Python 于 webgame 的应用
 
PHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelPHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits Level
 
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
 

Kürzlich hochgeladen

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
PUAXINYEEMoe
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
michaelell902
 

Kürzlich hochgeladen (6)

taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 

常用Mac/Linux命令分享