Linux常用命令

Linux命令

本文只是列举提供了一些常用的linux命令。

nm 命令:列举出该目标中定义的符合要求的符号

-bash-3.1# nm -An xxx/xxx/prcs_ web | grep ldns // 查看prcs_ web文件中符号ldns

dd命令: 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

-bash-3.1# dd if=/dev/zero of=bigfile. img count=6 bs=1G  //使用/dev/zero将该文件传输6次每次1G , bs=1M 为1MB;bs=1024为1024bytes
-bash-3.1# dd if=/co1lectdata/debug/ . files1 of=/co1lectdata/debug/ . files count=1 bs=1M // 使用/ dev/zero将该文件传输1次每次1MB

head命令:可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容

-bash-3.1# head -C 728336 /collectdata/debug/.files1 > /collectdata/debug/ . files //将文件. files 1开头部分的内容,按照728336显示字节大小写到. files

df命令:用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计

-a, --all 包含所有的具有 0 Blocks 的文件系统
--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
-i, --inodes 列出 inode 资讯,不列出已使用 block
-k, --kilobytes 就像是 --block-size=1024
-l, --local 限制列出的文件结构
-m, --megabytes 就像 --block-size=1048576
--no-sync 取得资讯前不 sync (预设值)
-P, --portability 使用 POSIX 输出格式
--sync 在取得资讯前 sync
-t, --type=TYPE 限制列出文件系统的 TYPE
-T, --print-type 显示文件系统的形式
-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
--help 显示这个帮手并且离开
--version 输出版本资讯并且离开

例子:-bash-3.1# df -h 1 grep "/collectdata" 1 awk '{print $5}’ //查找df -h后co1lectdat a字段行第5列数据

locate命令:用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录

-bash-3.1# locate /etc/sh

ab命令:全称为:Apache bench 。是Apache自带的压力测试工具

ab命令非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。可以测试安装Web服务器每秒种处理的HTTP请求。

-bash-3.1# ab -c 10 -n 1000000 http://172.16. 30. 53:8899/index.htm1 //打流量命令,进行压力测试

ps aux命令:显示当前正在运行的进程

-bash-3.1# ps aux | grep syst  //syst对应的是c1i中的access-list

gdb命令:GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具

-bash-3.1# gdb -p pid   //进入pid为xxx的进程

free命令:会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区

-bash-3.1# free -b
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes
K = kilos
M = megas
G = gigas
T = teras

-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

tcpdump命令:Linux tcpdump命令用于倾倒网络传输数据。

执行tcpdump指令可列出经过指定网络界面的数据包文件头。

选项:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

-bash-3.1# tcpdump -i eth0 ether src net 28:de:e5:96:20:06  //过滤源mac:28:de:e5:96:20:06的数据包
-bash-3.1# tcpdump -ni any -v port 21 //过滤源port 21的数据包

iptables命令:管理Linux防火墙规则

使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。
-bash-3.1# iptables -A INPUT -s ip_address -j DROP
-bash-3.1# iptables -nvL//查看iptables的链

sz命令:是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。

-a    : 以文本方式传输(ascii)。
-b    : 以[二进制](https://so.csdn.net/so/search?q=二进制&spm=1001.2101.3001.7020)方式传输(binary)。
-e    : 对控制字符[转义](https://so.csdn.net/so/search?q=转义&spm=1001.2101.3001.7020)(escape),这可以保证文件传输正确。
-bash-3.1# sz test123.txt (文件名称) //将文件下载到本地

rz命令:在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

常见参数:
-b:以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.)
-e:对所有控制字符转义。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)
如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:

-bash-3.1# rz -be //从本地上传文件

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

-bash-3.1# curl -0 http://172.16.30.53/test. _2M --1imit 10k //从服务端172. 16.30.53获取test_ _2M限制传输速率不大于10K

