1 Linux命令简介
1.1 命令格式
[root@test root]# command [-options] parameter1 parameter2 ...
指令 选项 参数(1) 参数(2)
说明:
1. 提示符:root账户提示符为#,一般身份用户提示符为$
2. 指令:区分大小写
3. 选项:可以使用-h或者--help
4. 指令太长:可使用\符号使指令连续到下一行
5. 使用分号表示连续执行:ll bashrc ; ll --time=atime bashrc ; ll --time=ctime bashrc
命令转义:
[root@test root]# \command
这样就使用原来的命令而不是alias
1.2 参数含义
一般来说,linux的命令参数有其一般含义:
-f --force 略过不存在的文件,不显示任何信息
-i --interactive 进行任何删除操作前必须先确认
-r/R --recursive 同时删除该目录下的所有目录层
-h --h是可以以k M G 等等为单位,不是只显示一个数字
-h --help 显示此帮助信息并离开
-v --verbose 详细显示进行的步骤
-v --version 显示版本信息并离开
1.3 切换终端
切换文字终端和图形界面:
[Ctrl] + [Alt] + [F1] ~ [F6] :文字界面登陆 tty1 ~ tty6 终端机;
[Ctrl] + [Alt] + [F7] :图形桌面。
1.4 基础命令练习
date | 日期 |
cal | 日历 |
bc | 计算器 |
Ctrl + c | 中断目前程序 |
Ctrl + d | 退出exit |
[Tab] | 命令与档案补全,ca[tab][tab] ,显示所有以ca开头的文件 |
q | 很多指令常定义的退出钮 |
1.5 linux快捷键
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
ctrl-l 清屏
ctrl-r 逆向搜索包含输入字符串的命令,继续按 Ctrl+r,再向上搜索,可使用 Ctrl+c 中断命令
在终端直接上翻,下翻【比如ls输出太多,看不到上面显示的】
SHIFT+ PAGEUP
SHIFT + PAGEDOWN
1.6 linux查询命令man_info
/usr/man/man2 系统调用─关于核心函数的文档
/usr/man/man3 C库调用─libc函数的使用手册页
/usr/man/man4 特殊文件─关于/dev目录中的文件的信息
/usr/man/man5 文件格式─/etc/passwd和其他文件的详细格式
/usr/man/man6 游戏
/usr/man/man7 宏命令包─对Linux文件系统、使用手册页等的说明
/usr/man/man8 系统管理─根操作员操作的使用手册页
/usr/man/man9 核心例程─关于Linux操作系统内核源例程或者内核模块技术指标的文档
查询linux c函数open
#man 2 open
空格 | 下翻一页 |
[Page Up] | 上翻一页 |
[Page Down] | 下翻一页 |
[Home] | 第一页 |
[End] | 末页 |
/String | 向下查询String |
?String | 向上查询String |
n,N | n表示下一个匹配,N表示上一个匹配 |
q | 退出 |
1.7 linux查看文件命令
1.7.1 直接查看cat_tac_nl
cat: 由第一行开始显示文件内容
cat -n 显示行号
cat -A 显示特殊字符
tac: 从最后一行开始显示文件内容,可以看出 tac 是 cat 倒写形式
nl : 显示的时候,顺便输出行号!
1.7.2 可翻页查看more_less
more: 一页一页的显示文件内容less:与more 类似,但是比 more 更好的是,他可以往前翻页!
空格 | 下翻一页 |
[Page Up] | 上翻一页 |
[Page Down] | 下翻一页 |
[Home] | 第一页 |
[End] | 末页 |
/String | 向下查询String |
?String | 向上查询String |
n,N | n表示下一个匹配,N表示上一个匹配 |
q | 退出 |
1.7.3 数据选取head_tail
head: 只看头几行#假设a.txt有100行
head a.txt #默认显示前10行(L1~L10)
head -n 20 a.txt #显示前20行(L1~L20)
head -n -10 a.txt#打印末尾10行之前(L1~L90)
tail: 只看结尾几行
#假设a.txt有100行
tail a.txt #默认显示最后10行(L91~L100)
tail -n 20 a.txt #显示最后20行(L81~L100)
tail -n +50 a.txt #显示50行以后内容(L51~L100)
tail -f tester.log #动态追踪tester.log的最后10行,直到用户输入Ctrl+c
综合示例:
查看a.txt的L11~L20
head -n 20 a.txt | tail -n 10
1.8 命令file:查看文件类型
file 文件名
which cd #查找的是命令,参数-a将所有可以找到的指令均列出,而非第一个。
whereis passwd #查找的是档案名(命令) 从数据库中找,快,非最新,系统的一般有,临时新建的不一定。不能通配符
locate passwd #查找的是档案名(命令) 从数据库中找,快,非最新,系统的一般有,临时新建的不一定。不能通配符
find /etc -name '*passwd*' #查找的是档案名(命令) 遍历硬盘,慢,最新,能通配符。
1.9 命令history:搜索历史命令
bash将使用过的旧命令记录在家目录下的~/.bash_history 文件下(默认1000条)。特别的,~/.bash_history 记录的是前一次登入以前所执行过的指令, 而至于这一次登入所执行的指令都被暂存在暂内存中,当您成功的注销系统后,该指令记忆才会记录到 .bash_history 当中!
[root@linux ~]#history 3
利用history执行命令
[root@linux ~]#!number
[root@linux ~]#!command
[root@linux ~]#!!
参数:
number:执行第几笔指令的意思;
command :由最近的指令向前搜寻"指令串开头为 command"的那个指令,并执行;
!!:就是执行上一个指令(相当于按↑按键后,按 Enter)
统计命令使用频率
cat history.bak | awk '{for(i=1;i<=5;i++) $i=""; print}' | sort | uniq -c | sort -r -n > history.sort.bak
1.10 命令time:测量程序运行时间
#time find . -name "mysql.sh"
real 0m5.064s <== 实际使用时间(real time)
user 0m0.020s <== 用户态使用时间(the process spent in user mode)
sys 0m0.040s <== 内核态使用时间(the process spent in kernel mode)
1.11 命令alias:加入命令别名
系统设置 | 永久,给全系统使用 | /etc/bashrc source /etc/bashrc |
用户设置 | 永久,给个人用户使用 | ~/.bashrc source /home/xxx/.bashrc |
命令行设置 | 临时,当次有效 | #alias cl='clear' |
BASH Shell的配置文件: