linux学习1基础命令

1、基本操作

  •   ctrl+p 查找上一个历史命令
  • ctrl+n 查找下一个历史命令
  • ctrl+b 光标往回走一个
  • ctrl+f  光标往前走一
  • ctrl+a  光标移到行首
  • ctrl+e  光标移到行尾
  • ctrl+d 删除光标后边的一个字符 光标盖住的字符为光标后边的字符
  • ctrl+u 删除光标前边的所有字符
  • 智能提示功能 tab 按两次显示所有当前输入字符开头的命令  可以用于目录的自动填充 按两次会显示当前输入目录下的所有文件
  • ls  / 显示所有根目录(ls与/之间有空格)
  • cd  /根目录名称   进入到该根目录

2、Linux目录结构

  • bin-binary的缩写,存放最常用命令
  • boot-存放启动Linux的一些核心文件,包括一些链接文件以及镜像文件
  • dev-device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式与访问文件的方式相同(将一切外设抽象成文件,一切皆文件)
  • etc-存放所有系统管理所需要的配置文件和子目录
  • home-用户的主目录、在Linux中每个用户都有一个自己的目录,一般该目录名都是以用户的账号命名的
  • lib-存放系统最基本的动态链接共享库,其作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
  • lost+found-一般为空  当系统非法关机后 将存放一些文件碎片
  • media-Linux系统会自动识别一些设备(U盘、光驱)并将识别到的设备挂载到该目录(系统自动挂载)
  • mnt-让用户临时挂载别的文件系统(用户手动挂载)
  • root-超级用户的目录
  • sbin-super user  存放系统管理员使用的系统管理程序
  • usr-存放当前用户的应用程序和文件  类似windows下的progrom file

3、用户目录:

  • 绝对路径:从根目录开始写
  • 相对路径:bb 相对于当前的工作目录而言(当前工作目录下的bb文件)
  • .表示当前目录
  • ..当前的上一级目录
  • -  cd-临近的两个目录间切换
  • 提示字符串 itcase@ubantu:~$~:  
  • itcase: 当前登录用户   ;@:at 在 ; Ubantu: 主机名;~:用户的家目录(宿主目录);$:当前用户为普通用户,#表示超级用户,通过 sudo su 可以从普通用户切换到超级用户,exit可以从超级用户切换到普通用户

4、文件和目录操作

   4.1查看我的目录

  • tree需安装相关软件
  • ls, ls -a 全部目录(列出隐藏文件),ls -l(列出文件详细信息),ls -la隐藏文件的详细信息

    4.2不同目录切换

  • 跳到任意目录  cd  /目录名称
  • 回到home目录: cd /home/文件名; cd ~; cd
  • 查看当前路径: pwd

     4.3 创建目录: mkdir 目录名称 ; 嵌套目录 mkdir  目录名称/文件名 -p 

     4.4 4删除目录

  • 删除空目录  rmdir  目录名称
  • 删除非空目录  rm  (-r) 目录名称 -r  删除后一般无法找回
  • 删除非空目录+提示  rm (-ri) 目录名称 (-ri)

    4.5创建文件

  • touch  文件名  若文件不存在创建文件 若文件存在修改文件的时间

   4.6删除文件

  •   rm 文件名 (可加参数-ri表示显示提示)

   4.7 移动文件

        mv  文件名   要移动的目录(绝对路径从/home开始)

 5、软链接

  •   相当于给文件创建一个快捷方式
  • ln  file1  file1soft -s  给file1文件创建一个名为file1soft的软链接
  •  将文件的绝对路径加上可以在其他位置使用该软链接

6、硬链接

  •  对文件进行备份 但不占据磁盘空间
  •  ln  file1  file1hand   给file1文件创建一个名为filehand的硬链接

7、文件或目录属性

  • 获取一个文本文件的信息   
  •  wc  文件名    ->行数 单词个数(以空格间隔为一个单词) 字节数  文件名
  • 查看二进制文件信息:od  -t(指定数据显示格式c:ACCII码、x十进制......) 
  • 查看当前目录大小: du   显示当前目录所有文件; du -h 显示当前目录下各文件大小
  • 查看磁盘信息: df (-h)显示当前磁盘信息 包括已用的空间等 

8、which命令

  • which 命令  显示命令解析器查找改外部命令的路径(查看命令所在的目录)
  • which  cd  不会显示信息  cd是内建命令不是引用外部的

