常用Linux命令学习总结(自己学习使用)

1.在Linux系统中,文件/目录的不同颜色也代表着不同的含义,通常有如下几种颜色:

  • 白色:表示普通文件,如文本文件,配置文件,源码文件等
  • 蓝色:表示文件夹
  • 绿色:表示可执行文件
  • 红色:表示压缩文件或者包文件
  • 浅蓝色:表示链接文件,主要是使用 ln 命令建立的文件
  • 红色闪烁:表示链接的文件有问题
  • 黄色:表示设备文件
  • 灰色:表示其它文件
应用程序的目录结构详解
/位于目录结构的最顶层,类似于Windows的 c:,包含Linux的所有的目录文件。
/bin                        /bin目录又叫二进制目录,包含使用的Linux命令的二进制映像。存放各种可执行文件。
/boot                     boot存放系统核心文件,和启动读取的文件
/dev保存着外部设备代码的文件,这些文件比较特殊,实际上它们都指向所代表的外围设备,如终端、磁盘驱动器、光驱、打印机等。你可以访问这些外部设备,与访问一个文件或一个目录没有区别
/etc目录是整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件,如dhcpd.conf、host.conf、logrotate.conf、man.config、mke2fs.conf、modprobe.conf、resolv.conf、sysctl.conf、syslog.conf(或rsyslog.conf)、xinetd.conf和yum.conf等其他的配置文件分别位于单独的子目录中。
  • /etc/cron.d 用于存储cron进程调度运行后台进程所用的配置和控制文件。其他目录包括/etc/crontab文件定义的cron.hourly、cron.daily、cron.weekly和cron.monthly等四个目录。
  • /etc/cups 用于存储通用UNIX打印系统(Commom UNIX Printing System,CUPS)使用的各种配置文件。
  • /etc/default 其中的文件用于提供部分工具软件(如useradd程序)使用的变量及其默认值。
  • /etc/httpd Apache配置文件的根目录。Apache是一个通用的、高性能的HTTP服务器,也是世界上最流行的Web服务器。Apache采用模块化的设计方式,支持运行时的动态模块选择、虚拟主机,以及服务进程数量的动态调整等。
  • /etc/init.d 用于存储进入相应运行级时需要由init调度执行的脚本文件。在FedoraLinux系统中,这只是一个符号链接文件,实际的目录应为/etc/rc.d/init.d。
  • /etc/ipsec.d 用于存储IPSee使用的配置文件等。
  • /etc/kde 其中含有部分KDE初始化文件和KDM配置文件。
  • /etc/pki 用于存储各种密匙,如用于安装软件包的密匙等。
  • /etc/ppp 用于存储PPP的脚本和配置文件。
  • /etc/profile.d 用于存储/etc/profile等使用的辅助初始化文件,如lang.sh脚本文件等。
  • /etc/rc.d 用于存储进入相应运行级是由init进程调度执行的脚本文件。其中含有init.d和rcN.d等子目录(其中的N为0、1、2、3、4、5和6,表示系统的运行级)。
  • /etc/samba Samba配置文件的根目录。Samba是一个网络共享软件的总称,Linux系统中实现的SMB协议,允许Linux系统为Windows系统提供文件和打印共享服务。
  • /etc/security 用户存储的基本安全控制文件,包括注册控制文件、控制访问控制文件,以及资源限制控制文件等。
  • /etc/selinux SElinux(Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。比MSNT所谓的C2等高得多。应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并提供对机密性和完整性有很高要求的信息很高的安全保障。)配置文件的根目录。
  • /etc/skel 其中存有默认的初始化文件,如.bash_logout、.bash_profile、.bashrc、.emacs、.kde和.zshrc等。每当新增一个新用户时,系统将会把其中的部分初始化文件复制到用户的主目录中。注意:上述文件均为隐藏文件。(即以“.“开头的文件名)
  • /etc/ssh 这个目录含有系统配置过程,以及系统引导过程中需要用到的各种配置文件,也是chkconfig维护的各种后台服务进程配置文件的根目录。例如,其中的clock文件包含系统的时区设置,keyboard文件包含键盘的类型定义,init文件包含系统引导过程使用的参数定义等。
  • /etc/tomcat5 tomcat的根目录
  • /etc/vsftpd 包含FTP服务器的配置文件,其中包括vsftpd.conf、ftpusers和user_list等重要文件。
  • /etc/xinetd.d 其中包含xinetd服务进程控制的所有传统网络服务使用的配置文件,尤其包含telnet等网络应用的配置文件。在Linux系统中,原有的inetd已由功能更强的xinetd服务进程取代,原有的inetd.conf配置文件也由xinetd.d目录中的一系列单独的配置文件取代。
  • /etc/yum 其中包含yum软件更新工具使用的配置文件。
  • /etc/yum.repos.d 其中包含每个软件仓库的配置文件。
