Linux常用指令和基础
1.Linux前身Unix。1970年Unix元年。Linux时间戳:1970年0点0分0秒开始的秒数。
2.GNU计划。开源计划。GNU/Linux。GCC(GNU Compile Collection)
3.Linux分支:Ubuntu,Debian,Centos等。
4.关机。
# shutdown -r 重启 # shutdown -h now 马上关机 # shutdown -h 10 10分钟后关机
5.文件系统。
Bin: binary 二进制文件,文件都可以运行。 Dev: device 外接设备。需要挂载(类似Windows分配盘符)后才能使用这些外接设备。 Etc: et cetera 配置文件。 Home: home 除root外其他用户的家目录。(类似Windows下的User/用户目录) Proc: process 进程。 Root: root root的home目录。 Sbin: super binary 二进制文件。管理员运行。 Tmp: temporary 临时文件。 Usr: user 用户安装的软件。(类似Windows的program files) Var: variable 日志文件。 Mnt: mount 挂载文件。 Lib library 库文件。
6.路径。
-
相对路径:相对当前工作目录的路径。
-
绝对路径:从根目录开始的路径。
./ 当前目录 ../ 上一级目录 / 根目录 ~ 当用户的家目录
7.基础命令
# ls list 列出当前工作目录下的所有文件夹和文件的名称。 # ls [-l] 路径 [-list] 以详细列表形式列出所有文件夹和文件。 # ls [-l] 路径 [-all] 列出所有文件和文件夹。包括隐藏文件。隐藏文件以.开头。(e.g.: .bashrc) -rwxrwxrwx 1 root root 1234 3月 24 22:24 hello.cpp drwxrwx--- 10 root root 48899 4月 12 14:44 code - 文件 d 文件夹 rwx- 读/写/可执行/无权限 rwx/rwx/rwx 文件拥有者/同组用户/其他组用户的权限 # pwd print work dir 当前工作目录 # cd change dir 切换目录 # mkdir 路径 make dir 创建目录 # mkdir [-p] 路径 [-p] 多层目录创建过程中,对于不存在的目录自动创建 # touch 路径 创建文件 # cp 源路径 目标路径 copy 复制文件 # cp [-r] 源路径 目标路径 [-recursive] 递归复制文件夹 # mv 源路径 目标路径 move 移动/重命名 # mv [-r] 源路径 目标路径 [-recursive] 递归移动/重命名文件夹 # rm 路径 remove 删除文件 # rm [-r] 路径 [-recursive] 递归删除文件夹 # rm [-f] 路径 [-force] 强制删除,不提示删除警告 正则表达式,通配符*匹配所有文件 # vim 路径 打开并编辑文件(可以存在/不存在) # cat 路径 concatenate 在终端查看文件 # cat 路径1 路径2 > 新路径 concatenate 合并文件内容并保存成新文件
8.输出重定向。
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果保存到文件中进行后续的分析统计。
> 覆盖输出,覆盖掉原文件(如果存在)的内容(如果文件不存在,会自动创建新的文件) >> 追加输出,不会覆盖原文件的内容
9.进阶指令
# df disk free 查看磁盘空间 # df [-h] [-human-readable] 人类可读格式查看磁盘空间 # free [-bkmgh] [-Byte/KB/MB/GB/human-readable] 以Byte/KB/MB/GB/合适单位显示内存使用情况 # free [-s] [-second] <间隔秒数>持续观察内存使用状况 # head [-n] 文件 [-number] 在终端显示文件前n行。默认显示前10行 # tail [-n] 文件 [-number] 在终端显示文件后n行。默认显示后10行 # tail [-f] 文件 [-for] 循环读取文件末尾的内容,跟踪文件增长情况。该命令一般用于查看系统的日志 # less 文件 查看文件 # less [+n] 文件 [+number] 从number行开始查看文件 辅助功能键: Q 退出less 命令 空格键 滚动一页 b(back) 向上翻一页 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 # more 文件 查看文件 # wc [-lwc] [-line/word/char] 统计文档的行数/单词数/字节数 # date 显示和设置系统时间日期 格式: 一个加号后接数个标记 标记: %c : 直接显示日期与时间 %D : 直接显示日期 (mm/dd/yy) %T : 直接显示时间 (24 小时制) %H : 小时(00..23) %M : 分钟(00..59) %S : 秒(00..61) %Y : 完整年份 (0000..9999) %m : 月份 (01..12) %d : 日 (01..31) e.g.: # date > 三 5月 12 14:08:12 CST 2010 # date '+%c' > 2010年05月12日 星期三 14时09分02秒 # date '+%D' //显示完整的日期 > 05/12/10 # date '+%T' //显示时间 > 14:09:31 # cal [-13y] calendar [-1/3/year] 查看当前月/前中后月/某年的日历 # clear 清屏 Swap磁盘:用于临时内存,当系统真实内存不够时可以临时使用磁盘空间来充当内存。
10.管道。用于“过滤”,“特殊”,“扩展处理”。配合指令使用,实现相关功能。
以管道作为分界线,前面的指令有个输出,后面的指令需要先输入,然后再过滤,最后再输出,通俗的讲管道前面指令的输出就是后面指令的输入。
grep 过滤,查找内容包含指定的字符串的文件 e.g.: # ls / | grep y 通过管道查询根目录下包含"y"字母的文件名称 # ls / | wc -l 通过管道查询根目录下文件个数
11.高级指令
# hostname 操作(读取、设置等)服务器主机名 # hostname [-f] [-fqdn] 显示主机完全格式的域名 # id [-g] [username] [-group] 显示用户及所属群组的ID # whoami 显示当前登录的用户名,一般用于shell脚本用于获取当前操作的用户名记录日志 # ps [-ef] process status [-ef] 显示全部的进程[-e]的全部的列(全字段)[-f],类似于 windows 的任务管理器 # ps -u username [-user] 显示指定用户的进程信息 # ps [-ef] | grep 进程关键字 使用grep过滤查找指定格式的进程 属性: UID:user id PID: process id PPID: parent process id (父进程) C: cpu occupation rate STIME: start time TTY: 终端设备,“?”表示该进程不是由终端设备发起 TIME:进程的执行时间 CMD:command(所执行的指令) # top 查看服务器的进程占的资源,q键退出 属性: PR:pagerank 优先级 VIRT:虚拟内存 RES:常驻内存 SHR:共享内存 s:进程的状态(S:睡眠,R:运行) %CPU:cpu占用率 %MEM:内存占用率 快捷键: M:memory,按内存降序排列 P:cpu,按CPU占用率降序排列 1:服务器包含多个CPU时,查看各个CPU的详细信息 # du [-sh] disk usage [-summarize/human-readable] 查看目录或文件的大小,显示总计 # du [-max-depth=<目录层数>] 超过指定层数的目录后,予以忽略 # find 路径 [-name] 名字 在指定目录下查找文件名 # find 路径 [-type] f/d file/dir 在指定目录下查找一般文件[f]或者文件夹[d] # find 路径 [-option] -exec 指令 {} \; 对find指令的结果执行新的指令,功能类似管道? e.g.: # find . -type f -perm 644 -exec ls -l {} \; 查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件 # find 路径 [-option] | grep 关键字 使用管道功能对find结果执行新的指令 e.g.: # find . -type f | wc -l; 查看当前目录中一般文件并统计个数 # service 服务名 [start/stop/restart] 控制一些软件的服务启动/停止/重启 # kill 进程pid 根据进程id杀死进程 # killall 进程名称 杀死进程 # ifconfig 显示网络设备信息 # reboot 重启 # shutdown 关机 # uname [-a] [-all] 查看操作系统信息(类型,主机名,内核版本,发布时间) # netstat [-tnlp] [-tcp/numeric/listening/programs] 查看网络状态 选项说明: -a 所有的socket -t 显示TCP传输协议的连接 -n 直接使用IP地址,而不通过域名服务器 -l 显示状态为listening的服务器的Socket -p 显示正在使用Socket的程序识别码pid和程序名称 # man 指令 manual 手册,按键q退出
12.在命令行中快速删除光标前后的内容。 前:ctrl+u,后:ctrl+k。
13.Vim在命令模式的快捷键。
行首: $ shift+6 行尾: ^ shift+4 首行: gg 或 :0 尾行: G 或 :$ 向上翻屏: ctrl+b 向下翻屏: ctrl+f 复制行: yy / 数字yy 粘贴: p 剪切/删除: dd / 数字dd 撤销: :u / u undo 恢复: ctrl+r recover 光标移动指定行: 数字G / :行号 向上下左右移动n行: 数字↑ / 数字↓ / 数字← / 数字→
14.Vim末行模式操作。
查找: /关键词 n下一个,N上一个 取消高亮: :nohl 替换: %表示整个文件 /g表示全局 :s/关键字/新内容 替换光标所在行符合条件的第一个关键字 :s/关键字/新内容/g 替换光标所在行符合条件的所有关键字 :%s/关键字/新内容 替换所有行符合条件的第一个关键字 :%s/关键字/新内容/g 替换所有行符合条件的所有关键字 :1,ns/关键字/新内容 第一行到第n行 :.,ns/关键字/新内容 当前行到第n行 显示行号: :set nu 取消行号: :set nonu
15.使用Vim打开多个文件,并在末行模式切换文件。
查看打开的文件: :files %a 表示正在打开的文件 active;# 表示上一个打开的文件 指定文件的名称来切换文件: :open 文件名 切换上下文件: :bn / :bp bn (next)切换到下一个文件,bp(previous)切换到上一个文件
16.Vim配置文件。
~/.vimrc 个人配置文件 /etc/.vimrc 全局配置文件,当关于某项配置起冲突时,以个人配置文件中的配置为准