Linux操作系统管理文件基本指令

基本指令:

一. 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可以将光标定位到文

件最后一行

输入gg

输入G

  • 末行模式下输入:set nu可以显示行号,输入:set nonu可以取消行号

  • 末行模式下输入:n1,n2 s/kw1/kw2/g n1行与n2行之间搜索字符串kw1,并

kw2替换

用户和组:

  1. su命令(切换用户)

2.1useradd命令(新增用户)

2.2passwd命令(设置用户密码等)

2.3usermod命令(修改用户信息)

2.4userdel命令(删除用户)

3.1groupadd命令(创建用户组)

3.2groupmod命令(修改用户组信息)

3.3groupdel命令(删除用户组)

3.4groupmems命令(把用户添加或移除用户组)

3.5newgrp命令(修改用户的有效组,作为创建文件的属组)

4id命令(查看用户的UIDGID和附加组信息)

   groups命令(显示用户的组信息)

新建一个用户,添加到sudo组中,并使用sudo命令验证。

  • 新建一个用户
  • 修改/etc/sudoers中文本,将tset     ALL=ALL  ALL插入到root行下边,保存退出
  • 切换到新用户中使用sudo命令进行验证

软件安装和GCC编译器

      一、rpmRedHat package manager也叫RedHat软件包管理工具)命令:类似于

windows里的“添加/删除”程序,具体有安装,查询,删除,升级四大功能。

1、查询系统中所有已安装的包(参数:-qa

(以上截图中只截取了部分展示)

2、查询系统中指定已安装的软件(参数:-q

(以上截图查询了gccPython软件)

3、查询一个已安装的软件包的信息(参数:-qi

(以上截图直接去了部分展示)

4、查看指定已安装的软件包安装到了何处(参数:-ql

5、除一个rpm包(参数:-e

(这里出错是因为依赖性的问题,建议不要乱删除rpm包,如有必要可以

使用rpm -e 软件名 --nodeps 来忽略依赖性的检查)

6、安装一个rpm包(参数:-ivh

     二、yum(全称为 Yellow dogUpdater, Modified)是一个在FedoraRedHat以及

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命令,然后她的子进程就可以使用该环境变量

拓展实验 

将管道、findgrep结合进行练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值