9、查看修改文件权限

      9.1 查看当前登录用户  whoami

       9.2 修改文件权限   

                 1) 文字设定法: chmod 【who】 【+|-|=】 【mode】文件名

                   who: 文件所有者  (u)、文件所属组(g)、其他人(o)、所有人(a)(who位置不写默认)

                    +:增加权限 , - :减少权限, =: 覆盖权限

                   mod: r:读,w:写,x:执行

            2)数字设定法: chmod  (-/+/无)数字组合  文件名

                 -:没有权限;r:4;w:2;x:1;满权限:7;读写:6; 0:不更改权限

               例:765: 7——rwx——文件所有者;6——rw——文件所属组;5——rx——其他人

10、修改文件所有者和所属组

       10.1 修改文件所有者: (sudo) chown   wzy file  将文件file的所有者改为wzy  ,通常需要管理员权限所以加sudo

        10.2 修改文件所属组: sudo  chown    wzy:mm  file  将文件file的所有者改为wzy,所属组改为mm,所属组需要和所有者一起出现

         10.3 只修改文件所属组:sudo chgrp wzy file 将文件file所属组修改为wzy

11、文件查找和检索

    11.1 按文件属性查找   

           1)、文件名:find +查找的目录 + -name+“文件名字“,当不知道文件全名时可以用通配符:*(通配一个或多个字符),?(通配一个字符)

           2)、文件大小:find+查找目录+-size+ +10K(大于10k,可用-、=)

                      按文件大小范围查找: find +查找目录+ -size +10M -size -100M   (查找大于10M小于100M文件)

          3)、文件类型

                普通文件【-】这里用f表示、目录【d】、链接符号【l】、块设备【b】、字符设备【c】、socket文件【s】、管道【p】

                   find +目录 -type+f

 11.2 按文件内容查找

         grep -r “查找的内容”  +查找路径

 12  软件安装

       12.1 在线安装 

           12.1.1 apt-get

             1)、安装: sudo apt-get install 软件名

              2)、移除:sudo apt-get remove  软件名

              3)、更新:sudo apt-get update    不是更新软件 而是更新软件类别

              4)、清理所有软件安装包:sudo apt-get clean  实际清理 /var/cache/apt/archives目录下的.deb文件

              14.1.2  aptitude   需要先使用apt-get命令安装之后才能使用   安装后使用命令与apt-get相同

        12.2  deb安装 需提前下载安装包

                 dpkg -参数(安装i,卸载r)+安装包名称.deb

         12.3 源码安装 

 13、U盘挂载

     系统将自动将Upan挂载到media目录下

     解除挂载:umount  设备挂载目录 设备名称

     手动挂载:sudo mount  设备名称/挂载目录(一般挂载在mnt,挂载在其他目录将会覆盖其他目录下的内容,可以挂在在空目录)

     获取u盘设备名称:sudo  fdisk -l

14、打包管理

        14.1 压缩与解压缩

             1) gzip *.txt 将当前目录下所有的txt文件压缩为gz文件,但源文件不保留,且文件依然单独存在 并不会压缩为一个 不能压缩目录

                    gunzip *.gz 将所有的gz压缩文件还原

            2)bzip2 *.txt 将当前目录下所有的txt文件压缩为bz2文件,源文件不保留,文件不会打包,不能压缩目录

                   bunzip2 *.bz2还原当前目录下所有bz2文件

                   bzip2 -k *.txt可以保留源文件

            3)tar   ----不使用z/j,该命令只能对文件打包

                   参数: c---创建---压缩;x--释放--解压缩;v--显示提示信息--压缩解压缩--可省略;f--指定压缩文件名称--压缩解压缩

                              z--使用gzip的方式压缩文件--.gz ;j--使用bizp2的方式压缩文件--.bz2

                 语法:压缩: tar zvcvf  生成的压缩包的名字(xxx.tar.gz) 要压缩的文件或目录;    tar jvcvf  生成的压缩包的名字(xxx.tar.gz)  要压缩的文件或目录;

                           解压缩:tar jxvf(zxvf) 压缩包的名字(解压到当前目录)

                                          tar jxvf(zxvf) 压缩包的名字 -C(大写) 需解压的目录

              4) rar  需要安装rar

                     参数: 压缩---a  解压缩---x;

                     压缩: rar a  生成的压缩文件(或目录)的名字(不用加后缀会自动添加.rar) 压缩的文件或目录

                    解压缩: rar x 压缩文件名(解压缩目录不带解压到当前目录)              

             5)zip---

                   参数:压缩目录需要加参数-r

                   压缩:zip 生成的压缩包名称(不用指定后缀) 压缩的文件或目录

                  解压缩: unzip 压缩包的名字 (解压到当前文件夹)

                                 unzip  压缩包的名字  -d 指定解压目录

        总结:相同之处

              tar/rar/zip  参数   生成的压缩文件名字  压缩的文件或目录-----压缩语法

             tar/rar/unzip  参数  压缩包的名字   参数(rar没有参数) 解压缩目录---解压缩语法

