linux命令学习(一)
1. 强大好用的SHELL

如果把整台电脑比喻成人类社会,那么服务程序就是一名翻译官,将用户提出的需求转换成硬件能够接收的指令代码,再将处理结果反馈成用户能够读懂的内容格式,一来一回,用户便使用上硬件资源了。看到被一层层“包裹”起来的硬件设备,有没有感觉像一只蜗牛的壳呢?英文中的壳叫做shell,由此我们在行业中便将用户终端程序也叫做了shell,方便好记。Shell就是终端程序的统称,它担当起了人与内核(硬件)之间的翻译工作,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器,主要有以下4项优势,读者可以在今后的学习和生产工作中细细体会Linux系统命令行的美妙之处,真正从心里爱上它们。
1:通过上下方向键来调取过往执行过的Linux命令;
2:命令或参数仅需输入前几位就可以用Tab键补全;
3:强大的批处理脚本;
4:实用的环境变量功能。
2.Linux命令
命令格式:命令名称 [命令参数] [命令对象]
命令名称、命令参数与命令对象之间要用空格进行分隔,且严格区分大小写字母。
man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。 eg:#man man
Bash解释器4个常用的快捷键:
- Tab键:补全命令
- Ctrl+c键:终止操作
- Ctrl+d键:结束键盘输入,简称EOF,即退回用户登录界面
- Ctrl+l键:清屏
-
常用系统工作命令:
- echo命令:用于在终端设备上输出字符串或变量提取后的值,语法格式为:“echo [字符串] [$变量]”。
# echo Linux 输出:Linux
# echo $SHELL 提取SHELL变量的值进行输出
- date命令:用于显示或设置系统的时间与日期,语法格式为:“ date [+指定的格式]”。
# date
# date "+%Y-%m-%d %H:%M:%S"
# date -s "20201101 8:30:00" 设置时间
- timedatectl命令:用于设置系统的时间,语法格式为:“ timedatectl [参数]”。
# timedatectl status 显示状态信息
# timedatectl set-timezone Asia/Shanghai 设置生效时区为“上海”
# timedatectl set-time 2021-05-18 手动的修改系统日期
- reboot命令:用于重启系统,输入后回车执行即可。
- poweroff命令:用于关闭系统,输入后回车执行即可。
- wget命令:用于在终端命令行里下载网络文件,语法格式为:“wget [参数] 网址”。
- ps命令:用于查看系统中的进程状态,英文全称为:“processes”,语法格式为:“ps [参数]”。
参数 作用 -a 显示所有进程(包括其他用户的进程) -u 用户以及其他详细信息 -x 显示没有控制终端的进程
PS: inux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。五种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。
8.pstree命令:用于以树状图的形式展示进程之间的关系,英文全称为:“process tree”,输入后回车执行即可。
9.top命令:用于动态地监视进程活动及系统负载等信息,输入后回车执行即可。
10.nice命令:用于调整进程的优先级,语法格式为:“nice 优先级数字 服务名称”。
# nice -n -20 bash 将bash服务的优先级调整到最高
11.pidof命令:用于查询某个指定服务进程的PID号码值,语法格式为:“pidof [参数] 服务名称”。
# pidof sshd
12.kill命令:用于终止某个指定PID值的服务进程,语法格式为:“kill [参数] 进程的PID”。
# kill 2156
13.killall命令:用于终止某个指定名称的服务所对应的全部进程,语法格式为:“killall [参数] 服务名称”。
# killall httpd
- 系统状态检测命令
- ifconfig命令:用于获取网卡配置与网络状态等信息,英文全称为:“interface config”,语法格式为:“ifconfig [参数] [网络设备]”。
- uname命令:用于查看系统内核版本与系统架构等信息,英文全称为:“Unix name”,语法格式为:“uname [-a]”。
# uname -a
- uptime命令:用于查看系统的负载信息,输入后回车执行即可。
- free命令:用于显示当前系统中内存的使用量信息,语法格式为:“free [-h]”。
- who命令:用于查看当前登入主机的用户终端信息,输入后回车执行即可。
- last命令:用于调取主机的被访记录,输入后回车执行即可。
- ping命令:用于测试主机之间的网络连通性,语法格式为:“ping [参数] 主机地址”.
- tracepath命令:用于显示数据包达到目的主机途中所经过的路由信息,语法格式为:“tracepath [参数] 域名”。
- netstat命令:用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为:“network status”,语法格式为:“netstat [参数]”。
- history命令:用于显示执行过的命令历史,语法格式为:“history [-c]”。还可以使用“!编码数字”的方式来重复执行某一次的命令。
- sosreport命令:用于收集系统配置及架构信息并输出诊断文档,输入后回车执行即可。
-
查找定位文件命令
- pwd命令:用于显示用户当前所处的工作目录,英文全称为:“print working directory”,输入后回车执行即可。
- cd命令:用于切换当前的工作路径,英文全称为:“change directory”,语法格式为:“cd [参数] [目录]”。
这个命令应该是最常用的一个Linux命令了。可以通过cd命令迅速、灵活地切换到不同的工作目录。除了常见的切换目录方式,还可以使用“cd -”命令返回到上一次所处的目录,使用“cd..”命令进入上级目录,以及使用“cd ~”命令切换到当前用户的家目录,亦或使用“cd ~username”切换到其他用户的家目录,就像在游戏中使用了“回城”技能那样。
3.ls命令:用于显示目录中的文件信息,英文全称为:“list”,语法格式为:“ls [参数] [文件名称]”。
4.tree命令:用于以树状图的形式列出目录内容及结构,输入后回车执行即可。
5.find命令:用于按照指定条件来查找文件所对应的位置,语法格式为:“find [查找范围] 寻找条件”。
# find /etc -name "host*" -print 获取到etc目录中所有以host开头的文件列表
# find / -perm -4000 -print 在整个系统中搜索权限中包括SUID权限的所有文件
6.locate命令:用于按照名称快速搜索文件所对应的位置,语法格式为:“locate 文件名称”。
locate命令是将一些常用的目录做成一个索引库文件,一般是叫做“/var/lib/mlocate/mlocate.db”,后续再搜索文件的时候就是根据这个数据库中所包含的路径进行查找,速度会快很多~
第一次使用前,记得先执行下updatedb命令来生成出索引数据库,然后再进行查找:
# updatedb
# ls -l /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 2945917 Sep 13 17:54 /var/lib/mlocate/mlocate.db
# locate whereis
7.whereis命令:用于按照名称快速搜索二进制程序(命令)、源代码以及帮助手册文件所对应的位置,语法格式为:“whereis 命令名称”。
# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
# whereis pwd
pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
8.which命令:用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为:“which 命令名称”。
# which locate
/usr/bin/locate
课堂笔记截图:



浙公网安备 33010602011771号