linux的简单使用介绍

 

 

 

目录

 

 

 

1.打开终端

2.关机:

3.常用终端命令:

1.文件操作命令

跳转:

查看

删除

创建 / 修改

复制剪切(重命名)

查找   

2.系统显示命令:

3.时间日期显示命令:

4.命令别名与历史命令:

5.系统操作命令:

6.其他常用命令:

7.联机帮助命令:

linux常用命令

4.快捷键  

5.安装软件:

6.编辑器的使用:

gedit 

nano编辑器使用(终端 --  nano MyName。txt   Ctrl g 帮助) 

vim/vi

7. shell(bash)

变量:

字符串:

数组: 

运算及参数的传递:

流程控制:

if分支:

case分支

for循环:

where循环:

until循环:

输出:

echo:

printf:

符号:

函数:

变量:

数组

8.使用gcc/g++编译 hello world。

9.linux网络基础:

几个常用的网络命令:

10.文件压缩与解压:

11.备份 dump, 还原 restore

12.挂载设备:


1.打开终端

ctrl+Alt+T    或者  点击终端图标,打开终端 。

$ 普通用户  #根用户sudo su root  切换root权限

切换成#, Tab键自动补全功能,例如vim T Tab会自动补全文件名。 

2.关机:

3.常用终端命令:

1.文件操作命令

跳转:

      CD /xxx/xxx    跳转到某个 绝对路径

      CD                 跳转到用户的目录下

      CD ./xxx/xxx  跳转到当前文件下的某个路径

      CD ../xxx/xxx 跳转到上一个路径的某个路径

查看

      pwd  查看当前目录

      ls    路径(和cd 后面的目录选项一个意思,后面不再重复。)

      ls    -a  查看当前目录下所有

      ls     -l   列表查看当前目录下所有

    

    对应的分别是   文件类型   拥有者, 用户组, 其他人权限   文件数  拥有者 用户组 大小  建立日期 文件名

     文件类型:

     权限: r  可读  。 w 可写。  x 可执行  - 没有该权限 。

     ls     -d -h -i。

     

