[TOC]
Linux 常用命令
pwd显示当前目录路径
pwd [–help] [–version]
- –help 在线帮助
- –version 显示版本信息
ls显示目录下文件
ls [-alrtAFR] [name…]
-alrtAFR | 含义 |
---|---|
-a | 显示所有文件及目录 (. 开头的隐藏文件也会列出) |
-l(缩写ll常用) | 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 |
-r | 将文件以相反次序显示(原定依英文字母次序) |
-t | 将文件依建立时间之先后次序列出 |
-A | 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录) |
-F | 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/” |
-R | 若目录下有文件,则以下之文件亦皆依序列出 |
file文件内容的简单描述
file “fileName”
cp复制文件和目录
cp [options] source destination
options | 含义 |
---|---|
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合 |
-d | 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式 |
-f | 覆盖已经存在的目标文件而不给出提示 |
-i | 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖 |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 |
-l | 不复制文件,只是生成链接文件 |
cp /data/logs /data/log
cp –r test/ newtest :当前目录 test/ 下的所有文件复制到新目录 newtest 下
用户使用该指令复制目录时,必须使用参数 -r 或者 -R
mv移动/重命名文件和目录
mv [options] source destination
options | 含义 |
---|---|
-b | 当目标文件或目录存在时,在执行覆盖钱,会为其创建一个备份 |
-i | 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作 |
-f | 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件 |
-n | 不要覆盖任何已存在的文件或目录 |
-u | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作 |
mv test.txt new.txt:文件 test 改名 new
mv info/ logs :info 目录放入 logs 目录中,logs 目录不存在,则将 info 改名为 logs
mv /usr/runoob/* /home :将 /usr/runoob 下的所有文件和目录移到 home 目录下
mkdir创建目录
mkdir [-p] dirName
- -p 确保目录名称存在,不存在的就建一个
mkdir runoob : 建立一个名为 runoob 的子目录
mkdir dir1 dir2 dir3 : 创建三个目录,名为 dir1, dir2, dir3
rm删除文件或目录
rm [options] name…
options | 含义 |
---|---|
-i | 删除前逐一询问确认 |
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认 |
-r | 将目录及以下之档案亦逐一删除 |
删除文件可以直接使用rm命令,若删除目录则必须配合选项”-r”
rm test.txt : 删除文件,会有提示
rm homework : 无法删除目录”homework”: 是一个目录
rm -r homework : 是否删除 目录 “homework”? y
ln创建硬链接和符号链接
ln [参数] [源文件或目录] [目标文件或目录]
当需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统
grep查找打印匹配行
grep [-abcEFGhHilLnqrsvVwxy] [-A<显示列数>] [-B<显示列数>] [-C<显示行数>] [-d<进行动作>] [-e<范本样式>] [-f<范本文件>] [--help] [范本样式] [文件或目录...]范本文件>范本样式>进行动作>显示行数>显示列数>显示列数>
grep “被查找的字符串” 文件名
参数 | 含义 |
---|---|
-a 或 –text | 不要忽略二进制的数据。 |
-A<显示行数> 或 --after-context=<显示行数>显示行数>显示行数> | 除了显示符合范本样式的那一列之外,并显示该行之后的内容。 |
-b 或 –byte-offset | 在显示符合样式的那一行之前,标示出该行第一个字符的编号。 |
-B<显示行数> 或 --before-context=<显示行数>显示行数>显示行数> | 除了显示符合样式的那一行之外,并显示该行之前的内容。 |
-c 或 –count | 计算符合样式的列数。 |
-C<显示行数> 或 --context=<显示行数>或-<显示行数>显示行数>显示行数>显示行数> | 除了显示符合样式的那一行之外,并显示该行之前后的内容。 |
-d <动作> 或 --directories=<动作>动作>动作> | 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。 |
-e<范本样式> 或 --regexp=<范本样式>范本样式>范本样式> | 指定字符串做为查找文件内容的样式。 |
-E 或 –extended-regexp | 将样式为延伸的正则表达式来使用。 |
-f<规则文件> 或 --file=<规则文件>规则文件>规则文件> | 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。 |
-F 或 –fixed-regexp | 将样式视为固定字符串的列表。 |
-G 或 –basic-regexp | 将样式视为普通的表示法来使用。 |
-h 或 –no-filename | 在显示符合样式的那一行之前,不标示该行所属的文件名称。 |
-H 或 –with-filename | 在显示符合样式的那一行之前,表示该行所属的文件名称。 |
-i 或 –ignore-case | 忽略字符大小写的差别。 |
-l 或 –file-with-matches | 列出文件内容符合指定的样式的文件名称。 |
-L 或 –files-without-match | 列出文件内容不符合指定的样式的文件名称。 |
-n 或 –line-number | 在显示符合样式的那一行之前,标示出该行的列数编号。 |
-o 或 –only-matching | 只显示匹配PATTERN 部分。 |
-q 或 –quiet或–silent | 不显示任何信息。 |
-r 或 –recursive | 此参数的效果和指定”-d recurse”参数相同。 |
-s 或 –no-messages | 不显示错误信息。 |
-v 或 –invert-match | 显示不包含匹配文本的所有行。 |
-V 或 –version | 显示版本信息。 |
-w 或 –word-regexp | 只显示全字符合的列。 |
-x –line-regexp | 只显示全列符合的列。 |
-y | 此参数的效果和指定”-i”参数相同。 |
grep test *file : 找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep -r update /etc/acpi : 递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串”update”的文件,并打印出该字符串所在行的内容
head/tail打印文件开头部分/结尾部分
tail [参数] [文件]
tail -C 5 ‘String’ fileName 表示 fileName 文件前后 5 行
tail -n 500 fileName 表示 fileName 文件后 500 行
head 命令打印文件的前十行,而 tail 命令打印文件的后十行。默认情况下,两个命令 都打印十行文本。可以通过”-n”选项来调整命令打印的行数
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
tail 参数 | 含义 |
---|---|
-f | 循环读取 |
-q | 不显示处理信息 |
-v | 显示详细的处理信息 |
-c<数目>数目> | 显示的字节数 |
-n<行数>行数> | 显示文件的尾部 n 行内容 |
–pid=PID 与-f合用 | 表示在进程ID,PID死掉之后结束 |
-q, –quiet, –silent | 从不输出给出文件名的首部 |
-s, –sleep-interval=S 与-f合用 | 表示在每次反复的间隔休眠S秒 |
head [参数] [文件]
head 参数 | 含义 |
---|---|
-q | 隐藏文件名 |
-v | 显示文件名 |
-c<数目>数目> | 显示的字节数 |
-n<行数>行数> | 显示的行数 |
键盘操作
移动光标
按键 | 含义 |
---|---|
Ctrl-a | 移动光标到行首。 |
Ctrl-e | 移动光标到行尾。 |
Ctrl-f | 光标前移一个字符;和右箭头作用一样。 |
Ctrl-b | 光标后移一个字符;和左箭头作用一样。 |
Alt-f | 光标前移一个字。 |
Alt-b | 光标后移一个字。 |
Ctrl-l | 清空屏幕,移动光标到左上角。clear 命令完成同样的工作 |
文本编辑命令
按键 | 含义 |
---|---|
Ctrl-d | 删除光标位置的字符。 |
Ctrl-t | 光标位置的字符和光标前面的字符互换位置。 |
Alt-t | 光标位置的字和其前面的字互换位置。 |
Alt-l | 把从光标位置到字尾的字符转换成小写字母。 |
Alt-u | 把从光标位置到字尾的字符转换成大写字母。 |
剪切和粘贴命令
按键 | 含义 |
---|---|
Ctrl-k | 剪切从光标位置到行尾的文本。 |
Ctrl-u | 剪切从光标位置到行首的文本。 |
Alt-d | 剪切从光标位置到词尾的文本。 |
Alt-Backspace | 剪切从光标位置到词头的文本。如果光标在一个单词的开头,剪切前一个单词。 |
Ctrl-y | 把剪切环中的文本粘贴到光标位置。 |
id显示用户信息
id [-gGnru] [–help] [–version] [用户名称]
按键 | 含义 |
---|---|
-g或–group | 显示用户所属群组的ID。 |
-G或–groups | 显示用户所属附加群组的ID。 |
-n或–name | 显示用户,所属群组或附加群组的名称。 |
-r或–real | 显示实际ID。 |
-u或–user | 显示用户ID。 |
-help | 显示帮助。 |
-version | 显示版本信息 |
id 表示显示当前用户ID
输出 : uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t
chmod控制文件权限
chmod [-cfvR] [–help] [–version] mode file…
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
前十个字符是文件的属性。这十个字符的第一个字符表明文件类型
例如输入 ll 查看文件列表
-rw-rw-r–
- 1 位字符: File Type 文件类型
- 2、3、4 位字符: Owner 文件所有者
- 5、6、7 位字符: Group 用户组
- 8、9、10 位字符: Other Users 其它用户
八进制语法:
765 将这样解释:
所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
第一个字符属性 | 含义 | |
---|---|---|
- | 一个普通文件 | |
d | 一个目录 | |
l | 一个符号链接。注意对于符号链接文件,剩余的文件属性总是”rwxrwxrwx”,而且都是 虚拟值。真正的文件属性是指符号链接所指向的文件的属性。 | |
c | 一个字符设备文件。这种文件类型是指按照字节流,来处理数据的设备。 比如说终端机, | 或者调制解调器 |
b | 一个块设备文件。这种文件类型是指按照数据块,来处理数据的设备,例如一个硬盘,或者 CD-ROM 盘。 |
例如: chmod 777 filename
ps进程
ps [options] [–help]
用于显示当前进程的状态,类似于 windows 的任务管理器
常用: ps -ef | grep 进程号 |
-e 与 -A 相似,列出所有的进程
-f 做一个更为完整的输出
kill杀死程序
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]信息编号>信息名称或编号>
参数说明:
- -l <信息编号>:若不加<信息编号>选项,则 -l 参数会列出全部的信息名称信息编号>信息编号>
- -s <信息名称或编号>:指定要送出的信息信息名称或编号>
- [程序]:[程序]可以是程序的PID或是PGID,也可以是工作编号
使用 kill -l 命令列出所有可用信号
最常用的信号是:
- 1 (HUP):重新加载进程
- 9 (KILL):杀死一个进程
- 15 (TERM):正常停止一个进程
常用 kill -9 pid(进程号)
查看端口号命令:netstat | grep 端口号 |
找到进程号,再获取进程的快照列表: ps -ef | grep 进程名 |
netstat网络状态
常用 netstat | grep 8080 |
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]网络类型>
参数说明:
- -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”参数相同
显示详细的网络状况: netstat -a
显示当前户籍UDP连接状况: netstat -nu
显示UDP端口号的使用情况: netstat -apu
显示网卡列表: netstat -i
显示网络统计信息: netstat -s
显示监听的套接口: netstat -l
find查找命令
find path -option [ -print ] [ -exec -ok command ] {} ;
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
- -amin n : 在过去 n 分钟内被读取过
- -anewer file : 比文件 file 更晚被读取过的文件
- -atime n : 在过去n天内被读取过的文件
- -cmin n : 在过去 n 分钟内被修改过
- -cnewer file :比文件 file 更新的文件
- -ctime n : 在过去n天内被修改过的文件
- -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
- -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
- -name name:文件名称符合 name 的文件
- -iname name: iname 会忽略大小写
- -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
- -type c : 文件类型是 c 的文件。
- d: 目录
- c: 字型装置文件
- b: 区块装置文件
- p: 具名贮列
- f: 一般文件
- l: 符号连结
- s: socket
- -pid n : process id 是 n 的文件
当前目录及其子目录下所有文件后缀为 .c 的文件: find . -name “*.c”
目前目录其其下子目录中所有一般文件列出: find . -type f
当前目录及其子目录下所有最近 20 天内更新过的文件列出:: find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:: find /var/log -type f -mtime +7 -ok rm {} \;
当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件: find . -type f -perm 644 -exec ls -l {} \;
系统中所有文件长度为 0 的普通文件,并列出它们的完整路径: find / -type f -size 0 -exec ls -l {} \;
在自己的根目录$HOME
中查找文件名符合*.txt
的文件,使用~作为 ‘pathname’参数,波浪号~代表了你的$HOME
目录
find ~ -name “*.txt” -print
当前目录及子目录中查找文件名以一个大写字母开头的文件 find . -name “[A-Z]*” -print
在/etc目录中查找文件名以host开头的文件 find /etc -name “host*” -print
vim/vi 文本编辑器
Vim是从 vi 发展出来的一个文本编辑器
vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
输入模式:
在命令模式下按下i就进入了输入模式
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
rz/sz上传下载命令
rz 命令(Receive ZMODEM): rz [OPTIONS]
常用 rz -y
使用 ZMODEM 协议,将本地文件批量上传到远程 Linux/Unix 服务器
注意不能上传文件夹
使用虚拟终端软件如 XShell、SecureCRT 或 PuTTY 来连接远程服务器后,使用 rz 命令可以上传本地文件到远程服务器。输入 rz 回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行 rz 命令的目录
OPTIONS参数:
- -+, –append 将文件内容追加到已存在的同名文件
- -a, –ascii 以文本方式传输
- -b, –binary 以二进制方式传输,推荐使用
- –delay-startup N 等待 N 秒
- -e, –escape 对所有控制字符转义,建议使用
- -E, –rename 已存在同名文件则重命名新上传的文件,以点和数字作为后缀
- -p, –protect 对 ZMODEM 协议有效,如果目标文件已存在则跳过
- -q, –quiet 安静执行,不输出提示信息
- -v, –verbose 输出传输过程中的提示信息
- -y, –overwrite 存在同名文件则替换
- -X, –xmodem 使用 XMODEM 协议
- –ymodem 使用 YMODEM 协议
- -Z, –zmodem 使用 ZMODEM 协议
- –version 显示版本信息
- –h, –help 显示帮助信息
sz 命令(Send ZMODEM): rz [OPTIONS] FILES
通过 ZMODEM 协议,可将多个文件从远程服务器下载到本地
注意不能下载文件夹,如果下载文件夹,请先打包再下载
OPTIONS 与 rz 基本相似,或者 sz -h
查看命令
下载多个文件: sz file1 file2 file3
tar打包/解压命令
常用解压:tar -zxvf abc.tgz
常用打包:tar -zcvf abc.tgz