基本指令:
一. pwd:查看当前所在的工作目录:
二. cd:在不同目录间切换,更改当前工作目录
1.cd . :进入当前目录
2.cd .. :进入上一级目录
3.cd - :进入上次所在的目录
4.cd ~ :进入当前登录用户的主目录
5.cd ~ root :进入root用户的主目录
三. ls:显示目录内容
1. ls -a :显示隐藏文件
2. ls -l :使用长格式显示文件信息
3. ls -l -d asd :显示目录asd的信息
四. cat:在标准输出设备上显示文件内容
1. cat -n :显示行号
2. cat -E :在每行结尾加$
五. head :显示文件开头若干行内容,默认前十行;tail :显示文件结尾若干行内容,默认十行
1. head -c size :显示文件开头的size字节
2. head -n number :显示文件开头的number行
六. more :分页显示文件,一次现实一页内容
内部指令:
F或空格 :向下翻一页
D或Ctrl+D :向下翻半页
B或Ctrl+B :向上翻一页
回车 :向下移动一行
Q :退出命令
七. less:分页显示文件,一次显示一页的内容
less与more作用相似,less允许用户向前向后浏览文件,more只能向前浏览
八. wc :默认统计并输出文件行数,单词数,字节数
1. wc -c :输出文件字节数
2. wc -l :输出文件行数
3. wc -L :输出文件最长的行的长度
4. wc -w 输出文件单词数
九. touch :创建新文件
十. mkdir :创建新目录;rmdir :删除空文件夹
十一.cp :复制文件或目录
十二. mv :移动或重命名文件或目录
1. mv -i :如果目标文件存在,则提示是否覆盖
2. mv -f :如果目标文件存在,强制覆盖不提示
十三.rm :删除文件或目录
1. rm -i :如果目标文件存在,则提示是否删除
2. rm -f :删除文件,强制删除不提示
十四. find :查找指定的文件/目录
十五. tar :对文件打包和压缩
1. tar -c :创建打包文件
2. tar -x :展开打包文件
十六. gzip :对文件进行压缩,压缩后扩展名为”.gz“
十七. file :查看文件类型
十八. grep :从文件中提取符合指定表达式的行
十九. chown :修改文件所有者和属组
二十. chmod :修改权限
VIM文本编辑器:
1.1:命令模式下使用上下左右键(kjhl)移动光标 1.2:复制光标所在行,并粘贴到最后一行(yy;复制光标所在行,p:粘贴到光标 所在行的下一行) 1.3:剪切光标所在行,并粘贴到最后一行(dd:剪切光标所在行,p:粘贴到光标 所在行的下一行) 1.4:删除光标所在行(dd:可以直接剪切掉/5 x:连续向后删除5个字符) 1.5:撤销前一个动作(U:撤销前一个动作) 2:使用不同的命令进入插入模式,并输入内容为个人信息:(在命令模式下I,a,o,r 都可以进入插入模式,esc退出插入模式返回到命令模式) 3:在末行模式,寻找字符“2”,并查找下一个。(命令模式下输入/2然后回车, N继续向下查找下一个要查找的字符) 4.1:不编辑内容直接退出(末行模式下输入 :q ,即可退出vim编辑器) 4.2:编辑内容后不保存退出(末行模式下输入 :q!,即可不保存内容强制退出 vim编辑器) 4.3:编辑内容后保存退出(末行模式下输入 :wq ,即可保存内容并给退出vim编 辑器) |
拓展VIM文本编辑器中:体验跳转到首行、末行等其他命令。
件最后一行 输入gg: 输入G:
用kw2替换 |
用户和组:
2.1:useradd命令(新增用户) 2.2:passwd命令(设置用户密码等) 2.3:usermod命令(修改用户信息) 2.4:userdel命令(删除用户) 3.1:groupadd命令(创建用户组) 3.2:groupmod命令(修改用户组信息) 3.3:groupdel命令(删除用户组) 3.4:groupmems命令(把用户添加或移除用户组) 3.5:newgrp命令(修改用户的有效组,作为创建文件的属组) 4:id命令(查看用户的UID,GID和附加组信息) groups命令(显示用户的组信息) |
新建一个用户,添加到sudo组中,并使用sudo命令验证。
|
软件安装和GCC编译器
一、rpm(RedHat package manager也叫RedHat软件包管理工具)命令:类似于 windows里的“添加/删除”程序,具体有安装,查询,删除,升级四大功能。 1、查询系统中所有已安装的包(参数:-qa) (以上截图中只截取了部分展示) 2、查询系统中指定已安装的软件(参数:-q) (以上截图查询了gcc与Python软件) 3、查询一个已安装的软件包的信息(参数:-qi) (以上截图直接去了部分展示) 4、查看指定已安装的软件包安装到了何处(参数:-ql) 5、除一个rpm包(参数:-e) (这里出错是因为依赖性的问题,建议不要乱删除rpm包,如有必要可以 使用rpm -e 软件名 --nodeps 来忽略依赖性的检查) 6、安装一个rpm包(参数:-ivh) 二、yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及 CentOS中的Shell前端软件包管理器。 1、列出所有可安装的软件清单(list) (截图只截取了部分区域) 2、查找对应软件包命令(search <keyword>) 3、删除指定软件包命令(remove <package_name>) 4、安装指定软件包命令(install <package_name>) 也可以输入yum -y install <package_name> 加入参数:-y安装时就不用确认了 5、查找以xx开头的软件名称命令(list xx*) 三、①.使用yum安装GCC编译器 ②.查看当前GCC编译器版本 四、使用GCC编译器进行一步完成与分步编译。 (一)、一步完成: (二)、分步编译: 1、预处理(gcc -E xxx.c -o xxx.i) 2、编译(gcc -S xxx.i -o xxx.s) 3、汇编(gcc -c xxx.s -o xxx.o) 4、链接(gcc xxx.o -o xxx.exe) 5、执行(./hello.exe) |
拓展实验
如果centos没有网络,如何配置网卡信息,使得虚拟机能够访问外部网络? 1、首先查看子网IP、子网掩码、网关IP,将其记录下来备用。 2、终端输入命令ifconfig查看当前使用网卡。 没有网络的情况下可能没有IP与子网掩码 3、进入该路径cd /etc/sysconfig/network-scripts/ 4、修改ifcfg-lo 5、输入“service network restart”重启网络 6、输入“ifconfig”查看配置的ip地址 7、打开一个网址看看是否成功 |
shell脚本
1、编写简单的hello world脚本,查看脚本内容,并运行 就很简单的一个输出语句 2、练习加减乘除、比较等基本的算术运算。 3、使用test命令对两个数值比较(等于、小于、大于等于),注释说明含义。 *:-eq:两者相等返回为真;-ne:两者不等返回为真;-gt:前者大于后者返回真 -lt:后者大于前者返回真;-ge:前者大于等于后者返回真;-le后者大于等于前 者返回真。 4、使用test命令对两个字符串比较(等于、非空、小于),注释说明含义。 *:-z:判断字符串是否为空,是的话返回真;-n:判断字符串是否为空,不是的 话返回真;==:判断两字符串是否相等,是的话返回真;!=:判断两字符串是 否相等,不是的话返回真。 5、使用test命令进行布尔运算,注释说明含义。 *:-a:两个表达式都为真时返回真;-o:两个表达式有一个为真返回为真;!: 表达式为真时返回假,反之返回真 6、使用[] 对文件类型、文件权限、文件比较等进行练习。注释说明含义。 文件类型测试代码如下: 具体参数的功能我把截图放在了下边: 文件权限测试代码如下: 具体参数的功能我把截图放在了下边: 文件比较测试代码如下: 具体参数的功能我把截图放在了下边: 7、使用if-elif结构完成功能。需查看脚本内容,并运行。 8、结合case-in和函数,完成简易计算器。 具体代码如下: 运行结果如下图所示: |
拓展实验
对函数传递参数大于、等于、小于所需参数的三种情形分别试验。 通过$@获取传递给脚本函数的所有参数,再使用$#获取传递到的参数个数与指 定参数个数作比较,即可的出结果。 代码如下图: |
shell变量、重定向、管道等相关命令
1、定义变量(无引号、单引号、双引号) 注意区分单引号(不管是啥直接输出)和双引号(会先解析变量和命令)的区别 2、输出变量值(两种方法)、换行输出、不换行输出 3、修改变量值,追加新内容,并输出 4、使用read赋值变量值,并输出,对选项-p、-n进行练习 5、输出去系统环境变量 6、特殊变量的应用:$、? $变量:显示当前bash的进程号(PID) ?变量:返回上一个命令的状态码(0为成功,非0为失败或异常) 7、输出重定向”>”,”>>”,输出到wlh.sh(自己姓名首拼)中 8、输入重定向”<”练习(与ppt中不同的案例) 9、管道”|”练习。 思考与讨论 |
1.用命令的执行结果为变量赋值的两种方法`command ` 或 $(command ),哪个更好? $(command )与`command `(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。 2.使用变量值的两种形式$variable_name 或 ${variable_name}区别是什么? 一般情况下,$variable_name与${variable_name}是没有区别的,但是使用 $variable_name会比较精确的界定变量名称的范围 3.如何验证变量的作用范围? 全局变量:全局变量的作用域为当前的整个shell窗口,也就意味着两个不 的同的shell窗口中声明的全局变量是无法相互使用的,而shell脚本是shell窗口的 下级,一个shell窗口可以执行多个shell脚本,这多个shell脚本中的全局变量是可 以相互使用的。 局部变量:变量的作用域仅映射到shell函数的内部,我们知道在shell函中定义一个默认的变量,在函数外部是可以取到他的值的,也就意味着该变量是一个全局变量,那么局部变量则需要加入local命令,具体操作如下图: 环境变量:环境变量只在当前的shell窗口的主进程中可以使用,如果想要在它的子进程中使用必须使用export命令,然后她的子进程就可以使用该环境变量 |
拓展实验
将管道、find、grep结合进行练习。 |