Bash 常用快捷键 快捷键 作 用 Ctrl+A 把光标移动到命令行开头。如果我们输入的命令过长,则在想要把光标移动到命令行开头时使用 Ctrl+E 把光标移动到命令行结尾 Ctrl+C 强制中止当前的命令 Ctrl+L 淸屏,相当于 clear 命令 Ctrl+U 刪除或剪切光标之前的命令。假设输入了一行很长的命令,无须使用退格键一个一个字符地刪除, 使用这个快捷键会更加方便 Ctrl+K 删除或剪切光标之后的内容 Ctrl+Y 粘贴 Ctrl+U 或 Ctrl+K 剪切的内容 Ctrl+R 在历史命令中搜索,按下 Ctrl+R 组合键之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索 Ctrl+D 退出当前终端 Ctrl+Z 暂停,并放入后台。这个快捷键涉及工作管理的内容,我们会在后续中详细介绍 Ctrl+S 暂停屏幕输出 Ctrl+Q 恢复屏幕输出 Linux 命令基本格式: 命令 [选项] [参数] 说明:命令后的 #为命令的备注说明 显示目录下的内容 ls 选项: -a 显示所有文件(包括隐藏文件);-d 显示目录信息,而不是目录下的文件;-h 人性化显示,按照我们习惯的单位显示文件大小;-i 显示文件的 i 节点号;-l 长格式显示; 参数:具体的目录 经验:可以使用简写的 ll,ll -a,或者 ls -ahil 等 切换目录 cd 选项:-P(大写)是指如果切换的目录是软链接目录,则进入其原始的物理目录,而不是进入软链接目录; -L(大写)是指如果切换的目录是软链接目录,则直接进入软链接目录。 参数:具体的目录 经验:cd 命令选项很少使用,常用的有 : 切换用户的权限根目录 cd ~ cd - #上次目录 cd .. #上级目录 cd . #当前目录 参数前不加/是当前目录向下寻找,加/是绝对路径根目录开始寻找 创建目录 mkdir 选项:-p: 递归建立所需目录 参数:需创建目录 经验:对于一次创建一串并不存在的目录使用 -p 例如:mkdir -p /a/b/c/d 删除目录 rmdir 选项:-p: 递归刪除目录 参数:具体目录 经验:-p 递归删除,rmdir一般不常用,因为不能删除非空目录 (触摸) 文件不存在创建文件,存在修改访问时间 touch 选项:-a 只修改文件的访问时间(Access Time);-c 如果文件不存在,则不建立新文件;-d 把文件的时间改为指定的时间;-m 只修改文件的数据修改时间(Modify Time) 参数:具体的文件名 经验:touch bols #建立名为 bols 的空文件,存在也不报错 删除 rm 是强大的删除命令,不仅可以删除文件,也可以删除目录 选项:-f 强制删除(force),-i 交互删除,在删除之前会询问用户,-r 递归删除,可以删除目录(recursive) 参数:文件或目录路径 经验:rm不加选项默认是 rm -i,会进行询问。 rm -r 目录或文件 #删除目录需要加-r进行递归删除下面内容,否则报错,rm -r -f或rm -rf 进行强制,-f就不会再一一进行询问直接强制删除,(认真检查删除目录,认真检查删除目录,认真检查删除目录,重要的事情说三遍)强制删除写错了删除路径可能会导致严重的后果, extundelete 这些虽然能进行恢复但也都会有丢失。 复制 cp 选项:-a 相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍; -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接; -i 询问,如果目标文件已经存在,则会询问是否覆盖; -l 把目标文件建立为源文件的硬链接文件,而不是复制源文件; -s 把目标文件建立为源文件的软链接文件,而不是复制源文件; -p 复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间); -r 递归复制,用于复制目录; 参数:cp [选项] 源文件 目标文件 经验:默认执行的是cp -i; cp cangls /tmp/ #把源文件不改名复制到 /tmp/ 目录下; cp cangls /tmp/bols #改名复制;cp -r /root/movie/ /tmp/ #目录原名复制; 移动(剪切) mv 是用来移动目标的命令 选项:-f 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖; -i 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项); -n 如果目标文件已经存在,则不会覆盖移动,仅移动不重复文件,而且不询问用户; -v 显示详细信息; 参数:【选项】 源文件 目标文件 经验:可以通过适配一次移动多个文件; mv -vn bols cangls lmls /tmp/ 将多个文件移动到/tmp 下; mv cangls /tmp/ #移动之后,源文件会被删除,类似剪切; mv movie/ /tmp/ #也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入"-r"选项; mv -f cangls /tmp/ #就算 /tmp/ 目录下已经存在同名的文件,由于"-f"选项的作用,所以会强制覆盖; mv -v *.txt /tmp/ 显示移动过程; mv bols lmls #把 bols 改名为 lmls; 查看命令历史 history #简单查看历史 history | more #详细历史内容 査看文件内容 cat (concatenate这个单词的意思连接文件) 选项:-A 相当于 -vET 选项的整合,用于列出所有隐藏符号; -E:列出每行结尾的回车符 $; -n:显示行号; -T:把 Tab 键 ^I 显示出来; -V:列出特殊字符; 参数:文件路径 经验:查看文件内容,不论多少都会一次性全部显示出来。PgUp+上箭头组合键向上翻页 分屏显示文件 more 选项: 参数:文件路径 经验: 空格键:向下翻页。b:向上翻页。回车键:向下滚动一行。/ 字符串:搜索指定的字符串。q:退出。 显示文件开头 head 选项:-n 行数 从文件头开始,显示指定行数;-v:显示文件名; 参数:文件路径 经验:head -n 20 anaconda-ks.cfg 显示前20行,head -20 anaconda-ks.cfg 也可以这样直接写行数 显示文件结尾 tail 用来显示文件结尾对应head 选项:-n 行数:从文條尾开始,显示指定行数;-f:监听文件的新増内容 参数:文件路径 经验:tail -n 20 anaconda-ks.cfg 或者简写末尾20行: tail -20 anaconda-ks.cfg 创建软硬连接( ln (link) 创建软硬连接 选项:-s:建立软链接文件。如果不加"-s"选项,则建立硬链接文件; -f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件; 参数:原路径 软连接路径 经验: ln -s /root/check /tmp/check-soft #一般以创建软连接(类似微软快捷方式为主,直接指向软链接进行操作与指向原地址一样的效果,对应运维人员处理会特别方便),硬链接是将同一个文件复制了两份,修改任何一个另一个也会修改(一般使用较少)。 査看文件详细信息 stat (status) 査看文件详细信息 选项:-f:査看文件所在的文件系统信息,而不是査看文件的信息。 参数: 文件目录 经验:stat abc 搜索 find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件 find 搜索路径 [选项] 搜索内容 find 是比较特殊的命令,它有两个参数:第一个参数用来指定搜索路径;第二个参数用来指定搜索内容。 选项: -name: 按照文件名搜索; -iname: 按照文件名搜索,不区分文件名大小; -inum: 按照 inode 号搜索; -size[+-]大小:按照指定大小搜索文件 -type d:查找目录 -type f:查找普通文件 -type l:查找软链接文件 经验: find / -name yum.conf #完全匹配 find . -name '*.txt' #在当前目录下模糊匹配 find . -type f | xargs grep 'your_string' #在当前目录搜索文件内容含有某字符串(大小写敏感)的文件 find . -type f -name '*.sh' | xargs grep 'your_string'#在当前目录搜索文件内容含有某字符串(大小写敏感)的特定文件 find . -type f -name '*.sh' | xargs grep -i 'your_string' #在当前目录搜索文件内容含有某字符串(忽略大小写)的特定文件 find /etc -type d #查找/etc/目录下有哪些子目录 网络探测 ping 网络命令,主要通过 ICMP 协议进行网络探测,测试网络中主机的通信情况 选项: -b: 后面加入广播地址,用于对整个网段进行探测; -c 次数: 用于指定 ping 的次数; -s 字节: 指定探测包的大小; 经验:ping -c 10 IP或域名 网络状态查看命令 netstat 是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接 选项: -a:列出所有网络状态,包括 Socket 程序; -c秒数:指定每隔几秒刷新一次网络状态; -n:使用 IP 地址和端口号显示,不使用域名与服务名; -p:显示 PID 和程序名; -t:显示使用 TCP 协议端口的连接状况; -u:显示使用 UDP 协议端口的连接状况; -I:仅显示监听状态的连接; -r:显示路由表; 经验: netstat -tuln #查看本机开启的端口(服务异常时常用此命令检查端口)。 netstat -an #监听状态的连接(LISTEN)、已经建立连接状态的连接(ESTABLISHED)、Socke 程序连接等 查看磁盘使用情况 df 查看磁盘使用情况单位KB df -h 查看磁盘使用情况单位百分比 du 查询当前目录下使用的大小 文件夹及文件大小查询 du -h --max-depth=1 //查询文件夹 cd / 表所有目录 进程管理 "ps aux"可以查看系统中所有的进程; 包括CPU,内存使用情况等 "ps -le"可以查看系统中所有的进程,而且还能看到进程的父进程的PID和进程优先级; "ps -l"只能看到当前Shell产生的进程; ps -fe|grep fftest.log 查看制定文件被哪些进程使用 ps -ef 和 aux 是不能看到僵尸进程的 top 可以看到僵尸进程的个数 用ps命令查看僵尸进程: ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 这时,可以使用 kill -HUP 进程ID 杀掉这个进程。如果再次查看僵尸进程还存在,可以kill -HUP 进程ID(父进程)。 如果有多个僵尸进程,可以通过 ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'|awk 'print{$2}'|xargs kill -9 处理。 pstree 查看进程树 kill 进程ID 通过进程ID杀掉进程 killall 进程名 通过名字杀掉进程 pkill 终止进程 按终端号踢出用户 kill -15 pid,kill -9(谨慎使用) 循环执行定时任务 crontab [选项] 循环执行定时任务 选项: -e:编辑 crontab 定时任务; -l:查询 crontab 定时任务; -r:删除当前用户所有的 crontab 定时任务。如果有多个定时任务,只想删除一个,则可以使用“crontab -e”; -u 用户名:修改或删除其他用户的 crontab 定时任务。只有 root 用户可用; vi /etc/crontab 系统定时任务,crontab -e主要是当前用户自己的定时任务 以下是 crontab 文件的格式: {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} o minute: 区间为 0 – 59 o hour: 区间为0 – 23 o day-of-month: 区间为0 – 31 o month: 区间为1 – 12. 1 是1月. 12是12月. o Day-of-week: 区间为0 – 7. 周日可以是0或7. at 一次性执行定时任务 后台工作 nohup 命令的作用就是让后台工作在离开操作终端时,也能够正确地在后台执行不受用户状态影响 "命令 &" #把命令放入后台执行 但用户退出后命令将结束 jobs 命令可以用来查看当前终端放入后台的工作 选项: -l:显示工作的 PID; 如果想把后台工作恢复到前台执行,就需要执行 fg 命令。 参数:%工作号:"%"可以省略,但是注意工作号和PID的区别; 把后台暂停的工作恢复到后台执行 bg %工作号 持续更新... ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:全职码农,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |