Linux常用命令/工具(一)

本文简单介绍如下Linux命令或工具的功能,具体使用方法请参考工具或命令的文档:
1.使用命令(查看命令帮助文档)    2. 用户与权限    3.日常命令    4.目录与文件    5.重定向与管道    6. 进程相关    7. 网络相关    8.shell环境    9. 键盘快捷命令    10. 通配符   11. shell命令展开

  • 使用命令
man —— 显示命令手册页
例如:man adduser

apropos —— 通过关键字搜索一系列适合的命令
注:man 命令加上”-k”选项, 和 apropos 完成一样的功能

info —— 显示命令 info
例如:info adduser

which —— 显示一个可执行程序的位置,shell内部命令无法显示

whatis —— 显示一个命令的简洁描述

help —— 得到 shell 内部命令的帮助文档
例如:help cd

--help —— 显示命令用法信息,常用于外部命令
例如:adduser --help

type —— 显示命令的类型,说明怎样解释一个命令名,可判断内部命令和外部命令

alias —— 创建/显示命令别名
创建别名:alias name='string'
显示别名:alias

unalias —— 删除别名


  • 用户与权限
id —— 显示用户身份号

useradd —— 新建用户
格式:useradd [options] username
例如:useradd -d /home/zhao -mzhao 新建zhao用户并创建主目录/home/zhao

userdel —— 删除用户及相关文件
格式:userdel [-r] username

groupadd —— 新增用户组
格式:groupadd [-g gid] [-o]] [-r] [-f] groupname

passwd —— 修改密码
修改当前用户密码:passwd
修改其他用户密码(root):passwd username

忘记root密码解决方法
1.开机按e键(或任意键)进入grub选项
2.在grub选项菜单按e进入编辑模式
3.选择kernel那行按e进行编辑 
4.在kernel内容最后添加 1 或 single
5.按回车保存修改后按b启动系统
6.进入单用户模式用passwd修改密码

chmod —— 更改文件模式/权限

umask —— 设置默认的文件权限

su —— 以另一个用户的身份来运行 shell

sudo —— 以另一个用户的身份来执行命令

chown —— 更改文件所有者
格式:chown [owner][:[group]] file...

chgrp —— 更改用户组所有权


  • 日常命令
echo—— 显示一行文本

clear —— 清空屏幕

history —— 显示历史列表内容

date —— 显示系统当前时间和日期

cal —— 它默认显示当前月份的日历

df —— 查看磁盘剩余空间的数量 

free —— 显示空闲内存的数量

shutdown —— 关机或重启系统

halt —— 关闭系统


  • 目录与文件
pwd — 打印出工作目录名(即当前所在目录名)

cd — 更改/跳转工作目录,可使用绝对路径(以根目录开始)或相对路径(以工作目录开始)
  • 相对路径用两个特殊符号表示:“.” 表示工作目录,“..”表示父目录。跳转到父目录可使用“cd ..”,跳转到工作目录下的A目录可使用“cd ./A”(通常“./”可省略)
  • 快捷键:“cd”更改工作目录到家目录,“cd -”更改工作目录到先前的工作目录,“cd ~user_name”更改工作目录到用户家目录
ls — 列出一个目录包含的文件及子目录

file — 确定文件类型

cp — 复制文件和目录

mv — 移动/重命名文件和目录

mkdir — 创建目录

touch – 设置或更新文件的访问,更改,和修改时间,若参数是一个不存在的文件,则会创建一个空文件

stat – 显示文件或文件系统状态

rm — 删除文件和目录,注意在跟通配符使用时小心删除整个目录,可先用ls检查一下再用rm代替ls删除

ln — 创建硬链接和符号链接


  • 重定向与管道

cat —— 读取并复制文件内容到标准输出

常用以显示简短的文本文件或连接多个文件;不带参数的cat从标准输入读取内容,输入Ctrl+d发送EOF结束输入


less —— 浏览文本文件内容,若文件内容多于一页,可上下滚动文件。按下“q”键退出 less 程序

wc —— 打印文件中换行符,字,和字节个数

head —— 输出文件第一部分

tail —— 输出文件最后一部分,使用"-f"选项能实时浏览文件内容

> —— 重定向标准输出
注: 若目标文件存在,则重定向输出会清空并重写文件。

noclobber —— 避免文件的重写:set -o noclobber 开启,set +o noclobber关闭。

< —— 重定向标准输入

2> —— 重定向标准错误,

ls > output.txt 2>&1 —— 重定向标准输出和错误
&> —— 重定向标准输出和错误

>> —— 向文件追加标准输出

/dev/null —— 位存储桶,使数据消失,cat /dev/null > a(将a变为空文件且不改变文件所有者和权限)

| —— 管道(与重定向比较简化输入,无需中间临时文件,效率更高)

过滤器:ls -l | sort | less (先将ls的输出排序再输出给less,此时sort相当于过滤器)


tee —— 从 Stdin 读取数据,并同时输出到 Stdout 和文件

例如:who | tee who.out | grep root (who的输出通过管道变为tee的标准输入,tee将标准输入复制给文件who.out同时也复制到标准输出,tee的标准输出又通过管道变为grep的标准输入)


sort —— 排序文本行

uniq —— 报道或省略重复行,常与sort一起使用

grep —— 打印匹配行


  • 进程
