对于lunix系统而言
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前大部分服务器都是Linux系统,开发人员必不可少的也会使用linux:
- 稳定、安全
- 自由开放
- 简洁
- 开发友好
lunix指令
想要很好的高效使用linux,那么命令将会是不得不学习的部分,有时候使用命令会比编程来的更加高效,也能一定程度上取代一些繁琐的操作。
常见的的命令很多。要全部记住估计不太靠谱,所以有一个很通用的方法,查看一个命令的使用方法;
man指令
man [commend]
查看一个命令的使用方法- man ls
- man curl
- man open
–help:
[commend] --help
查看部分指令帮助说明【并不适用全部命令】- curl –help
通用型命令
ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法:
ls [-alrtAFR] [name...]
参数 :
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
Linux mkdir命令用于建立名称为 dirName 之子目录。
语法:
mkdir [-p] dirName
参数说明:
-p 确保目录名称存在,不存在的就建一个。
cd 切换目录
语法:
cd [dirName]
参数说明:
dirName:要切换的目标目录。
Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
语法
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 –no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 –file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
–no-create 不会建立新档案。
–help 列出指令格式。
–version 列出版本讯息。
- echo 创建带有内容的文件
cat 查看文件内容
语法:cat [-benstuv] [file ...]
参数说明:
-b Number the non-blank output lines, starting at 1.
-e Display non-printing characters (see the -v option), and display a dollar sign (`$’) at the end of each line.
-n Number the output lines, starting at 1.
-s Squeeze multiple adjacent empty lines, causing the output to be single spaced.
-t Display non-printing characters (see the -v option), and display tab characters as `^I’.
-u Disable output buffering.
-v Display non-printing characters so they are visible. Control characters print as
^X' for control-X; the delete character (octal 0177) prints as
^?’. Non-ASCII char-acters (with the high bit set) are printed as `M-‘ (for meta) followed by the character for the low 7 bits.cp 拷贝
语法:
cp [options] source dest
或
cp [options] source... directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:
mv [options] source dest
或者
mv [options] source... directory
参数说明:
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在mv操作要覆盖某已有的目标文件时不给任何指示;
rm命令用于删除一个文件或者目录。
语法
rm [options] name...
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
- find 在文件系统中搜索某文件
- wc 统计文本中行数、字数、字符数
- grep 在文本文件中查找某个字符串
- rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
y语法:
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
-a 显示所有文件和目录
-d 显示目录名称而非内容
-f 在每个文件或目录之前,显示完整的相对路径名称
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。
-r 以相反次序排列
-t 用文件和目录的更改时间排序
-L n 只显示 n 层目录 (n 为数字)
-dirsfirst 目录显示在前,文件显示在后
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-D 列出文件或目录的更改时间。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用”?”号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
- pwd 显示当前目录
- ln 创建链接文件
- more、less 分页显示文本文件内容
- head、tail 显示文件头、尾内容
open 在终端打开文件或者软件
Options:
-a Opens with the specified application.
-b Opens with the specified application bundle identifier.
-e Opens with TextEdit.
-t Opens with default text editor.
-f Reads input from standard input and opens with TextEdit.
-F –fresh Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
-R, –reveal Selects in the Finder instead of opening.
-W, –wait-apps Blocks until the used applications are closed (even if they were already running).
–args All remaining arguments are passed in argv to the application’s main() function instead of opened.
-n, –new Open a new instance of the application even if one is already running.
-j, –hide Launches the app hidden.
-g, –background Does not bring the application to the foreground.
-h, –header Searches header file locations for headers matching the given filenames, and opens them.
-s For -h, the SDK to use; if supplied, only SDKs whose names contain the argument value are searched.
Otherwise the highest versioned SDK in each platform is used.
- curl
man curl
查看
系统管理命令
- stat 显示指定文件的详细信息,比ls更详细
- who 显示在线登陆用户
- whoami 显示当前操作用户
- hostname 显示主机名
- uname 显示系统信息
- top 动态显示当前耗费资源最多进程信息
- ps 命令用于显示当前进程 (process) 的状态。 ps -aux
- du 查看目录大小 du -h –max-depth=1 –exclude=path 用户目录下带有单位显示目录信息,只显示一级,子文件内部不单独展示, 排除path文件/文件夹
- df 查看磁盘大小 df -h 带有单位显示磁盘信息
- ifconfig 查看网络情况
- ping 测试网络连通
- netstat 显示网络状态信息
- clear 清屏
- kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
lsof
是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
主要使用:
lsof -i [46][protocol][@hostname|hostaddr][:service|port]
-i
参数说明:- 46 specifies the IP version, IPv4 or IPv6 that applies to the following address. ‘6’ may be be specified only if the UNIX dialect supports IPv6. If neither ‘4’ nor ‘6’ is specified, the following address applies to all IP versions.
- protocol is a protocol name – TCP, UDP
- hostname is an Internet host name. Unless a specific IP version is specified, open network files associated with host names of all versions will be selected.
- hostaddr is a numeric Internet IPv4 address in dot form; or an IPv6 numeric address in colon form, enclosed in brackets, if the UNIX dialect supports IPv6. When an IP version is selected, only its numeric addresses may be specified.
- service is an /etc/services name – e.g., smtp – or a list of them.
port is a port number, or a list of them.
实例:
lsof -i 4 //ipv4查询
lsof -i tcp // 协议查询
lsof -i @127.0.0.1 // 地址端口查询
lsof -i :80 // 端口查询
打包压缩相关命令
- gzip:
- bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名例:
tar -cvf /home/abc.tar /home/abc 只打包,不压缩
tar -zcvf /home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
关机/重启机器
- shutdown
-r 关机重启
-h 关机不重启 - now 立刻关机
- halt 关机
- reboot 重启