Linux 常用命令总结
文件和目录
- ls --> 列出目录内容
- -a --> 列出包括.a开头的隐藏文件的所有文件
- -A --> 和-a相似,但不列出".“和”…"
- -l --> 列出文件的详细信息
- -c --> 根据创建时间排序显示
- -t --> 根据文件修改时间排序显示
- cd --> 进入具体某个目录
- cp --> 复制文件
- -r -R --> 递归复制该目录及其子目录内容
- -p --> 连同档案属性一起复制过去
- -f --> 不询问而强制复制
- -s --> 生成快捷方式
- -a --> 将档案的所有特性都一起复制
- find --> 查找目录及目录下的所有文件
- mv --> 移动或重命名文件
- -b --> 覆盖前做备份
- -f --> 如果存在不询问而强制覆盖
- -i --> 如果存在则询问是否覆盖
- -u --> 较新才覆盖
- pwd --> 显示当前工作目录的绝对路径
- rename --> 重命名
- rm --> 删除一个或者多个文件
- -r --> 删除文件夹
- -f --> 删除不提示
- -i --> 删除提示
- -v --> 详细显示进行步骤
- 若删除时出现 Permission denied 的提示,可以在命令前加sudo 即:sudo rm -rf 文件夹的名字,即可删除。
- rmdir --> 删除空目录
- touch --> 创建新的空文件,改变已有文件时间戳属性
- tree --> 以树形结构显示目录下的内容
- basename --> 显示文件和目录名
- lsattr --> 查看文件的类型
- file --> 显示文件的类型
- md5sum --> 计算和校验文件的md5值
查看文件及内容命令
-
cat --> (顺序)打印文件内容到屏幕
-
tac --> (倒序)打印文件内容到屏幕
-
head --> 显示文件内容的头部
- -v --> 显示文件名
- -c number --> 显示前number个字符,若number为负数,则显示除最后number个字符的所有内容
- -number/n (+)number --> 显示前number行内容,
- -n number --> 若number为负数,则显示除最后number行数据的所有内容
-
tail --> 显示文件内容的尾部
- -v --> 显示详细的处理信息
- -q --> 不显示处理信息
- -num/-n (-)num --> 显示最后num行内容
- -n +num --> 从第num行开始显示后面的数据
- -c --> 显示最后c个字符
- -f --> 循环读取
-
vi/vim --> 命令行文本编辑器
-
:w filename 将文章以指定的文件名保存起来 :wq 保存并退出 :q! 不保存而强制退出 1)插入模式 按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件; 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。 2)从插入模式切换为命令行模式 按「ESC」键。 3)移动光标 vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。 按「ctrl」+「b」:屏幕往"后"移动一页。 按「ctrl」+「f」:屏幕往"前"移动一页。 按「ctrl」+「u」:屏幕往"后"移动半页。 按「ctrl」+「d」:屏幕往"前"移动半页。 按数字「0」:移到文章的开头。 按「G」:移动到文章的最后。 按「$」:移动到光标所在行的"行尾"。 按「^」:移动到光标所在行的"行首" 按「w」:光标跳到下个字的开头 按「e」:光标跳到下个字的字尾 按「b」:光标回到上个字的开头 按「#l」:光标移到该行的第#个位置,如:5l,56l。 4)删除文字 「x」:每按一次,删除光标所在位置的"后面"一个字符。 「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。 「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。 「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。 「dd」:删除光标所在行。 「#dd」:从光标所在行开始删除#行 5)复制 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。 「#yw」:复制#个字到缓冲区 「yy」:复制光标所在行到缓冲区。 「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。 6)替换 「r」:替换光标所在处的字符。 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。 7)回复上一次操作 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。 8)更改 「cw」:更改光标所在处的字到字尾处 「c#w」:例如,「c3w」表示更改3个字 9)跳至指定的行 「ctrl」+「g」列出光标所在行的行号。 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
-
-
more --> 按页查看文章内容,从前向后读取文件,因此在启动时就加载整个文件
- +n --> 从第n行开始显示
- -n --> 每次查看n行数据
- +/String --> 搜寻String字符串位置,从其前两行开始查看
- -c --> 清屏再显示
- -p --> 换页时清屏
-
less --> 可前后移动地逐屏查看文章内容,在查看前不会加载整个文件
- -m --> 显示类似于more命令的百分比
- -N --> 显示行号
- / --> 字符串:向下搜索“字符串”的功能
- ? --> 字符串:向上搜索“字符串”的功能
- n --> 重复前一个搜索(与 / 或 ? 有关)
- N --> 反向重复前一个搜索(与 / 或 ? 有关)
- b --> 向后翻一页
- d --> 向后翻半页
文件压缩及解压命令
- tar --> 打包压缩
- unzip --> 解压文件
- gzip --> GZIP压缩工具
- zip --> 压缩工具
信息显示命令
- uname --> 显示操作系统相关信息命令
- hostname --> 显示当前系统的主机名
- top --> 实时显示系统资源使用情况
搜索文件
- find [PATH] [option] [action] --> 从磁盘变了查找文件目录
-
选项与参数: 1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime 和-amin,-cmin与-mmin,以 -mtime 说明 -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案; -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名; -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。 -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名 2. 与使用者或组名有关的参数: -uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID -gid n :n 为数字,这个数字是组名的 ID,亦即 GID -user name :name 为使用者账号名称!例如 dmtsai -group name:name 为组名,例如 users ; -nouser :寻找档案的拥有者不存在 /etc/passwd 的人! -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案! 3. 与档案权限及名称有关的参数: -name filename:搜寻文件名为 filename 的档案(可使用通配符) -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有: c: 代表 byte k: 代表 1024bytes。所以,要找比 50KB还要大的档案,就是『 -size +50k 』 -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有: 一般正规档案 (f) 装置档案 (b, c) 目录 (d) 连结档 (l) socket (s) FIFO (p) -perm mode :搜寻档案权限『刚好等于』 mode的档案,这个mode为类似chmod的属性值,举例来说,-rwsr-xr-x 的属性为4755! -perm -mode :搜寻档案权限『必须要全部囊括 mode 的权限』的档案,举例来说, 我们要搜寻-rwxr--r-- 亦即 0744 的档案,使用-perm -0744,当一个档案的权限为 -rwsr-xr-x ,亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。 -perm +mode :搜寻档案权限『包含任一 mode 的权限』的档案,举例来 说,我们搜寻-rwxr-xr-x ,亦即 -perm +755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw.... 的属性存在! 4. 额外可进行的动作: -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。 -print :将结果打印到屏幕上,这个动作是预设动作! eg: find / -perm +7000 -exec ls -l {} \; ,额外指令以-exec开头,以\;结尾{}代替前面找到的内容 | xargs -i 默认的前面输出用{}代替 eg: find . -name "*.log" | xargs -i mv {} test4
-
- whereis [-bmsu] [BMS 目录 -f] 文件名 --> 定位可执行文件、源代码文件、帮助文件在文件系统中的位置
- -b --> 定位可执行文件。
- -m --> 定位帮助文件。
- -s --> 定位源代码文件。
- -u --> 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
- -B --> 指定搜索可执行文件的路径。
- -M --> 指定搜索帮助文件的路径。
- -S --> 指定搜索源代码文件的路径。
- grep ‘正则表达式’ 文件名 --> 用正则表达式搜索文本,并把匹配的行打印出来
- -c --> 只输出匹配行的计数。
- -I --> 不区分大小写(只适用于单字符)。
- -l --> 只显示文件名
- -v --> 显示不包含匹配文本的所有行。
- -n --> 显示匹配行数据及其行号
用户管理命令
- useradd [-u UID] [-g 初始群组] [-G 次要群组] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 --> 添加用户
- -M --> 不建立用户家目录!(系统账号默认值)
- -m --> 建立用户家目录!(一般账号默认值)
- -r --> 建立一个系统的账号,这个账号的 UID 会有限制
- -e --> 账号失效日期,格式为『YYYY-MM-DD』
- -D --> 查看useradd的各项默认值
- usermod [-cdegGlsuLU] username --> 修改系统已经存在的用户属性
- -c --> 后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
- -d --> 后面接账号的家目录,即修改 /etc/passwd 的第六栏;
- -e --> 后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
- -f --> 后面接天数为 shadow 的第七字段。
- -g --> 后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是GID的字段!
- -G --> 后面接次要群组,修改这个使用者能够支持的群组
- -l --> 后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
- -s --> 后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。
- -u --> 后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
- -L --> 冻结密码
- -U --> 解冻密码
- userdel --> 删除用户
- -r --> 用户文件一并删除
- groupadd --> 添加用户组
- password --> 修改用户密码
- -l --> 使密码失效
- -u --> 与-l相对,用户解锁
- -S --> 列出登陆用户passwd文件内的相关参数
- -n --> 后面接天数,shadow 的第 4 字段,多久不可修改密码天数
- -x --> 后面接天数,shadow 的第 5 字段,多久内必须要更动密码
- -w --> 后面接天数,shadow 的第 6 字段,密码过期前的警告天数
- -i --> 后面接『日期』,shadow 的第 7 字段,密码失效日期
- chage [-ldEImMW] 账号名 --> 修改用户密码有效期
- -l --> 列出该账号的详细密码参数;
- -d --> 后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式YYYY-MM-DD
- -E --> 后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
- -I --> 后面接天数,修改 shadow 第七字段(密码失效日期)
- -m --> 后面接天数,修改 shadow 第四字段(密码最短保留天数)
- -M --> 后面接天数,修改 shadow 第五字段(密码多久需要进行变更)
- -W --> 后面接天数,修改 shadow 第六字段(密码过期前警告日期)
- id --> 查看用户的uid,gid及归属的用户组
- su --> 切换用户
- visudo --> 编辑/etc/sudoers文件的专属命令
- sudo --> 以另一个用户身份(默认是root)执行
- who --> 登录在本机的用户与来源
- last --> 查看用户的登录日志
关机/重启/注销和查看系统信息的命令
- shutdown --> 关机
- halt --> 关机
- poweroff --> 关闭电源
- logout --> 退出当前登录的shell
- exit --> 退出当前登录的shell
- Ctrl + D --> 退出当前登录的shell快捷键
进程管理相关命令
- bg --> 将一个在后台暂停的命令,变成继续执行
- fg --> 将后台中的命令调至前台继续运行
- jobs --> 查看当前有多少在后台运行的命令
- kill [参数] [进程号] --> 终止进程
- pkill [参数] [进程号] --> 通过进程名终止进程
- killall [参数] [进程号] --> 通过进程名终止进程
- ps --> 列出当前进程的快照
- a --> 显示所有的进程
- -a --> 显示同一终端下的所有程序
- e --> 显示环境变量
- f --> 显示进程间的关系
- -H --> 显示树状结构
- r --> 显示当前终端的程序
- T --> 显示当前终端的所有程序
- -au --> 显示更详细的信息
- -aux–> 显示所有包含其他使用者的行程
- -u --> 指定用户的所有进程