20北大软微华为实验班——Linux基本操作

实验目的:熟悉Linux基本命令(ls、pwd、cd、cp、mkdir、rm、cat、mv、chmod、tar)

一.帮助指令

  • 作用:查阅指令的使用方法
1.man指令:获得帮助信息

man [命令或配置文件]
eg.

man ls  # 查找命令ls的用法

结果:ls是列出目录的内容,参数包括:a(不忽略隐藏文件)…

*注:按Enter可以看下一页
在这里插入图片描述

2.help指令:获得shell内置指令的帮助信息

help 命令
eg.

help cd  # 查找命令cd的帮助信息

结果:cd是改变当前工作目录
在这里插入图片描述
总结:百度更快捷

二.目录类指令

1.pwd指令
  • 显示当前工作目录的绝对路径
    在这里插入图片描述
2.ls指令
  • 查看目录的内容信息
  • ls [选项 ] [ 目录或文件 ]
  • 选项
    -a 显示当前目录的所有文件和目录,包括隐藏的(all的缩写)
    -l 以列表方式显示信息,包括文件属性、权限等信息
    -h 显示文件/目录的大小
    • eg.
ls #列出当前目录下的文件名,隐藏的文件/目录不显示
ls -a #显示所有文件/目录
ls /etc #显示/etc目录下的文件/目录

在这里插入图片描述

3.cd指令
  • 作用:切换目录
  • 语法:cd [参数]
  • 常用参数:
cd ~  #回到自己的家目录,即login所在目录
cd . #目前所在目录,没有变化
cd ..  #回到当前目录的上一级目录
cd /etc #使用绝对路径,进入
cd work/test #使用相对路径,从当前路径位置

三.mkdir rmdir

1.mkdir指令
  • 作用:创建目录
  • 语法:mkdir [ 选项][ 目录名]
  • 选项: -p 创建多级目录,即若目录路径中某级目录不存在,则自动创建。
  • eg1.在home目录下创建一个目录,名为dog
mkdir /home/dog
  • eg2.在home目录下创建一个目录,/home/animal/tiger(在home下没有animal也没有tiger)
mkdir -p /home/animal/tiger
2.rmdir指令
  • 作用:删除目录
  • 语法:rmdir [选项] [ 要删除的空目录名称]
  • 注:只能删空目录,非空使用 rm -rf [ 要删除的空目录名称]
    -r:删除目录及子文件
    -f:不提示
    注:== rm -rf命令十分危险==
  • eg1.删除目录 /home/dog
rmdir /home/dog

四.touch cp

1.touch指令
  • 作用:在当前目录下创建空文件
  • 语法:touch 文件名
  • eg.创建一个空文件 hello.txt
touch hello.txt #创建多个文件 直接在后面加多个文件名 即可
2.cp指令
  • 作用:拷贝文件到指定目录

  • 语法:cp [选项] 源文件名 目标目录

  • 选项:-r 递归复制整个文件夹,即该目录下所有的子目录和文件

  • eg1.将/home/aaa.txt复制到/home/bbb目录下

cp aaa.txt bbb #将当前目录的aaa文件复制到当前目录的bbb目录下
  • eg2.将/home/test1整个目录复制到/home/text2
cp -r test1/ txst2/ #注意当前目录位置,准确定位源目录和目标目录

注:若text2目录下已经有text1目录了,会问是否覆盖(打y或n)
强制覆盖不提示的方法:

\cp -r test1/ txst2/ 

五.rm mv

1.rm指令
  • 作用:移除文件或目录
  • 语法:re [选项] 文件名或目录名
  • 选项: -r 递归删除整个文件夹
    -f 强制删除,不提示(不带可能问是否删除)
  • eg.1删除/home/aaa.txt
rm aaa.txt
  • eg2.递归删除整个文件夹/home/bbb
rm -r bbb #不加-r提示“无法删除”
2.mv指令
  • 作用:移动或重命名 文件或目录
  • 语法:①重命名:mv 旧名字 新名字
    eg.将/home/aaa.txt 重命名为pig.txt
    mv aaa.txt pig.txt
    ②移动文件:mv 旧位置 新位置
    eg.将/home/pig.txt 文件 移动到 /root目录
    mv /home/pig.txt /root