-A/--user-agent <string>              设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>                    操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>            断点续转
-D/--dump-header <file>              把header信息写入到该文件中
-e/--referer                                  来源网址
-f/--fail                                          连接失败时不显示http错误
-o/--output                                  把输出写到该文件中
-O/--remote-name                      把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                      检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                                    静音模式。不输出任何东西
-T/--upload-file <file>                  上传文件
-u/--user <user[:password]>      设置服务器的用户和密码
-w/--write-out [format]                什么输出完成后
-x/--proxy <host[:port]>              在给定的端口上使用HTTP代理
-#/--progress-bar                        进度条显示当前的传送状态

jobs命令: 用于显示Linux中的任务列表及任务状态,包括后台运行的任务。

该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应于一个或者多个进程号。
在Linux系统中执行某些操作时候,有时需要将当前任务暂停调至后台,或有时须将后台暂停的任务重启开启并调至前台,这一序列的操作将会使用到 jobs、bg、和 fg 三个命令以及两个快捷键来完成。
选项:
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。

-bash-3.1# jobs 

bg/fg命令:用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。

与bg命令一样,若后台任务中只有一个,则使用该命令时,可以省略任务号
-bash-3.1# fg (参数)//恢复挂载在后台的进程
-bash-3.1# fg 1

pstree命令:命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程

-bash-3.1# pstree -np //查看所用进程
-a 显示该进程的完整指令及参数, 如果是被记忆体置换出去的进程则会加上括号
-c 如果有重覆的进程名, 则分开列出

快捷键

CTRL + ALT + T: 打开终端
TAB: 自动补全命令或文件名
CTRL + SHIFT + V: 粘贴(Linux中不需要复制的动作,文本被选择就自动被复制)
CTRL + SHIFT + T: 新建标签页
CTRL + D: 关闭标签页
CTRL + L: 清楚屏幕
CTRL + R + 文本: 在输入历史中搜索
CTRL + C: 终止当前任务
CTRL + Z: 把当前任务放到后台运行(相当于运行命令时后面加&)
Ctrl+A   //将光标移动到该行第一 -位
Ctrl+E  //将光标移动到该行末位

ls命令:用于显示指定工作目录下之内容

-bash-3.1# ll -h
-a 显示所有文件及目录 (**.** 开头的隐藏文件也会列出)
-d 只列出目录(不递归列出目录内的文件)。
-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
-r 倒序显示文件和目录。
-t 将按照修改时间排序,最新的文件在最前面。
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 递归显示目录中的所有文件和子目录。

cd命令:更改当前工作目录

(~)也表示为 home 目录 的意思,(.)则是表示目前所在的目录,(..)则表示目前目录位置的上一层目录
-bash-3.1# cd directory_name

pwd命令:显示当前工作目录的路径

--help 在线帮助。
--version 显示版本信息。
-bash-3.1# pwd

mkdir命令:创建一个新目录

-p 确保目录名称存在,不存在的就建一个。
-bash-3.1# mkdir directory_name

rm命令:删除文件或目录

-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
-bash-3.1# rm file_name rm -r directory_name
-bash-3.1# rm -rf file_name

cp命令:复制文件或目录

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
`-r` 或 `--recursive`:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。
`-i` 或 `--interactive`:在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答 **y** 时目标文件将被覆盖。。
`-u` 或 `--update`:仅复制源文件中更新时间较新的文件。
`-v` 或 `--verbose`:显示详细的复制过程。
`-p` 或 `--preserve`:保留源文件的权限、所有者和时间戳信息。
`-f` 或 `--force`:强制复制,即使目标文件已存在也会覆盖,而且不给出提示。
-l:不复制文件,只是生成链接文件。
-bash-3.1# cp file_name new_file_name cp -r directory_name new_directory_name

mv命令:移动文件或目录

-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

-bash-3.1# mv file_name new_file_name mv directory_name new_directory_name

cat命令:查看文件内容