15 进程管理

    15.1  ps 

            ps  a 列出当前所有用户信息

            ps   au 显示用户详细信息

            ps    aux  查看没有终端的应用程序

           可以使用管道查找需要的信息   例:ps aux | grep  bath  在ps aux的结果中查找含有bath的进程(grep bath本身也是一个含有bath的进程)

    15.2  kill -l  查看所有信号

             kill -信号  进程ID  关闭对应进程

   15.3 查看当前进程的环境变量   evn 

           Linux下环境变量的格式:key-value

                    key=value:value:value

            过滤需要的可以使用管道 evn | grep 需查找的字符

   15.4  top 查看任务管理器  但不能做任何操作  ctrl+c退出

16、网络相关命令

     16.1  获取ip地址

         命令:    ifconfig  需要安装net-tool(windows ipconfig)

         信息:  eth0 当前第一块网卡  若有多块eth1....

                     硬件地址: 网卡MAC地址、网卡编号 

                     inet 地址(Ip)、广播地址

     16.2   测试两台电脑能否通信

              ping +其他电脑ip地址     ctrl+c退出

            ping +其他电脑IP地址 -c n   显示n条信息后自动结束

     16.3  测试电脑能否联网

               ping  网址  有反馈说明能联网

      16.4   查看网站服务器ip

             nslookup  网址

17、用户管理

       17.1 用户添加

            1)  sudo  adduser 用户名  (不能有大写字母)

           2) sudo  useradd -s /bin/bash  -g 组名  -d /home/用户名  -m 用户

              参数: -s 指定新用户登录时shell类型       -g  指定所属组,该组必须已经存在

                         -d  用户家目录                              -m   用户家目录不存在时,自动创建该目录

 

       17.2 修改用户密码

              1) su password  用户名

             2)  password  修改当前用户密码

        17.3 切换用户

              su  用户名 

        17.4 退出当前用户

               exit

         17.5  删除用户

               1) sudo deluser  用户名

               2) sudo  userdel  -r  用户名 (-r用于将用户的主目录一起删除)

      

