Linux 命令笔记
文件,路径操作:
增:
cp: 拷贝文件或目录
- cp [-r] oldPath newPath
- -r: 递归拷贝, 拷贝目录时用
- -p: 连同档案属性一起复制过去
- -f: 不询问而强制复制
- -s: 生成快捷方式
- -a: 将档案的所有特性都一起复制
touch: 创建新文件或更新文件时间
- touch [-*] fileName
- -a: 只修改存取时间
- -m: 只修改变动时间
- -r: (touch -r a b)使b的时间和a相同
- -t: 指定指定的时间(touch -t 201211142234.50 log.log )
- -t [[CC]YY]MMDDhhmm[.SS] fileName
- C:年前两位
- -t [[CC]YY]MMDDhhmm[.SS] fileName
mkdir: 创建目录
- mkdir [-*] pathName
- -p: 递归创建目录,若父目录不存在则依次创建
- -m: 自定义创建目录的权限, eg:mkdir -m 777 hehe
- -v: 显示创建目录的详细信息
删:
rm: 删除文件或目录
- rm [-d][-f][-r][-v] path
- -d: 彻底删除
- -f: 强制删除
- -r: 递归删除
- -v: 显示执行过程
- -i: 删除提示
rmdir: 删除空目录
- rmdir [-*] path
- -v: 显示执行过程
- -p: 若删除后父目录为空则一并删除
改:
cd: 进入目录
- cd ..: 返回上级目录HuJing1997
- cd: 进入用户的主目录
mv: 移动或重命名文件或目录
- mv [-*] [oldPath] [newPath]
- -b: 覆盖前做备份
- -f: 如存在不询问而强制覆盖
- -i: 如存在则询问是否覆盖
- -u: 较新才覆盖
- -t: 将多个源文件移动到统一目录下,目录参数在前,文件参数在后
查:
ls: 查看目录列表, 相当于 Windows 的 dir
参数:
- -l: 显示详细信息
- -h: 以容易阅读的方式显示大小
- -a: 显示隐藏文件
- -c: 根据ctime排序显示
- -t: 根据文件修改时间排序
- ---color[=WHEN]: 用色彩辨别文件类型
- WHEN: 可以是'never'、'always'或'auto'其中之一
- 文件颜色:
- 白色:表示普通文件
- 蓝色:表示目录
- 绿色:表示可执行文件
- 红色:表示压缩文件
- 浅蓝色:链接文件
- 红色闪烁:表示链接的文件有问题
- 黄色:表示设备文件
- 灰色:表示其它文件
df: 显示磁盘相关信息
- -a: 显示全部文件系统
- -l: 仅显示本地的
- -h: 以容易阅读的方式显示大小
- -k: 以字节数显示快占用情况
pwd: 查看当前的工作目录
cat: 查看文件内容,一次性读取
- cat [-*] filePath
- -n: 编号文件内容再输出
- -E: 在结束行提示$
tac: 与 cat 相反,最后一行最先显示
more: 查看文件内容, 翻页显示,加载整个文件
- +n: 从第n行开始显示
- -n: 每次查看n行数据
- +/String: 搜寻String字符串位置,从其前两行开始查看
- -c: 清屏再显示
- -p: 换页时清屏
less: 查看文件内容, 与 more 相似,不会加载整个文件
nl: 查看文件内容,加上行号
- -b a: 空行也标识行号
- -b t: 空行不列入行号(默认)
tail: 查看文件内容, 默认显示最后十行
- tail [-20] filePath
- filePath: 文件路径
- -20: 显示最后20行
head: 查看文件内容,默认显示开头十行
- -20: 显示20行
find: 在指定目录下查找文件
- find path [-name][-iname] "str"
- path: 在指定的目录下查找
- str: 字符串
- -name: 将字符串作为查找的标准
- -iname: 与-name相同,忽略字母大小写
whereis: 搜索程序, 显示路径
- whereis [-*] name
- -b: 只查找二进制文件
- -m: 定位帮助文件
- -s: 定位源代码文件
- -u: 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
- -B: 指定搜索可执行文件的路径
- -M: 指定搜索帮助文件的路径
- -S: 指定搜索源代码文件的路径
- name: 程序名
grep: 文件搜索工具
- grep [-v] matchPattern [-n][-o][-c] filePath
- matchPattern: 正则表达式, 会显示匹配的行
- -n: 在前边标出行数
- -o: 只输出匹配部分
- -c: 统计匹配到的行数
- -v: 反向查找,即匹配的不显示
- -I: 不区分大小写(只适用于单字符)。
- -l: 只显示文件名
- filePath: 文件路径,可以有多个(file1 file2 ...)
tar: 将文件和目录打包
- tar [-c][-v][-f][-x]
- -c: 建立新的备份文件
- -v: 显示操作过程
- -f file: 指定备份文件或目录
- -x: 解包
系统:
users: 显示当前登陆的用户
last: 查看用户登录日志
lastlog: 查看每个用户最后的登陆时间
useradd: 添加用户
- useradd [-u UID] [-g 初始群组] [-G 次要群组] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 | 新增用户
- -M: 不建立用户家目录!(系统账号默认值)
- -m: 建立用户家目录!(一般账号默认值)
- -r: 建立一个系统的账号,这个账号的 UID 会有限制
- -e: 账号失效日期,格式为『YYYY-MM-DD』
- -D: 查看useradd的各项默认值
userdel: 删除用户
- userdel [-*] userName
- -r: 删除用户相关的文件
- -f: 强制删除
passwd: 修改用户密码
- passwd [-*] userName
- -l: 使密码失效
- -u: 与-l相对,用户解锁
- -S: 列出登陆用户passwd文件内的相关参数,系统管理员才能使用
- -n: 后面接天数,多久不可修改密码天数
- -x: 后面接天数,多久内必须要更动密码
- -w: 后面接天数,密码过期前的警告天数
- -i: 后面接日期,密码失效日期
groups: 查看用户组
ps: 查看当前进程状态
- ps [-a][-e][-f][u]
- -a: 显示所有进程
- -e: 显示所有进程
- -f: 显示UID,PPID等
- -p pid: 指定程序pid
- u: 以用户为主的格式显示
- x: 显示所有程序,不以终端机来区分
pstack PID: 查看进程的线程堆栈情况
kill: 终止进程
top: 查看系统的运行情况
- top [-d 5][-s][-S][-u<root>][-p<pid>][-n<num>]
- -d 5: 屏幕刷新间隔时间
- -s: 保密模式
- -S: 积累模式
- -u<root>: 制定用户名
- -p<pid>: 制定进程
- -n<num>: 循环显示此时
- top交互界面:
- q: 退出程序
- h: 显示帮助画面,给出一些简短的命令总结说明
- k: 终止一个进程
- i: 忽略闲置和僵死进程,这是一个开关式命令
- r: 重新安排一个进程的优先级别
- o/O: 改变显示项目的顺序
- l: 切换显示平均负载和启动时间信息
- m: 切换显示内存信息
- t: 切换显示进程和CPU状态信息
- c: 切换显示命令名称和完整命令行
- M: 根据驻留内存大小进行排序
- P: 根据CPU使用百分比大小进行排序
- T: 根据时间/累计时间进行排序
- w: 将当前设置写入~/.toprc文件中
mount: 加载与查看挂载情况
umount: 取消挂载
dmesg: 查看系统日志,与 tail /var/log/messages 内容相同
ulimit: 查看与修改系统并发限制(当前shell有效)
- ulimit [-a][-s 100][-m 5000][-v 5000][-n 1000]
- -a: 显示所有当前设定
- -s 100: 修改堆栈的限制大小
- -m 5000: 修改内存上限(KB)
- -v 5000: 修改虚拟内存上限(KB)
- -n 1000: 同时最多打开的文件数
free: 显示系统内存情况
service: 管理并查看服务
apt-get: 更新系统,安装软件等
dpkg: 安装,管理软件包
- dpkg [-i package.deb][-r package][-P package][-L package][-l package][-l]
- -i package.deb: 安装包
- -r package: 删除包
- -P package: 删除包(删除配置文件)
- -L package: 显示与该包关联的文件
- -l package: 显示该包版本(无参则列出已安装的包)
halt: 关机
网络命令:
ifconfig: 配置与查看网络信息(临时配置)
- ifconfig [name [down|up][ip][netmask **][broadcast **] ]
- name: 指定网络设备名
- down: 关闭指定的网络设备
- up: 启动指定的网络设备
- ip: 设置指定网卡的IP
- netmask: 指定子网掩码
- broadcast: 指定网关
macchanger: 配置mac地址(临时配置)
- macchanger -m 00:11:11:11:11:11 eth0: 修改指定网卡的mac地址
netstat: 查看网络状态信息
- netstat [-a][-n][-t][-u][-p]
- -a: 显示连接的所有Socket
- -n: 直接使用ip地址
- -t: 显示TCP协议的连线状况
- -u: 显示UDP协议的连线状况
- -p: 显示使用Socket的程序识别码和程序名称
route: 显示和操作IP路由表
其他命令:
clear: 清屏
man: 可以显示命令的帮助手册
- man command
- command: 指定命令
info: 查看命令的帮助手册
- info command
watch: 循环执行指定命令, 后面跟命令
- watch [-n 2] command
- -n 2: 每隔2s循环执行
sort: 进行排序
- -n: 依照数值大小排序
- -r: 以相反顺序排序
echo: 显示字符串
- echo [-e][-n] "str"
- -e: 激活转义字符
- -n: 显示后光标不换行
- str: 字符串
vim: Linux下字符界面的文本编辑器
- shell命令:
- vim file: 打开vim并编辑文件
- vim file1 file2...: 同时打开多个文件
- vim窗口命令:
- 文件窗口:
- :open file --在当前窗口打开新文件
- :split file --在新窗口打开文件
- :new file --用新窗口打开文件,同 :split file
- :bn --切换到下一个文件
- :bp --切换到上一个文件
- :args --查看当前打开的文件列表(当前正在编辑的文件会用[]括起来)
- :e ftp://192.168.10.76/abc.txt
- :e \\qadrive\test\1.txt --打开远程文件
- :split --打开一个新窗口,光标停在顶层的窗口上
- :new --打开一个新窗口,光标停在顶层的窗口上
- :vsplit --横向打开窗口。
- Ctrl+ww --移动到下一个窗口
- Ctrl+wj --移动到下方的窗口
- Ctrl+wk --移动到上方的窗口
- 其他命令:
- Esc/Ctrl+[ -- 键入命令
- :!command --执行shell命令
- :suspend/Ctrl+Z --挂起vim,回到shell,fg 返回vim
- :!perl -c script.pl --检查perl脚本语法,不用退出vim
- :!perl script.pl --执行perl脚本, 不用退出vim
- :help --显示帮助文档
- :help i --显示i的帮助文档(<Esc>:特殊键用< >, -t:启动参数用-)
- :set number --显示行号
- :set nonumber --关闭行号显示
- 编辑命令:
- 插入:
- i --在当前位置插入
- A --在当前行尾插入
- I --在当前行首插入
- o --在当前行后插入一行
- O --在当前行前插入一行
- 拷贝粘贴剪切:
- yy --拷贝当前行
- 2yy --拷贝当前行开始的2行
- p --在当前光标后粘贴
- P --在当前行前粘贴
- :1,10 co 20 --将1-10行插入到第20行之后。
- :1,$ co $ --将整个文件复制一份并添加到文件尾部
- v --进入选择模式,相当于在Windows下按住 Shift选择
- V --进入选择模式,整行选择
- ddp --交换当前行和其下一行
- 2dd --剪切当前行之后的2行
- :1,10d --将1-10行剪切
- :1, 10 m 20 --将第1-10行移动到第20行之后
- 替换:
- ra --将当前光标所在字符替换为a
- s/old/new/ --用old替换new,替换当前行的第一个匹配
- s/old/new/g --用old替换new,替换当前行的所有匹配
- %s/old/new/ --用old替换new,替换所有行的第一个匹配
- %s/old/new/g --用old替换new,替换所有匹配
- :10,20 s/^/text/g --在第10行到第20行每行前面加上text(:3,5 s/^/#/g --注释3-5行, :3,5 s/^#//g --解除3-5行的注释, :1,$ s/^/#/g --注释整个文档, :%s/^/#/g --注释整个文档)
- ddp --交换光标所在行和下一行
- 移动:
- h --左移一个字符(5h --左移5个字符)
- l --右移一个字符(5l --右移5个字符)
- k --上移一个字符(5k --上移5个字符)
- j --下移一个字符(5j --下移5个字符)
- w --向后移动一个单词(5w --向后移动5个单词)
- b --向前移动一个单词(5b --向前移动5个单词)
- e --同 w ,光标停在单词尾部
- ge --同 e ,光标停在单词尾部
- ^ --移动到本行第一个非空白字符
- 0 --移动到本行第0个字符
- <HOME> --同0
- $ --移动到行尾(3$ --移动到下面3行的行尾)
- gg --移动到文件头(10gg --移动到第10行首)
- [[ --同 gg
- G --移动到文件尾(10G --移动到第10行尾)
- ]] --同 G
- fx --移动到本行光标后第一个为x的字符(3fx --移动到本行光标后第3个为x的字符)
- Fx --同 fx ,反向查找
- :20 --跳到20行行首
- Ctrl+e --向下滚动一行
- Ctrl+y --向上滚动一行
- Ctrl+d --向下滚动半屏
- Ctrl+u --向上滚动半屏
- Ctrl+f --向下滚动一屏
- Ctrl+b --向上滚动一屏
- 查找:
- /text --查找text, 按n查找下一个, N查找上一个
- ?text --查找text(反向查找), 按n查找下一个, N查找上一个
- */# --查找光标当前的单词,相当于/text
- :set ignorecase --查找忽略大小写
- :set noignorecase --查找不忽略大小写
- :set hlsearch --高亮显示查找结果
- :set nohlsearch --取消高亮显示查找结果
- :nohlsearch --关闭当前的高亮显示,当再次查找时恢复高亮
- :set incsearch --逐步搜索模式,对当前键入的字符进行查找,不必等输入完成
- :set wrapscan --重新搜索,当搜索到文件头或尾时,返回重新搜索
- 撤销:
- u --撤销
- U --撤销对整行的操作
- Ctrl+r --撤销刚才的撤销
- 删除:
- x --删除当前字符(3x --删除当前光标开始向后三个字符)
- X --删除当前字符的前一个字符, 同 dh
- dl --删除当前字符, 同 x
- dh --删除前一个字符
- dd --删除当前行
- dj --删除上一行
- dk --删除下一行
- 10d --删除当前行开始的10行。
- D --删除当前字符至行尾, 同 d$
- d$ --删除本行当前字符之后的所有字符
- kdgg --删除当前行之前所有行(不包括当前行)
- jdG --删除当前行之后所有行(不包括当前行)
- :1,10d --删除1-10行
- :11,$d --删除11行及以后所有的行
- :1,$d --删除所有行
- J --删除两行之间的空行, 合并两行
- 退出
- :wq --保存并退出
- ZZ --保存并退出
- :q! --强制退出并忽略所有更改
- :e! --放弃所有修改,并打开原来文件
- :close --关闭窗口,最后一个窗口不能使用此命令,可以防止意外退出vim
- :q --如果是最后一个被关闭的窗口,那么将退出vim
- 插入:
- 文件窗口:
---------------------------------------------------bash快捷键---------------------------------------------------
编辑命令:
- Ctrl+a:移到命令行首
- Ctrl+e:移到命令行尾
- Ctrl+f:右移
- Ctrl+b:左移
- Alt+f:按单词右移
- Alt+b:按单词左移
- Ctrl+xx:在命令行首和光标之间移动
- Ctrl+u:从光标处删除至命令行首
- Ctrl+k:从光标处删除至命令行尾
- Ctrl+w:从光标处删除至字首
- Alt+d:从光标处删除至字尾
- Ctrl+d:删除光标处的字符
- Ctrl+h:删除光标前的字符
- Ctrl+y:粘贴至光标后
- Alt+c:从光标处更改为首字母大写的单词
- Alt+u:从光标处更改为全部大写的单词
- Alt+l :从光标处更改为全部小写的单词
- Ctrl+t :交换光标处和之前的字符
- Alt+t:交换光标处和之前的单词
- Alt+Backspace:与 Ctrl+w 类似, 分隔符有些差别
重新执行命令
- Ctrl+r:逆向搜索命令历史
- Ctrl+g:从历史搜索模式退出
- Ctrl+p:上一条命令
- Ctrl+n:下一条命令
- Alt+.:使用上一条命令的最后一个参数
控制命令
- Ctrl+l:清屏
- Ctrl+o:执行当前命令,并选择上一条命令
- Ctrl+s:阻止屏幕输出
- Ctrl+q:允许屏幕输出
- Ctrl+c:终止命令
- Ctrl+z:挂起命令