-A:--show-all 等价于 -vET
-b:--number-nonblank 对非空输出行编号,即在每行前显示所在行号
-e:等价于 -vE
-E: --show-ends 在每行结束处显示 $
-n:--number 对输出的所有行编号,即在每行前显示所在行号
-s:--squeeze-blank 不输出多行空行
-t:与 -vT 等价
-T:--show-tabs 将跳 字符显示为 ^I
-u :(被忽略)
-v: --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开

-bash-3.1# cat file_name

grep命令:命令用于查找文件里符合条件的字符串或正则表达式。

常用选项(只记录常用的一些选项,更多选项可以去https://www.runoob.com/linux/linux-comm-grep.html寻找):
-i:忽略大小写进行匹配。
-v:反向查找,只打印不匹配的行。
-n:显示匹配行的行号。
-r:递归查找子目录中的文件。
-l:只打印匹配的文件名。
-c:只打印匹配的行数。

-bash-3.1# ll | grep prcs_web

top命令:经常用来监控linux的系统状况,比如cpu、内存的使用

-d <秒数>:指定 top 命令的刷新时间间隔,单位为秒。
-n <次数>:指定 top 命令运行的次数后自动退出。
-p <进程ID>:仅显示指定进程ID的信息。
-u <用户名>:仅显示指定用户名的进程信息。
-H:在进程信息中显示线程详细信息。
-i:不显示闲置(idle)或无用的进程。
-b:以批处理(batch)模式运行,直接将结果输出到文件。
-c:显示完整的命令行而不截断。
-S:累计显示进程的 CPU 使用时间。

同时在top时,可以使用Shift+m或Shift+f 对top中的字段进行降序显示,如想要查看进程中物理内存的变化使用shift+f进入字段选取页面,t选中SHR后回车就可看到进程物理内存的降序显示。
-bash-3.1# top -d 1

find命令:搜索文件或目录

-name pattern:按文件名查找,支持使用通配符 * 和 ?。
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
-user username:按文件所有者查找。
-group groupname:按文件所属组查找。

用于时间的参数如下:
-amin n:查找在 n 分钟内被访问过的文件。
-atime n:查找在 n*24 小时内被访问过的文件。
-cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。
-ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。
-mmin n:查找在 n 分钟内被修改过的文件。
-mtime n:查找在 n*24 小时内被修改过的文件。

-bash-3.1# find directory_path -name file_name

du命令:显示目录或文件的磁盘使用情况

-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示指定目录或文件的总大小,而不显示其子目录的大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。

-bash-3.1# du -h directory_path

tar命令:命令用于备份文件。tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

Linux 常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等。

选项:
-A或--catenate 新增文件到已存在的备份文件。
-b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
-B或--read-full-records 读取数据时重设区块大小。
-c或--create 建立新的备份文件。
-C<目的目录>或--directory=<目的目录> 切换到指定的目录。
-d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-F<Script文件>或--info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
-g或--listed-incremental 处理GNU格式的大量备份。
-G或--incremental 处理旧的GNU格式的大量备份。
-h或--dereference 不建立符号连接,直接复制该连接所指向的原始文件。
-i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
-k或--keep-old-files 解开备份文件时,不覆盖已有的文件。
-K<文件>或--starting-file=<文件> 从指定的文件开始还原。
-l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
-m或--modification-time 还原文件时,不变更文件的更改时间。
-M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
-N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
-o或--old-archive或--portability 将资料写入备份文件时使用V7格式。
-O或--stdout 把从备份文件里还原的文件输出到标准输出设备。
-p或--same-permissions 用原来的文件权限还原文件。
-P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-r或--append 新增文件到已存在的备份文件的结尾部分。
-R或--block-number 列出每个信息在备份文件中的区块编号。
-s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
-S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
-t或--list 列出备份文件的内容。
-T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
-u或--update 仅置换较备份文件内的文件更新的文件。
-U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
-v或--verbose 显示指令执行过程。
-V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。
-w或--interactive 遭遇问题时先询问用户。
-W或--verify 写入备份文件后,确认文件正确无误。
-x或--extract或--get 从备份文件中还原文件。
-X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
-z或--gzip或--ungzip 通过gzip指令处理备份文件。
-Z或--compress或--uncompress 通过compress指令处理备份文件。
-<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。
--after-date=<日期时间> 此参数的效果和指定"-N"参数相同。
--atime-preserve 不变更文件的存取时间。
--backup=<备份方式>或--backup 移除文件前先进行备份。
--checkpoint 读取备份文件时列出目录名称。
--concatenate 此参数的效果和指定"-A"参数相同。
--confirmation 此参数的效果和指定"-w"参数相同。
--delete 从备份文件中删除指定的文件。
--exclude=<范本样式> 排除符合范本样式的文件。
--group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。
--help 在线帮助。
--ignore-failed-read 忽略数据读取错误,不中断程序的执行。
--new-volume-script=<Script文件> 此参数的效果和指定"-F"参数相同。
--newer-mtime 只保存更改过的文件。
--no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。
--null 从null设备读取文件名称。
--numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。
--owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。
--posix 将数据写入备份文件时使用POSIX格式。
--preserve 此参数的效果和指定"-ps"参数相同。
--preserve-order 此参数的效果和指定"-A"参数相同。
--preserve-permissions 此参数的效果和指定"-p"参数相同。
--record-size=<区块数目> 此参数的效果和指定"-b"参数相同。
--recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。
--remove-files 文件加入备份文件后,就将其删除。
--rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。
--same-owner 尝试以相同的文件拥有者还原文件。
--suffix=<备份字尾字符串> 移除文件前先行备份。
--totals 备份文件建立后,列出文件大小。
--use-compress-program=<执行指令> 通过指定的指令处理备份文件。
--version 显示版本信息。
--volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。

-bash-3.1# tar -czvf archive_name.tar.gz directory_name tar -xzvf archive_name.tar.gz

ssh命令:远程登录到另一台计算机

ssh username@ip_address

Xshell:\> ssh 20.20.20.20

scp命令:在计算机之间传输文件

scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

-bash-3.1# scp file_name username@ip_address:/directory_path/

chmod命令:是控制用户对文件的权限的命令

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。只有文件所有者和超级用户可以修改文件或目录的权限。

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
#权限rwx二进制
7读 + 写+ 执行rwx111
6读 + 写rw-110
5读 + 执行r-x101
4只读r–100
3写 + 执行-wx011
2只写-w-010
1只执行–x001
0000
-bash-3.1# chmod 755 file_name

kill 命令:用于终止正在运行的进程程序或工作。

kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。

-l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-s <信息名称或编号>  指定要送出的信息。

使用 kill -l 命令列出所有可用信号。常用的信号是:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。

-bash-3.1# kill process_id(pid)

sed命令:在文本文件中进行字符串替换或利用脚本来处理文本文件。

参数说明:
-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。

-bash-3.1# sed -e 4a\newLine test 
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦!

-bash-3.1# sed 's/old_string/new_string/g' file_name

awk命令:在文本文件中处理和操作数据

-F fs 指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。
-v var=value  赋值一个用户定义变量。
-f scripfile 从脚本文件中读取awk命令。
-mf nnn and -mr nnn
对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
-W compact 在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。
-W copyleft  打印简短的版权信息。
-W help or --help, -W usage 打印全部awk选项和每个选项的简短说明。
-W lint 打印不能向传统unix平台移植的结构的警告。
-W lint-old 打印关于不能向传统unix平台移植的结构的警告。
-W posix
打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。
-W re-interval or --re-inerval
允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。
-W source program-text or --source program-text
使用program-text作为源代码,可与-f命令混用。
-W version or --version
打印bug报告信息的版本。

-bash-3.1# awk '{print $1,$3}' file_name

ping命令:测试计算机之间的网络连接

-d 使用Socket的SO_DEBUG功能。
-c <完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络接口送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p<范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小> 设置数据包的大小。
-t<存活数值> 设置存活数值TTL的大小。
-v 详细显示指令的执行过程。
-w <deadline> 在 deadline 毫秒后退出。
-W <timeout> 在等待 timeout 毫秒后开始执行。

-bash-3.1# ping ip_address

netstat命令:显示当前计算机的网络连接状态

-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示路由缓存。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistics 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。

-bash-3.1# netstat -a

ifconfig命令:显示当前计算机的网络接口配置

add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
down 关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
io_addr<I/O地址> 设置网络设备的I/O地址。
irq<IRQ地址> 设置网络设备的IRQ。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
up 启动指定的网络设备。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 关闭或启动指定网络设备的promiscuous模式。
[IP地址] 指定网络设备的IP地址。
[网络设备] 指定网络设备的名称。

-bash-3.1# ifconfig

traceroute命令:用于显示数据包到主机间的路径

-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<网络界面> 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p<通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-t<服务类型> 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

-bash-3.1# traceroute ip_address

rsync命令:是一个能够高效远程更新的文件传输程序,在计算机之间同步文件和目录

选项:
-v, --verbose 详细模式输出 
-q, --quiet 精简输出模式 
-c, --checksum 打开校验开关,强制对文件传输进行校验 
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD 
-r, --recursive 对子目录以递归模式处理 
-R, --relative 使用相对路径信息 
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 
--backup-dir 将备份文件(如~filename)存放在在目录下。 
-suffix=SUFFIX 定义备份文件前缀 
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) 
-l, --links 保留软链结 
-L, --copy-links 想对待常规文件一样处理软链结 
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 
--safe-links 忽略指向SRC路径目录树以外的链结 
-H, --hard-links 保留硬链结 
-p, --perms 保持文件权限 
-o, --owner 保持文件属主信息 
-g, --group 保持文件属组信息 
-D, --devices 保持设备文件信息 
-t, --times 保持文件时间信息 
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间 
-n, --dry-run现实哪些文件将被传输 
-W, --whole-file 拷贝文件,不进行增量检测 
-x, --one-file-system 不要跨越文件系统边界 
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节 
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步 
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息 
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件 
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件 
--delete 删除那些DST中SRC没有的文件 
--delete-excluded 同样删除接收端那些被该选项指定排除的文件 
--delete-after 传输结束以后再删除 
--ignore-errors 及时出现IO错误也进行删除 
--max-delete=NUM 最多删除NUM个文件 
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 
--force 强制删除目录,即使不为空 
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名 
--timeout=TIME IP超时时间,单位为秒 
-I, --ignore-times 不跳过那些有同样的时间和长度的文件 
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间 
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0 
-T --temp-dir=DIR 在DIR中创建临时文件 
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份 
-P 等同于 --partial 
--progress 显示备份过程 
-z, --compress 对备份的文件在传输时进行压缩处理 
--exclude=PATTERN 指定排除不需要传输的文件模式 
--include=PATTERN 指定不排除而需要传输的文件模式 
--exclude-from=FILE 排除FILE中指定模式的文件 
--include-from=FILE 不排除FILE指定模式匹配的文件 
--version 打印版本信息 
--address 绑定到特定的地址 
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件 
--port=PORT 指定其他的rsync服务端口 
--blocking-io 对远程shell使用阻塞IO 
-stats 给出某些文件的传输状态 
--progress 在传输时现实传输过程 
--log-format=formAT 指定日志文件格式 
--password-file=FILE 从FILE中得到密码 
--bwlimit=KBPS 限制I/O带宽,KBytes per second 
-h, --help 显示帮助信息