六.cat more less

1.cat指令
  • 作用:查看文件内容(只读),即将文件输出到标准输出
  • 语法:cat [选项] 文件名
  • 选项:-n 显示行号
  • 注意:cat只能查看文件,不能修改文件。一般可带 管道命令 | more
cat -n Hello.java | more
2.more指令
  • 作用:基于VI编辑器的文本过滤器,以全屏 的方式按页显示文本文件的内容。内置了若干快捷键。
  • 语法:more 文件名(或文件地址)
  • eg.
more /etc/profile
  • 快捷键
    在这里插入图片描述
3.less指令
  • 作用:分屏查看文件内容,功能相当于more++。less不是一次将整个文件加载后才显示,而是根据要显示加载内容,显示大型文件效率高
  • 语法:less 文件名
  • eg.
less /opt/aaa.txt
  • 快捷键:
    在这里插入图片描述

七.重定向和追加

>指令(重定向:会将原来的文件覆盖)和>>指令(追加:在原文件后面追加)
  • 语法:
ls -l > 文件 #把列表中的内容写入文件a.txt中(覆盖写)
ls -al >>文件 #列表中的内容追加到文件a.txt的末尾(追加写)
cat 文件1>文件2 #把文件1的内容覆盖到文件2
echo "内容">>文件 #把内容追加到文件后面
  • eg.
#①把/home目录下的文件列表 写入/home/info.txt中
ls -l /home/ > /home/info.txt #将ls -l的内容覆盖写到info.txt文件,如果该文件不存在,就创建文件。

#②把当前日历信息 追加到 /home/info.txt文件中[提示cal命令可以显示当前日期]
cal >> /home/info.txt

八.echo head tail

1.echo指令
  • 作用:输出内容到控制台
  • 语法:echo [ 选项 ] [ 输出内容 ]
  • eg.
#用echo指令输出环境变量(当前的环境路径path)
echo $PATH #注:path不对
#用echo输出hello,world!
echo hello,world!
2.head指令
  • 作用:显示文本开头部分内容,默认显示文件前10行内容
  • 语法:
head 文件名 #认显示文件前10行内容
head -n 5 文件 #显示文件前5行内容
  • eg.
#查看/etc/profile 前5行内容
head -n 5 /etc/profile
3.tail指令
  • 作用:输出文件尾部的内容,默认输出文件后10行
  • 语法:
#输出文件后十行
tail 文件
#显示文件后5行
tail -n 5 文件
#实时追踪文档的所有更新
tail -f 文件
  • eg.
#查看/etc/profile 后5行内容
tail -n 5 /etc/profile

#实时监控mydate.txt,看到文件有变化时,如果有变化就会看到变化
tail -f mydate.txt

九.ln history

1.ln指令
  • 作用:为一个文件或目录建立符号连接(=windows中的快捷方式)
  • 语法:
ln -s [原文件/目录] [软链接名]
  • eg.
#在/home目录下创建一个软链接linkToRoot,链接到/root目录
ln -s /root linkToRoot #在/home目录下写的

#删除软链接linkToRoot
rm /home/linkToRoot
2.history指令
  • 作用:查看已执行过的命令
  • 语法:
history #显示所有已执行过的命令
  • eg.
#显示最近用过的10个指令
history 10
#执行历史编号为5的指令
!5

十.时间日期类date cal

1.date指令
  • 作用1:显示当前日期
  • 语法:
date #显示当前时间
date+%Y #显示当前年份
date+%m #显示当前月份
date+%d #显示当前哪一天
date"+%Y-%m-%d %H:%M:%S" #显示当前年月日 时分秒
  • eg.
#显示年月日
date "+%Y-%m-%d"#中间的-是任意的,+不可少
  • 作用2:== 设置系统当前日期==
  • 语法:
date -s 字符串时间
  • eg.
#设置系统当前日期为2080-1-1 7:30:30
date -s "2080-1-1 7:30:30"
2.cal指令
  • 作用:以日历的方式显示时间
  • 语法:
cal [选项] #不加选项,显示本月日历
  • 实例:
#显示2020年整年日历
cal 2020

十一.搜索查询类指令find locate grep