/lib目录下存放必要的运行库,主要是编程语言的库。典型的 Linux 操作系统中包含了C、C++和 Fortran
的库文件。用这些语言开发的应用程序可以使用这些编程语言库文件。这使软件开发者能够利用那些预先写好并通过测试的函数。
/mnt该目录是默认的文件系统临时装载点,这是一个通用的安装点,可以临时安装任何文件系统或远程资源。系统管理员执行mount命令完成装载工作。在系统中,该目录包含了光驱、磁盘和软驱的挂载点。
/proc进程文件系统proc的根目录,其中的部分文件分别对应正在运行的进程,可用于访问当前进程的地址空间。它是一个非常特殊的虚拟文件系统,其中并不包含“实际的”文件,而是可用以引用当前运行系统的系统信息,如CPU、内存、运行时间、软件配置以及硬件配置的信息,这些信息是在内存中由系统自己产生的。
/opt目录用来安装附加软件包,用户调用软件包程序放在目录/opt/package_name/bin下,package_name是安装软件包的名称。
/root超级用户root的主目录(在Linux系统中,斜杠字符“/”是整个系统的根目录,而非超级用户的主目录。)
/usr/usr:这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录.
  • /usr/X11R6:存放X-Windows的目录。
  • /usr/bin: 存放着许多应用程序.
  • /usr/sbin: 给超级用户使用的一些管理程序就放在这.
  • /usr/doc: 这就是Linux文档的大本营.
  • /usr/include:Linux下开发和编译应用程序需要的头文件在这里找.
  • /usr/lib: 存放一些常用的动态链接共享库和静态档案库.
  • /usr/local: 这是提供给一般用户的/usr目录,在这安装软件最适合.
  • /usr/man: 是帮助文档目录.
  • /usr/src: Linux开放的源代码,就存在这个目录,爱好者们别放过哦!
  • /usr/X11R6 存放X-Windows的目录;
  • /usr/games 存放着XteamLinux自带的小游戏;
  • /usr/bin 用户和管理员的标准命令;
  • /usr/sbin 存放root超级用户使用的管理程序;
  • /usr/doc Linux技术文档;
  • /usr/include  来存放Linux下开发和编译应用程序所需要的头文件,for c 或者c++;
  • /usr/lib 应用程序和程序包的连接库;
  • /usr/local 系统管理员安装的应用程序目录;
  • /usr/man 帮助文档所在的目录;
  • /usr/src  Linux开放的源代码;
  • /usr/share 用于存放一些共享的数据,比如音乐文件或者图标等等
/var/var 用于存放很多不断变化的文件,例如日志文件等。包含了日志文件、计划性任务和邮件等内容。
  • /var/cache 应用程序缓存目录;
  • /var/crash 系统错误信息;
  • /var/games 游戏数据;
  • /var/log 日志文件;
  • /var/mail 电子邮件;
  • /var/tmp 临时文件目录;

2.文件操作:


    进入 / 文件下:
      

 cd / 

    
    pwd代表显示当前目录路径
    

    pwd


    mkdir新建目录,创建文件夹
        创建名为test的目录(文件夹)
            

mkdir test


        在test文件夹下面,在创建log的目录
          

 mkdir test/log


        在test文件夹下在分别创建testA 和testB 两个文件目录
            

mkdir -p /test/testA  /test/testB


    cd 切换工作目录
        进入/test/log
          

 cd /test/log


        回到上一层
      

      cd ..


        回到上两层
      

     cd ../..


    touch创建文件,创建一个**.**的文件
        创建一个mytest.txt的文件
            

touch mytest.txt


        创建两个分别叫testA和testB的txt文件
          

 touch testA.txt  testB.txt


    ls 显示目录的内容,查看当前文件夹下的所有的文件
        查看当前的文件夹内所有文件的具体属性(权限、所有者、文件大小、日期)
            

ls -l


        查看当前文件目录下的所有以test开头的文件(testA、testB)
          

 ls -l test*


    mv对当前目录下的目录和文件进行移动和重命名
        重命名文件
          

 mv A B


        将当前目录下的testA.txt移动到/test/testA目录下
          

  mv testA.txt  /test/testA


        将当前的testB.txt移动到/test/testB目录下,并且重命名为testBBB.txt
          

 mv testB.txt  /test/testB/testBBB.txt


        将testA.txt和testBBB.txt文件重新移回/test/log文件夹下(一起写,但是会一个一个移动,错误不回滚)
          

 mv  /test/testA/testA.tx   /test/testB/testBBB.txt  -t  /test/log


    cp 复制文件或者目录
        将/test/log目录下的文件 testA.txt 复制到 /test/testA 目录下

            cp /test/log/testA.txt  /test/testA

        将/test/log目录复制到/test/testA目录下
            