-bash-3.1# rsync -avz source_directory destination_directory

crontab命令:创建和编辑定时任务,用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。

-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表

-bash-3.1# crontab -e

ssh-keygen命令:可以生成、管理和转换SSH认证密钥

-t  表示私钥类型
-C 表示注释,一般为自己的邮箱地址
-b:指定私钥长度; 
-e:读取openssh的私钥或者公钥文件; 
-f:指定用来保存私钥的文件名; 
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥; 
-l:显示公钥文件的指纹数据; 
-N:提供一个新密语; 
-q:静默模式; 
-v:详细模式;
-P:提供旧密语;
-F:搜索在known_hosts文件中指定的主机名,列出发现的任何事件;
-r:显示指定主机公钥文件的SSHFP指纹资源记录;
-R:从known_hosts文件中删除搜有属于指定主机名的密钥;
-p:请求更改私钥文件的密码短语,而不是创建一个新的密钥;
-B:显示指定的公钥和私钥文件的bubblebabble摘要;
-y:读取OpenSSH专有格式的公钥文件,并将OpenSSH公钥显示在标准输出上;
-c:请求改变私钥和公钥文件的注释。仅支持RSAI密钥操作;
-g:在使known_hosts文件进行哈希计算。用-r选项显示指纹资源记录的事后使用通用的DNS格式;
-H:对known_hosts文件进行哈希计算。这将把文件中的所有主机名/IP地址替换为相应的哈希值。原来文件的内容将会添加一个“.old”后缀后保存。这些哈希值只能被ssh和sshd使用。这个选项不会修改已经经过哈希的主机名/IP地址,因此可以在部分公钥已经哈希过的文件上安全使用;