ps—— 报告当前进程快照

top —— 动态查看进程

命令后面加"&"字符 —— 后台运行

jobs —— 列出活跃的任务

Ctrl+c —— 发出中断终止一个进程

Ctrl+z —— 停止一个进程

bg —— 把一个任务放到后台执行

fg —— 把一个任务放到前台执行

kill —— 给一个进程发送信号,默认发送终止信号,格式:kill [-signal] PID

killall —— 给匹配的多个进程发送信号,格式:killall [-u user] [-signal] name...

pstree —— 输出一个树型结构的进程列表。

vmstat —— 输出一个系统资源使用快照,包括内存,交换分区和磁盘 I/O。 

xload —— 一个图形界面程序,可以画出系统负载的图形。

tload —— 与 xload 程序相似,但是在终端中画出图形。使用 Ctrl-c,来终止输出。


  • 网络系统
ping—— 发送 ICMP ECHO_REQUEST 软件包到网络主机

traceroute/tracepath —— 打印到一台网络主机的路由数据包

netstat —— 打印网络连接,路由表,接口统计数据,伪装连接,和多路广播成员

ftp —— 因特网文件传输程序

wget —— 非交互式网络下载器

ssh —— OpenSSH SSH 客户端(远程登录程序),ssh带有两程序scp(安全复制)和sftp


  • shell环境
printenv - 打印部分或所有的环境变量

set - 显示shell变量和环境变量,设置 shell 选项

export — 导出环境变量,让随后执行的程序知道。

登录 shell 会话的启动文件
/etc/profile应用于所有用户的全局配置脚本。
~/.bash_profile:  用户私人的启动文件。可以用来扩展或重写全局配置脚本中的设置。
~/.bash_login 如果文件 ~/.bash_profile 没有找到,bash 会尝试读取这个脚本。
~/.profile :  如果文件 ~/.bash_profile 或文件 ~/.bash_login 都没有找到,bash 会试图读取这个文件。 这是基于 Debian 发行版的默认设置,比方说 Ubuntu。


非登录 shell 会话的启动文件
/etc/bash.bashrc 应用于所有用户的全局配置文件。
~/.bashrc 用户私有的启动文件。可以用来扩展或重写全局配置脚本中的设置。
除了读取以上启动文件之外,非登录 shell 会话也会继承它们父进程的环境设置,通常是一个登录 shell。


source:强迫bash重新读取修改过的配置文件,如source .bashrc


  • 键盘命令
光标移动命令
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 把剪切环中的文本粘贴到光标位置。

"Tab"键---自动补全

自动补全命令
Alt-?: 显示可能的自动补全列表。在大多数系统中,你也可以完成这个通过按 两次 tab 键,这会更容易些。
Alt-*: 插入所有可能的自动补全。当你想要使用多个可能的匹配项时,这个很有帮助。

历史命令
Ctrl-p: 移动到上一个历史条目。类似于上箭头按键。
Ctrl-n: 移动到下一个历史条目。类似于下箭头按键。
Alt-<: 移动到历史列表开头。
Alt->: 移动到历史列表结尾,即当前命令行。
Ctrl-r: 反向递增搜索。从当前命令行开始,向上递增搜索。
Alt-p: 反向搜索,不是递增顺序。输入要查找的字符串,然后按下 Enter,执行搜索。
Alt-n: 向前搜索,非递增顺序。
Ctrl-o: 执行历史列表中的当前项,并移到下一个。如果你想要执行历史列表中一系列的命令,这很方便。

历史展开命令
!!: 重复最后一次执行的命令。可能按下上箭头按键和 enter 键更容易些。
!number: 重复历史列表中第 number 行的命令。
!string: 重复最近历史列表中,以这个字符串开头的命令。
!?string: 重复最近历史列表中,包含这个字符串的命令。


  • 通配符
*: 匹配任意多个字符(包括零个或一个)
?: 匹配任意一个字符(不包括零个)
[characters]: 匹配任意一个属于字符集中的字符
[!characters]: 匹配任意一个不是字符集中的字符
[[:class:]]: 匹配任意一个属于指定字符类中的字符


字符类

[:alnum:]: 匹配任意一个字母或数字
[:alpha:]: 匹配任意一个字母
[:digit:]: 匹配任意一个数字
[:lower:]: 匹配任意一个小写字母
[:upper]: 匹配任意一个大写字母


  • shell命令展开
1.路径名展开,如:echo D*、echo *s、echo [[:upper:]]*、echo /usr/*/share
2.波浪线展开,如:展开家目录echo ~、echo ~foo
3.算术表达式展开,格式:$((expression)),如:echo $((2 + 2))、echo $(((5**2) * 3))
4.花括号展开,如:echo Number_{1..5}、echo {Z..A}、echo a{A{1,2},B{3,4}}b
5.参数/变量展开,如:echo $USER,
printenv-----查看有效的变量列表
6.命令替换:把一个命令的输出作为一个展开模式来使用,如:echo $(ls)、ls -l $(which cp)、file $(ls /usr/bin/* | grep zip)

7.在双引号中,参数展开,算术表达式展开,和命令替换仍然有效;单引号会禁止所有的展开



参考:《The Linux Command Line》、《RedHatLinux指南:基础与系统管理篇

你可能感兴趣的:(Linux基础)