1.find指令
  • 作用:从指定目录向下递归地遍历各个子目录,将满足条件的文件或目录显示在终端
  • 语法:
find [搜索范围] [选项] #搜索范围指在哪个目录下开始搜索
  • 选项:
选项功能
-name<查询方式>按指定文件名查找
-user<用户名>查找属于指定用户的所有文件
-size<文件大小>按指定文件大小查找文件
  • 实例:
#按文件名,根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt #结果显示hello.txt文件的绝对路径

#按拥有者,查找/opt目录下,用户名为nobody的文件
find /opt -user nobody
#查找整个linux系统下大于20m的文件(+n大于 -n小于 n等于)
find / +size 20M
#查找整个目录下txt类型文件(用通配符找)
find / -name *.txt
2.locate指令
  • 作用:可以快速定位文件路径(利用事先建立的系统中所有文件名和路径的locate数据库实现快速定位给定的文件。无需遍历整个文件系统,查找速度快。为了保证查找的准确度,管理员须定期更新locate时刻)。适用于大文件系统。
  • 语法:
locate 文件名
  • 注意:第一次运行时,用updatedb指令创建locate数据库。因为locate指令基于数据库查询。
  • 实例:
#用locate指令定位hello.txt
updatedb
locate hello.txt #结果:/home/hello.txt

在这里插入图片描述

3.grep指令和管道符号
  • 作用:grep用于过滤查找,| 表示将前一个命令的处理结果输出 传递到后面的命令处理。
  • 语法:
grep [选项] 查找内容 源文件
  • 选项:
选项功能
-n显示匹配行和行号
-i忽略字母大小写
  • 实例:
#在hello.txt中,查找“yes”所在行,显示行号
cat hello.txt |grep  -n yes 

在这里插入图片描述

十二.压缩和解压缩指令

1.gzip和gunzip指令
  • 作用:gzip压缩文件,gunzip解压缩文件
  • 语法:
gzip 文件名 #只能压缩为*.gz文件
gunzip 文件.gz 
  • 实例:
#将/home下的文件hello.txt文件压缩
gzip /home/hello.txt #原来的文件不保留

#将/home下的文件hello.txt.gz文件解压缩
gunzip /home/hello.txt.gz

在这里插入图片描述

2.zip和unzip指令
  • 作用:主要用于项目打包发布中 文件的压缩和解压缩
  • 语法:
zip [选项] XXX.zip 压缩文件/目录
unzip [选项] XXX.zip 
  • zip选项:
    -r :传递压缩,即压缩目录
  • unzip选项:
    -d<目录> :指定解压后文件的存放目录
  • 实例:
#将/home下 所有文件压缩成mypackage.zip
zip -r mypackage.zip /home

#将mypackage.zip解压到/opt/tmp目录下
unzip -d /opt/tmp mypackage.zip
3.tar指令(既可以压缩zcvf,也可以解压zxcvf)
  • 作用:打包指令,打包好的文件为*.tar.gz文件
  • 语法:
tar [选项] XXX.tar.gz 打包的文件或目录 
  • 选项:
选项功能
-c产生.tar打包文件
-v显示详细信息
-f指定解压后的文件名
-z打包并压缩
-x解压文件
  • 实例:
#压缩多个文件:将/home/a1.txt和/home/a2.txt  压缩为a.tar.gz
tar -zcvf a.tar.gz /home/a1.txt /home/a2.txt

#/home的文件夹 压缩为 myhome.tar.gz
tar -zcvf myhome.tar.gz /home 

#a.tar.gz解压到当前目录
tar -zxcvf a.tar.gz

#a.tar.gz解压到/opt/tmp2目录
tar zxcvf a.tar.gz /opt/tmp2

十三.运行级别和找回密码

1.Linux的运行级别

常用为3和5
若修改运行级别,可改文件 /etc/inittab的id:5:Initdefault:这一行的数字
或打入命令:init [0123456]
eg.切换5->3

init 3

在这里插入图片描述

2.找回root密码