-bash-3.1# ssh-keygen

lsof命令:显示计算机上打开的文件和进程(列出当前系统打开文件)

lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

选项:
-a	列出打开文件存在的进程;
-c<进程名>	列出指定进程所打开的文件;
-g	列出GID号进程详情;
-d<文件号>	列出占用该文件号的进程;
+d<目录>	列出目录下被打开的文件;
+D<目录>	递归列出目录下被打开的文件;
-n<目录>	列出使用NFS的文件;
-i<条件>	列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>	列出指定进程号所打开的文件;
-u	列出UID号进程详情;
-h	显示帮助信息;
-v	显示版本信息。

-bash-3.1# lsof -i :port_number

chown命令:命令用于设置文件所有者和文件关联组的命令

user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本

-bash-3.1# chown username file_name

useradd命令:创建新用户

-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>  指定用户登入时的起始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  制定用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s<shell>   指定用户登入后所使用的shell。
-u<uid>  指定用户ID。

-bash-3.1# useradd username

passwd命令:更改用户密码

-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
指定口令最短存活期
-i 口令过期后多少天停用账户

-bash-3.1# passwd runbob

history命令:显示之前执行的命令历史记录

-N: 显示历史记录中最近的N个记录;
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中;
-d<offset>:删除历史记录中第offset个命令
-n<filename>:读取指定文件

-bash-3.1# history

mount命令:将文件系统挂载到指定目录

常用选项:
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。

-bash-3.1# mount /dev/sdb1 /mnt/usb

umount命令:卸载已挂载的文件系统

-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-V 显示版本信息。

-bash-3.1# umount /mnt/usb

vmstat命令:显示系统资源使用情况,是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

-r 表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。
-b 表示阻塞的进程,。
-swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么该升级内存或者把耗内存的任务迁移到其他机器。
-free   空闲的物理内存的大小。
-buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
-cache 直接用来记忆我们打开的文件,给文件做缓冲
-si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
-so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
-bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
-bo 块设备每秒发送的块数量,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
-in 每秒CPU的中断次数,包括时间中断
-cs 每秒上下文切换次数
-us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
-sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
-id  空闲 CPU时间,一般来说,id + us + sy = 100,id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
-wt 等待IO CPU时间

-bash-3.1# vmstat 2  

watch命令:以周期性的方式执行给定的指令,指令输出以全屏方式显示,在终端上实时监视命令输出

-n or--interval     #watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d or--differences  #用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t or -no-title     #会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h or --help        #查看帮助文档

-bash-3.1# watch -n 1 command_name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值