删除

     rmdir   路径  删除空文件夹  (用处不大,只能删除空文件夹)

     rm    -f (不会询问)文件  删除文件

     rm   -r 递归删除当前目录下的某个目录和里面的所有东西

     rm  -rf  *  将当前目录下的所有文件1和文件夹删除

     rm   -rm  /*    删库跑路

创建 / 修改

      mkdir   路径和文件夹名  创建文件夹 

      创建文件有很多种方法,touch 文件名   vim  文件名(还会打开,可编辑。只打开是cat  文件名)

复制剪切(重命名)

      mv  当前目录   新目录 (2个目录一样就是重命名)  剪切

      cp   -r (只拷贝文件时不用写r,r是为了在文件夹下递归里面可能有的文件夹的命令) 目录名称 目录拷贝的目标位置

查找   

      find 目录 参数 文件名称   参数是搜索的属性,例如  -name 是搜索文件名   文件名可以使用通配符扩大搜索

      示例:find /usr/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件

2.系统显示命令:

3.时间日期显示命令:

4.命令别名与历史命令:

5.系统操作命令:

6.其他常用命令:

7.联机帮助命令:

linux常用命令

 

4.快捷键  

 

 

5.安装软件:

ubuntu装软件apt, ubuntu使用yum会有很大的坑。不建议使用。使用apt安装

安装程序 sudo apt install xxx。或者sudo apt-get install xxx 例如:gcc的安装 sudo apt install gcc

查看是否有g++   g++ -v。  

原因如下:https://www.cnblogs.com/shanhm1991/p/9903694.html

带界面的软件要去linux的商场下载  比如 qt 

6.编辑器的使用:

gedit 

使用(直接点击打开),

nano编辑器使用(终端 --  nano MyName。txt   Ctrl g 帮助) 

vim/vi

安装 vim  (vi自带)

sudo apt install vim

 一般模式yy nyy复制,p粘贴。dd,ndd 剪切 ,p粘贴 (一般模式)  n的意思是当前行之后的n行全选

cc ncc删除行  x删除字符,这些可以用delete代替 。(一般模式)

u撤销一次。“.”重复上次操作。(一般模式)

vim的保存退出 :w保存 :x保存并退出 :w 文件名 第一次保存要文件名 :q :q!退出  ZZ(大写)保存退出。ctrl+v 块选择, v 字符选择   选择好后y复制,p粘贴。(一般模式)

ctrl+w 上下键窗口移动 。(编辑模式)

:sp 文件名 打开一个新的文件   :r 打开另一个文件(vi)

w(后移),b(前移) 单词移动。(一般模式)

ctrl+w+j/k上下切换。

rR是替换。/字符 查找 n下一个。 

 

7. shell(bash)

变量:

字符串:

定义: string=“helloworld”;

使用 : $string 或者 ${string} ,如果你要隔离开来的话

readonly 设为只读 (readonly  string)       unset  删除(unset  string不能删除只读)

 输出字符串长度:  echo ${#string},输出数组长度也一样的,使用${#xxx}的格式。

截取字符串: 格式为 ${xxx:开始下标:截取数量}

例1:

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo 提取子字符串

上述输出为:从第一个字符之后开始截取4个字符

例2:

echo `expr index "$string" io`   # 输出 4      查找子串(注意: 以上脚本中 ` 是反引号,而不是单引号 ',不要看错了哦。实在分不清的可以用$()替换反引号  echo $(expr index "$string" io))

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符

数组

定义 array_name=(1 2 3 4 5),输出echo ${array_name[0]},echo ${array_name[@]}(@是全部的意思,输出全部)。 赋值
value=${array_name[0]} ,数组长度echo ${#array_name[@]}(和字符串一样使用#)

执行脚本:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

带参数时使用$0,$1,$2,$3等传递参数,注意,$0是脚本名字,参数从1开始。

脚本可以再vim编辑保存,例如:*

echo "$0"; echo "$1"; echo "$2";这个脚本会输出2个参数。参数传递为./test.sh 1 2 

linux处理参数的几个符号

脚本:

 

输出:

$*与$@的区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

字符串:

数组: 

运算及参数的传递:

流程控制:

if分支:

前面有说过if,由此可知shell和C语言插件还是很大的

现在学习剩下的几个流程控制

嵌套if:(注意:用不到else时不要写他)

 /dev/null 文件

 如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

$ command > /dev/null

在文件中打开文件:

cd都不用了,返回上一层后直接进入。

case分支

case语句为多选择语句(swich。。。case)(关于read,前面有说,是键盘的输入

跳出循环使用break,跳过这轮循环使用continue

for循环:

 

where循环:

while循环:

死循环:

until循环:

until循环:条件为真时停止循环,多数时while的循环有效率

输出:

echo:

echo和printf:

注意:echo  要换行输出的时候要输入-e命令,printf不用,printf相对来说感觉好用些。

echo  输出从定向(把原来输出再屏幕里面的内容输出到文件上);输入重定向(把原本要从键盘输入的内容从文件输入)

例子: 

printf对比echo来说功能更多,比如能对齐,决定是否换行,有%s %c %d %f等格式替代符等(我感觉就对齐有用点);

 

 

 

脚本的键盘输入


 

printf:

符号:

运算符:

bash shell原生是不支持数学运算的(默认的数值类型是字符串,不会进行运算),不过其他命令代替,例如 val=`expr 2 + 2`(这两个点不是单引号,是反引号``).

注意:运算符和变量要有空格

如果觉得麻烦的,可以使用另一种方方法

把运算的数据中括号或者2个小括号括起来+$就行了。(这种方法比较常用) 在逻辑与或上u二十这种方法,双小括号或者双中括号

 

 

关系运算符:

这里要加上``反引号注意

if脚本:

注意:if后面每一个变量,括号全都要空格。  then  fi  是关键字不能删除。

与或非的写法:

shell的&&和ll被用来用作语句的执行判断了(语义没变)

所以在if,for等句子中的判断改了个写法(当然,你要用&& 和ll也行,但是要多加个[ ] 表示里面是个独立语句)

脚本

结果:(没写2个括号时会出现前面出现的结果,missing ‘】’)

例子:

脚本

输出

(这里a < b 第一个条件为假,所以进入else)

前面的关系运算符是对数字的,而字符串的比较是另一套方法

脚本

结果:

文件测试运算符:

函数:

 

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !" //第10个是和之后都是要{}
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

函数还有个问题,返回值的使用。

--------------------------------------------------------------------------------------------------------------------------------

 

8.使用gcc/g++编译 hello world。

安装gcc sudo apt-get gcc(界面的程序去商店下载)

使用gcc 命令格式 gcc (参数)文件名 (-o  另外起的文件名)。

执行后如果没有  -o  另外起的文件名 ,回默认生成a.out文件,再执行就行了./a.out (out是可执行文件的标志),如果要执行多个文件(比如一个.h一个.c文件)gcc testHello.h testHello.c -o max.out

gcc -E testHello.c -o testHello.i 生成预处理之后的文件 .i 文件。

注意:gcc的隐式声明与gcc要不要写头文件。

gcc后面的文件和目标文件是不用写头文件的,或者说头文件会自己依赖加进去,上面的gcc testHello.h testHello.c -o max.out写法,testHello.h是多余的gcc testHello.c -o max.out这样就行了。还有,如果你没有.c文件没有写头文件声明就去调用其他文件的函数或者变量的话,在gcc是允许的,gcc会隐式声明,就是说如果你没有写头文件或者声明的话,他会帮你声明一个,例如一个double fun()的函数,你没有使用任何方法声明他,那gcc就会隐式声明一个int fun()的函数,不管你原来返回值是什么,他都会声明一个默认值是int的同名函数,所以,如果你正好是返回int的话就可以过,不然在链接那个阶段会报错(声明和定义不一致),这就是gcc的隐式声明。任何时候都应该避开因是声明。(这个问题折磨我好久)

这里简单重温一下源码变为可执行文件的步骤(linux):

预处理/预编译 

把#include头文件,#define, #ifdef 等替换为对应的实现(生成 .i 文件)

编译

检查源文件中的语法是否有错误 (生成 .s 文件)

汇编

翻译成机械语言(生成 .o 文件)

链接

链接lib库和各个.o(obj)文件,生成可执行文件 .out 文件。

注意:.c是C语言文件 .cc是c++文件 .i预处理过的文件 .s编译后的文件 .o汇编完未连接的文件 .out可执行文件

调试

当你想要调试时,就要用到gdb调试器。使用它是在.c文件前加上  -g  命令。例如:gcc -g testHello.h testHello.c -o max4,(这个文件应该要是有main函数的文件)之后再执行gdb max4就可以出现调试的窗口。这时你就可以写命令了。

往下调试第一次要使用 list 1,之后使用list就可以了,执行文件是 r (会从第一行开始)。设置断点命令是b  +行号,再r或者单步运行的s。(使用r)到达断点后会停止,想要到下一个断点或者执行剩下的,就要使用c命令。退出使用q命令。(插看变量可以使用p+变量名)

makefile

当项目多于3个文件时,就要考虑使用makefile了,makefile是使用来简化程序员工作量的文件。一般来说,单纯使用gcc,一个项目几百上千的目标文件,有一个要改的话就全部要编译,要你全部一个一个的gcc -c。。。。这样是不行的,makefile就出来了,你吧依赖关系全部都写进去后,再编译出来全部的。o文件,以后哪个文件要修改就编译那个文件,之后再make就自动帮你做完了。make命令是在本目录下搜索makefile文件,没有就搜索mian等等。make -f 文件名  可以指定文件名。

makefile写法:

 

这是一个main文件,里面调用了testHello.c文件里的一个函数,testHello.h是声明此函数de3个文件的简单makefile。

加注释的是一种写法,另一个是简洁的写法%.o是全部汇编文件,%.c是全部的源文件。(上面是全部文件都在同一个目录的写法,不同的目录好像还有其他的东西,具体的目前就不深入了,用到再说。)

具体写法参考https://www.cnblogs.com/tp-16b/p/8955462.html

9.linux网络基础:

基本配置文件: 是用来开机时配置网络信息的(ip,掩码,网络地址等等。)

(cat,打开文件,只能查看,vim可以编辑)、cat   /etc/network/interfaces

主机映射表hosts文件:用来存放ip与主机名的映射关系的表

位置:

/etc/hostname文件  计算机名称

/etc/resove.conf 文件  指定dns服务器的文件(常用)

etc/services文件  端口映射文件,可以查看什么服务占用了那个端口(常用)

几个常用的网络命令:

ping(windows也用) + -c 4(windows4组,linux无限,要手动设置) 其他的没什么用就不学了。

ifconfig 使用编辑时需要 sudo(windows是ipconfig) + -h(帮助) -a(显示全部) 接口 -up/down(开启关闭某个接口) 

域名解析 :

网络监控,netstat,一般用来查看端口的链接情况。

netstat   -r(显示路由表内容) -a(显示所有活动的tcp/udp端口)-v(显示详细信息)   -e(显示网络统计信息,如发送接收的字节。常和-s连用)   -s(按照歇息显示统计信息)
 

10.文件压缩与解压:

gzip  文件 (压缩) 

gzip  -d 文件 (解压。)

gzip  -v 文件 (压缩并显示压缩的百分比)。

当要压缩好几个文件时,要先tar打包。 

tar + 打包的文件或目录名   -c  创建新的文件目录(旧的没有删除)  gzip +  .tar文件

当然,界面可以更方便的压缩和解压。

 

11.备份 dump, 还原 restore

12.挂载设备:

linux上的设别不同于windoes,会自动帮你挂在,想要挂载运行它就必须自己手动挂载。

比如要挂载一个U盘,首先确定它能链接在U盘上, 就是输入命令 sudo  fdisk  -l (fdisk是磁盘分区的命令,这里是查看电脑上有什么设备。)查询有没有U盘的信息,(最好看内存,大小一样就是了,没有的话就是没有了)。确认有之后使用命令 mount  挂载设备名(例如sdb) dev/mnt/usb (不一定是这个目录,只要是个空的文件夹就行,不过建议放在这里,一般的挂载都放在这里,方便管理)

卸载: umount  -a(卸载所有有记录的文件系统) 目录,一般是 umount  挂载目录。

有可能提示

错误,可能是界面加载了它(界面有显示有他)可以fuser查找它kill(kill  进程的 pid )掉,再加载。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值