进入“单用户”模式(1号)——>修改密码(root不需要密码就可以登录)
在启动界面看到下图——>按enter键
在这里插入图片描述
进入下图
在这里插入图片描述
输入e,进入下图——>选第二行
在这里插入图片描述
再输入e,进入下图
在这里插入图片描述
输入1,按enter——>输入b——>以root身份,进入单用户模式
——>输入指令:passed root——>重启:reboot

3.清屏

clear指令

4.↑↓键

调用使用过的指令

十四.awk

  • 作用:对文本或数据进行处理
  • 语法:
awk [options] 'Pattern{Action}' file
  • Pattern:在这里插入图片描述
    在这里插入图片描述
  • eg.
 awk '{printf $2 "\t" $6 "\n"}' student.txt
 #输出第二列和第六列的内容

十五.修改权限命令chmod

  • 作用:修改文件或目录的权限
  • 语法:
chmod [选项][文件]
  • 权限解读:
    在这里插入图片描述
    rwx每位对应01,eg.rwx为111即7;rw-为110即6。
  • 选项:
    u——文件拥有者;g——文件拥有者所在群组;o——其他用户;a——所有人。
    +——增加权限;- ——减少权限。
    -R——对当前目录下所有子目录和文件进行相同的权限变更。
  • eg.
chmod 777 abc #对目录abc/设置权限,所有人有rwx权限
chmod a-x abc #对目录abc/设置权限,所有人减去执行权
chmod u+x abc #文件拥有者增加执行权
chmod 755 abc #权限:d rwx r-x r-x(结果没有空格)

十六.查看进程命令ps

  • 作用:查看进程的相关信息
  • 语法:
ps [选项]
  • 选项:
    a 显示现行终端机下的所有进程
    u 显示进程拥有者、状态、资源占用等详细信息
    x 显示没有控制终端的进程

  • 示例:

ps -aux #后面加|grep 进程名(最后一列),可以只看某个进程的信息

在这里插入图片描述

十七. gcc和gdb指令

1.gcc指令
  • 作用:一种编译器,可以把C、C++等语言的源程序,预处理——>编译(.s)——>汇编(.o)——>链接——>可执行程序。
  • gcc根据文件后缀识别文件类型:
后缀类型
.cC语言源代码文件
.a由目标文件构成的库文件
.C、.cc、.cppC++源码文件
.h头文件
.i经过预处理之后的 C 语言文件
.ii经过预处理之后的 C++ 文件
.o编译后的目标文件
.s汇编源码文件
.S经过预编译的汇编源码文件
  • 语法:
gcc [源文件名] [选项] [目标文件名]
  • 选项
选项内容内容
-o生成名为 file 的文件(若没有,生成a.out)
-E只预处理,不编译.i
-S只预处理、编译,不汇编.S
-c只预编译、编译、汇编,不链接.o
-g在可执行文件中包含调试信息
  • 实例:
gcc hello.c -o hello #产生可执行文件hello
#以上一条相当于以下四条:
#预处理:  gcc -E hello.c -o hello.i
#编译:   gcc -S hello.i -o hello.S
#汇编:   gcc -c hello.S -o hello.o
#链接:   gcc hello.o -o hello
./hello#执行
2.gdb指令
  • 作用:一种程序调试器。
  • 使用gdb调试程序前,gcc编译选项必须加-g,把调试信息加入可执行文件中。
  • 语法:
gdb [可执行文件]
  • 进入gdb:
    方法1
    在这里插入图片描述
    方法2
    在这里插入图片描述
    启动gdb后,可以输入命令(类似shell命令)进行程序调试。

  • gdb命令:

命令含义
list 或 l [行号或函数名] 或 l 文件名:[行号或函数名]查看指定位置代码
run或r运行代码
break或b[行号或函数名][条件表达式在某行或某函数处设置断点,也可以当条件满足时断点才生效
info b或i b查看断点信息
info reg或i reg或i r查看寄存器信息
delete 断点号删除断点
disable 断点号将某断点失效
enable 断点号生效某断点
step 或 s单步执行,进入子函数
next 或 n单步执行,不进入子函数(把子函数作为一个整体,一步执行)
continue 或 c继续执行,直到下一断点或程序结束
print 或 p 表达式或变量查看表达式或变量的值
set variable 变量=值修改变量值
enter键再一次执行上面的指令
quit或q退出gdb指令

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值