18、ftp 服务器搭建(软件使用---vsftpd)

       作用:文件的上传和下载  客服端从服务器端下载

         18.1  服务器端

               1)、修改配置文件--如何修改配置文件   进入/etc/vsftpd.conf   使用命令sudo gedit vsftpd.conf 修改配置文件

               2)、重启服务--什么命令能够重启服务  sudo service vsftpd restart

           18.2  客服端

               1)、实名用户登录 

                        ftp +IP(服务器的IP)

                        输入用户名(服务器用户名)

                        输入密码(服务器密码)

 

                      文件的上传和下载:

                          文件的上传(上传到服务器):put 文件名(可以上传登录目录内的文件)

                           文件的下载(从服务器下载):get 文件名 (需要处于文件所在的服务器目录下,用pwd查看当前目录,cd切换目录)

                           不允许操作目录,如果想操作----打包 tar/rar/zip

               2)、匿名用户登录

                        ftp +serverIP

                       用户名:anonymous

                       密码:直接回车跳过密码输入

                         

                         不允许匿名用户在任意目录直接切换    需要在ftp服务器上创建一个匿名用户的目录---匿名用户的根目录

               3)、lftp客户端访问ftp服务器  需安装lftp软件

                         登录:lftp +服务器ip

                                   login 以匿名用户方式登录服务器

                         查看登录目录:lpwd;切换目录:lcd 目录

                       上传文件:put;上传多个文件:mput

                       下载文件:get;下载多个文件;mget

                        下载整个目录及其子目录:mirror

                          上传整个目录及其子目录:mirror -R

   19、nfs服务器的使用 安装 nfs-kernel-server

               作用:类型windows共享文件夹 

               19.1 服务器端

                     1)创建共享目录: mkdir 目录

                     2)修改配置文件 : /etc/exports   增加一行:/home/mm/NFsShare *(rw,sync) NFsShare自己创建的共享目录

                     3)重启服务:sudo service nfs-kernel-server restart

               19.2 客户端

                      1)挂载服务器共享目录 

                         mount fuwuqIP:共享目录  /挂载的目录

        20、ssh服务器   安装opensh-server

           20.1      作用:服务器管理员通过ssh远程登录外地主机,进行维护

                       远程登录:ssh 用户名@IP    确认连接的时候要写yes/no

                     退出登录:logout

            20.2  scp命令   前提主机已经成功安装openssh-server

                   scp==super copy 可以跨越主机在不同主机之间拷贝

                    使用格式;scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径/保存到本机的绝对(相对)路径

 

     21、终端一些快捷操作

           21.1、创建终端  ctrl+alt+t (ubantu)、ctrl+shift+t(添加新标签)

           21.2、清屏:clear、ctrl+l

           21.3、看手册(帮助文档): 

                      1)查看文档首页:man man

           21.4、查看标准命令是否被封装:alias 命令---会显示实际执行的命令

           21.5、将指定字符串输出到终端:echo  “字符串”(显示字符串) ,echo $环境变量(显示环境变量值)

           21.6 、关机重启(需使用管理员权限):poweroff(关机)、reboot(重启)

   22、vim编辑器的使用(不能使用鼠标)

       22.1   vi--vim  区别与联系:vim是从vi发展过来的一款文本编辑器   

         前提:安装了vim软件

      22.2  工作模式:1、命令模式-----打开文件之后,默认进入命令模式

                         2、编辑模式-----需要输入一些命令,切换到编辑模式

                         3、末行模式-----在末行模式下可以输入一些命令

     22.4 模式切换操作:vi 文件名可以查看文件(命令模式)-----i进入编辑模式,可以修改文件,修改完成esc回到命令模式。保存(:w),退出(:p)

    

    命令模式----冒号 进入末行模式,末行模式---两次esc回到命令模式

   22.5  命令模式下的操作:1)、光标的移动:H、 J 、K 、L(前、下、上、后),0移动到当前行首部),$(移动带当前行尾部),                                              gg(光标移动到当前文件首部),G(移动到文件尾部),550G(移动到文件550行)

                                      2)、删除(剪切):删除光标后面的一个字符(x)、删除光标前面的一个字符(X)、dw删除单词(光标移到单词第一个字母),  光标到行首(d0)、光标到行尾(D/d$),当前行dd、多行 ndd(n--整数)

                                    3)撤销:u;反撤销:ctrl+r

                                     4)复制:yy;复制多行:nyy;粘贴:p(粘贴到光标所在下一行);P(粘贴到光标所在行)

                                           剪切==删除

                                     5)可视模式:切换到可视模式(v)、选择内容h、j、k、l;复制:y,删除:d

                                     6)查找:\(查找内容) 回车  n键在数个查找结果中切换 ----从光标位置向下查找,最下边之后返回到头部

                                                      ?(查找内容)回车  n键切换  ---从光标位置向上查找,顶部之后,返回到尾部

                                                      #-----将光标移动到所需查找单词按下#  n实现切换 

                                      7)单个字符替换:光标移动到所需替换字符按下r 再输入替换字符

                                       8)缩进:<<   >>

    22.6   从命令模式进入编辑模式:a 进入编辑模式,并从光标的后面开始输入;A 进入编辑模式,并从当前行尾开始输入;i 进入编辑模式并从光标的前面开始输入;I 进入编辑模式并从行首开始输入;o 进入编辑模式,并在光标所在的下一行创建一个新行;O进入编辑模式,并从光标所在的上一行创建一个新行;s进入编辑模式,并删除光标后边的字符开始输入;S 删除光标所在的一整行并开始输入;

    22.7 末行模式操作:

             1)行的跳转(直接输入行号);

              2)替换(语法包括从命令模式切换到末行模式):

                               :s/要替换的内容/替换后的内容/g(加g将全行的替换内容替换,不加只将光标所在替换内容替换) 

                               :%/要替换的内容/替换后的内容/g(加g将文档全部替换内容替换,不加g将每行第一个替换内容替换)

                                :20.25/要替换的内容/替换后的内容/g(加g将文档20-25行替换内容替换,不加g将每行第一个替换内容替换)

          3)保存退出: q退出;q!强制退出;w保存;wq保存退出;x==wq;命令模式下保存退出:ZZ(大写)

  22.8 分屏操作

         :sp----水平分屏,且分屏显示当前文件;ctrl+ww-----分屏之间切换;关闭分屏,保存等操作同上,但只关闭光标所在的文件,若想要全部关闭或者保存关闭在上面命令的基础上+all即可,例: :qall全部关闭

           :vsp----垂直分屏,且分屏显示当前文件;其他操作同水平分屏

           :sp /vsp 文件名----水平/垂直分屏,且分屏显示另一文件