cp -r /test/log  /test/testA


    tar 打包、压缩、备份
        将mytest.txt打包,(不压缩),为log_test.tar
          

 tar -cvf log_test.tar mytest.txt


        将本文件夹下的 mytest.txt、testA.txt、testBBB.txt 合并打包并且压缩到log_all.tar.gz
          

 tar  -zcvf  log_all.tar.gz  mytest.txt  testA.txt  testBBB.txt


        解压缩log_test.tar(不压缩的)
          

 tar -xvf log_test.tar


        解压缩log_all.tar.gz(压缩后的)
          

  tar -zxvf log_all.tar.gz


    rm删除文件或者目录
        删除文件,有删除确认
          

 rm   /test/testB/mytest.txt


        强删文件,无删除确认
          

 rm -f  /test/testB/mytest.txt


        强删目录,无删除确认(慎用)
          

  rm -rf /test/log


3.端口查看:


    查看当前占用端口命令
        

netstat -tanlp


    杀死进程,不是杀死端口,而是pid的端口
        

kill ****进程(自己的pid端口)


4.文件查看:

   查看正在运行的docker ,
            docker ps
    查看本及所有的docker,不仅仅是正在运行的
            docker ps -a/docker containter ls -a
    如果状态是exited,查看容器启动日志
            docker logs ****(containterID)
    如果是exited则说明,容器没run起来。此时需要重新用配置文件构建Docker容器,然后再run一遍。
            docker containter start *****(containterID)


    查看文件的内容
      

  cat  /test/log/**.txt


    查看文件内容,带上行号

        cat -n /test/log/**.txt

    从下向上查看文件内容
      

 tac -n /test/log/*.txt


    每次显示一屏的文件内容:(Space 空格键:显示下一屏内容  B键:显示上一屏内容 Enter 键:显示文本的下一行内容 Q键:退出more命令)
        

more /test/log/*.txt


    定位到关键字:输入 more命令后 再输入“/**(/关键字)”
      

 more /test/log/*.txt  
            /**


    less命令和more差不多,可以使用上下左右键,不会主动退出,输入Q
        

less *.txt


    显示文件开头的5行
      

  head -n 5  **.txt


    显示文件末尾5行
      

 tail -n 5  **.txt

5.grep文本搜索工具:


    查看带有关键字* 的所有的行内容
        

grep [关键字] [文件]  

 
    查看带有关键字* 的前两行和后两行数据
        

grep -A 2 -B 2 [关键字]  **.txt   

 
    统计含有关键字* 的内容的行数
      

 grep -c "**" /test/log/**.txt


    查看带有关键字的行号
        

grep "关键字" -n /test/log/**.txt


    
    查看前50行,带有关键字docker 的日志
      

 head -n 50 /test/log/linux_test.log  |  grep docker


    实时刷新带有关键字docker的日志内容,(服务器上日志是实时刷新的)
     

   tail -f  /test/log/**.log  |  grep docker


    显示文件的10-15行数据,并且将docker关键字高亮显示
      

  head -n 10 **.log  | tail -n 15  |  grep [关键字] 


    
6.find再指定目录下查找文件:


    查找当前目录下的所有目录
     

   find - type d


    查找当前目录下的所有文件
        

find -type -f


    查找当前目录和子目录中拓展名为“.log”的文件

        find . -name "*.log"


7.xargs 给其他命令传递参数的过滤器


    查看当前目录下所有文件中含有[关键字]的内容
  

      find ./ -type  f | xargs grep "关键字"    


    查看当前目录30天以前的内容并且删除他们
      

  find ./  -mtime +30 -print | xargs rm -rf

查询日志文件中最后两行匹配字段的数据:

grep -n '/kjg/appointment/' access.log | tail -2


实时查询日志文件的匹配字段:

tail -f  access.log | grep "/kjg/appointment/"


查询所以匹配字段的日志:

cat access.log | grep "/kjg/appointment/"

8.vim文本编辑


    编辑**.txt,按下 i  进入编辑模式
    

    vim **.txt

在任何情况先按键盘上面的ESC按键,接着按冒号:q 回车即可退出
    编辑完成,输入:wq,保存文件并且退出
        :wq
    输入 :q 只是退出
        :q
    输入 :q! 强制退出,数据丢失
        :q!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT猛男赵四

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值