23、gcc调试执行源程序  需先安装gcc  可在Linux中先用vim写程序

      23.1 查看版本号:gcc -v

      23.2 产生目标文件:gcc 源文件名 -o 目标文件名

      23.3 指定源文件头文件目录: gcc 源文件名   -o 目标文件名  -I 头文件目录 (不指定默认头文件在源文件目录中查找)

       23.4  编译时定义宏:  -D 宏

       23.5  编译优化:-O0(没有优化)、-O1(缺省值)、-O3(优化到最高级别)

       23.6  只编译子程序: -c

       23.7 包含调试信息:-g(gdb调试的时候必须加此参数)

       23.8 提示更多警告信息(-Wall)

       23.9 执行目标文件 : ./目标文件名

24、静态库制作

         24.1  命名规则(.a结尾表示静态库):lib +库的名字+.a

         24.2  制作步骤:

                 1)生成对应的.o文件:gcc 调试中加-c参数即可将.c文件生成.o文件(gcc *.c -c可将所有.c文件生成.o文件)

                  2)将生成的.o文件打包: ar  rcs + 生成的静态库名称(libMytest.a) +生成的所有.o

           24.3  发布和使用静态库

                   将发布的静态库与头文件一起提供给用户即可使用

                   静态库使用:1)指定静态库路径使用: gcc main.c  lib/libMytest.a(静态库路径)  -o 生成文件名  -I 头文件路径

                                          2)通过参数+静态库名称使用: gcc main.c -I 头文件路径 -L Mytest(静态库名称) -o 生成文件名

                   静态库优点:发布程序的时候,不需要提供对应的库;加载库的速度快;

                   静态库缺点:库打包到应用程序中,导致库的体积很大;库发生了改变,需要重新编译程序;

     25、共享库

           25.1 命名规则:lib+名字+.so

          25.2  制作步骤

                   生成与位置无关的代码(生成与位置无关的.o):gcc -fpic  -c *.c -I 头文件路径

                   将.o打包成共享库(动态库):gcc -shared  -o libMyCalc.so  *.o  -I 头文件路径

          25.3 动态库使用

                   使用人员编写main.c函数---->与动态库一起编译 gcc main.c  动态库目录/动态库.so -o 生成目标文件名 -I 头文件路径

                  ------>执行目标文件得到结果 ./目标文件名

         25.4  解决程序执行时动态库无法被加载的问题

                      临时测试:环境变量 LD_LIBRARY_PATH 将动态库的路径设置给该变量--->将设置的值导入到系统环境变量中:                                           expot  LD_LIBRARY_PATH ;当终端关闭设置会失效

                     不常用方法(永久设置):在家目录的.bashrc文件中添加一句话 :export LD_LIBRARY_PATH=动态目录的绝对路                                                                径;修改完成需要重启终端

                      常用(重点):找到动态连接器的配置文件--- /etc/ld.so.conf ----->动态库的路径写到配置文件中(绝对路径)

                                                 ----->更新(sudo ldconfig  -v)

         25.5  动态库的优缺点

                              优点:执行程序体积小;动态库更新不需重新编译程序(前提接口不变)

                              缺点:发布程序时需要将动态库提供给用户;动态库没有打包到应用程序中,加载速度相对较慢

  26 gdb调试

       

                 

 

                  

      

 

          

       

 

                              

                

 

   

                             

                

         

              

          

         

       

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值