• Linux:最全的开发常用命令


    我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得文章有点 feel ,那就点个赞再走哦。
    在这里插入图片描述

    一、Linux是什么?

    • linux 是一个内核:redhat [红帽]:收费,centos:免费,ubuntu:【界面】

    二、虚拟机常用简单命令

    1.reboot:重启
    
    2.ifconfig[ipconfig]:查看ip
    
    3.cd 目录:进入到某个目录
    
    	1.目录:绝对路径:以/开头的路径 cd   /usr
    	
        2. 相对路径:不是以/开头的路径     cd ../usr
    			  
    4.pwd:当前光标所在的目录  
    
    5.clear:清空屏幕  
    
    6.shutdown -h now
      	
    7.查看文本内容命令:
    
     	1. cat    使用单屏查看文本文件
     
     	2. more  分屏查看时用h(帮助)  space(下翻屏)  b(上翻屏)  enter(下一行)  q键(退出)
     	
     	3. less   e(下一行)  y(上一行)  f  (下翻页)b (上翻页) q(退出)
     	
     	4. head   -#head -2
     	
     	5. tail   -#tail -2
    
    
    # 查看cpu的命令:top
    
    # 查看内存:free -m
    
    # 查看硬盘:df -h 
    
    # find / -name "da"# sync:关机之前,最好将内存中的数据保存到磁盘上!
    	   
    	   # file 文件:查看文件类型
    	   
    8.tab键补齐功能【目录或文件名补齐】、命令补齐
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    三、VI编辑器

    • VI 编辑器是 Linux 系统中使用最广泛的,而且是默认的文本编辑器

    1、文本编辑器的作用:

    1. 修改系统配置文件
    2. 创建用户信息文件
    3. 编辑程序源代码文件

    2、VI编辑器的模式(三种):

    • 命令模式: 由命令模式进入到输入模式:点击 i ( o,a,r );由命令模式进入到末行模式 输入:【冒号】
    • 输入模式: 由输入模式退出到命令模式:用 ESC
    • 末行模式: 在末行模式输入 (w,q,wq,wq! )就可以退出编辑器了

    3、VI编辑器的使用:

    1. 打开或新建文件:vi 文件
    2. 编辑文件:i ,或者o ,或者 a,或者 r
    3. 保存文件: :w 文件 (有另存为功能)
    4. 退出编辑器
    5. :q (已保存或未更改)
    6. :wq (保存后退出)
    7. :q! (强制退出)

    4、命令行模式下:

    • 行内快速跳转:

      1. ^ 行首
      2. $ 行尾
      3. w 后一个单词首字母
    • 行间快速跳转:
      1. : set nu 显示行号
      2. : set nonu 取消行号
      3. 1G 文件首行
      4. #G 转到#行(#号代表的是数字)
      5. G文件末行
      6. vi [+#] 文件名,光标就会自动到达文件的第#行首! (#表示数字!!!)

    • 在末行模式直接输入:#(#代表的是数字),那么就会直接跳转到第 # 行!

    • 光标方向移动在命令模式下:

      • k(上)
      • j(下)
      • h(左)
      • l(右)

    5、删除操作:

    • dd:删除光标所在行
    • 3dd:从光标所在行,往下删除三行
    • d$:删除光标至行尾
    • d^:删除光标至行首
    • 在末行模式直接输入:1,20 d 即可删除第 #1 行到 #2 行的所有内容!(#代表的是数字)!
    • 加#, 如3dd(3就是这里说的#)
    • 撤销操作: u

    6、复制操作:

    • yy:复制光标所在行
    • 3yy:复制光标所在行及下面2行
    • y$:复制光标至行尾
    • y^:复制光标至行首
    • 加#,如20yy -----从光标开始计算
    • 在末行模式直接输入:#,$y 即可复制第#行到文尾的所有内容!(#代表的是数字)!

    7、粘贴操作:

    • p(小p): 粘贴在光标所在行之后
    • P(大p):粘贴在光标所在行之前

    8、查找与替换(末行命令):

    • 查找:
      1. 由 ”/” 或者 ”?” 开始后跟一个 word
      2. 按 n 键查找后一个
      3. 按 N 键查找前一个

    • 替换:
      1. 在末行模式,%s/被替换单词/替换成哪个单词

    四、文件文本相关命令

    1. ls 目录:显示指定目录下的所有未隐藏的目录或者文件
    
    2. ls -a 目录:显示指定目录中所有的文件或者目录【包括隐藏的,以.开头的文件】
    
    3. ls -l:
    
    4. ls -al:以长输出的方式显示所有的文件
    
    5. cat 文件名:查看文件中的内容信息
    
    # mkdir 目录 :创建目录,通过指定 -p 参数可以创建多级目录
    
    # touch 文件名:用于创建一个文件
    
    #rm -rf 目录、文件 删除目录或文件
    
    # rmdir dir1:删除空目录
    
      
    # cp 复制
    
       # cp 文件名a  目录A:  直接将文件a拷贝到目录 A 中,名字不变 a
       
       # cp 文件名a  目录A/b  直接将文件a拷贝到目录 A 中,名字变为 b
       
       # cp -r 目录a  目录A/b  直接将目录a拷贝到目录 A 中,名字由a变为 b
       
       # cp 源文件  目标文件【目标目录】
       
       
      # mv 源文件【源目录】  目标目录【目标文件】:
      
        # mv  源文件  目标文件:
        
        # mv 文件名  目录:
     
     
    6. find 查找文件:
    
       	# find / -name 'aa.txt'
    
     
    7. grep :查找文本中的内容
    
       	# cat aa.txt  | grep "hello"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    五、压缩和解压缩命令

    • Windows 常用的压缩格式: .zip .rar 格式(压缩比更高,压缩速度也更快!)

    • Linux 常用压缩格式:.zip .gz .bz2 .tar.gz .tar .bz2 (把要压缩的文件或者目录先转换成tar包然后再压缩,解决了目录不能压缩和解压缩的问题!)

    • 注意: windows 的 zip 格式的压缩和 linux 系统的 zip 压缩是一致的(可以互相压缩和解压缩)!

    1、zip文件的解压和压缩(可压缩目录和文件)

    1. zip 压缩格式:

      • 压缩文件: zip 压缩文件名 源文件
      • 压缩目录: zip -r 压缩文件名 源目录
      • 注意: 压缩文件有可能比源文件大(这是由于压缩格式的信息也在压缩包里面)!
    2. 解压缩zip压缩的文件:

      • unzip 压缩文件

    2、gz 格式解压和压缩

    • gz 压缩格式是 linux 所特有的压缩格式,但可以在 windows 上解压,不能压缩目录,只能压缩子文件
    1. 压缩:gzip 源文件

      • 注意: 源文件会消失

      • gzip -c 源文件 > 压缩文件

        • 注意:源文件会保留( 重定向是把命令的结果输出到一个文件中! )
      • gzip -r 目录 注意:这会压缩该目录下的子文件

    2. 解压: gzip -d 压缩文件

    • gunzip 压缩文件
    • gunzip -r 目录 (解压缩目录里面的文件)

    3、bz2 格式解压和压缩( bzip2 压缩目录会报错 )

    1. 压缩:bzip2 源文件
      • 注意: 源文件会消失
    • bzip2 -k 源文件
      • 注意: 源文件会保留
    1. 解压:bzip2 -d 压缩文件
      • 注意:-k 保留压缩文件
    • bunzip2 压缩文件
      • 注意:-k 保留压缩文件

    4、tar.gz格式的解压和压缩

    1. 压缩: tar -cvf 打包文件名 源文件(源目录)
    • 选项:
      • -c : 打包
      • -v :显示过程
      • -f :指定打包后的文件名
        • 例子:tar -cvf hello.tar hello.txt
          • gzip hello.tar
          • gzip -d hello.tar .gz
          • bzip2 hello.tar
          • bzip2 -d hello.tar .bz2
    1. 解压:
    • tar -xvf 打包文件名
      • 选项: -x : 解压
        • 例子:tar -xvf hello .tar
    1. tar .gz压缩(先打包为 .tar 格式,再压缩为 .gz 格式)
    • 压缩: tar -zcvf 压缩包名.tar.gz 源文件(可以为多个,文件之间用空格隔开,压缩包名.tar.gz也可以写绝对路径)

      • 选项:-z :压缩为.tar.gz格式
    • 解压: tar -zxvf 压缩包名.tar.gz -C 要解压到的文件夹

      • 选项:-x :解压.tar.gz格式

    5、tar.bz2格式解压和压缩

    • 压缩: tar -jcvf 压缩包名.tar.bz2 源文件

      • 选项:-j :压缩为:.tar.bz2格式
    • tar -jxvf 压缩包名.tar.bz2

      • 选项:-x :解压.tar.bz2格式
      • 案列(指定解压目录):tar -jxvf hello.tar.bz2 -C /opt/installDir

    六、用户(组)管理命令

    1. 添加用户:useradd

    2. 设置密码:passwd

      • 注意:若无则默认为root修改密码
    3. 删除用户: userdel [-r]

    4. 禁止/解禁用户:usermod [-L|-U]

    5. 切换用户:su 注意:输入的是你将要切换到目标用户的密码

    6. 查看当前用户: whoami / who am i

    7. 查看所有已登录用户:who

    8. 查看所有登录用户记录:last

    9. 用户信息文件: /etc/passwd 可通过cat /etc/passwd 进行查看,字段之间都是用冒号隔开,格式为:用户名:口令:用户标示符号:组标识符号:注释性描述:宿主目录:命令解释器

    10. 用户密码文件: /etc/shadow 可通过cat /etc/shadow 进行查看

    11. history:查看你输入过的命令[200]

    1、用户组

    12. 增加用户组:groupadd <groupname>
    
    13. 创建用户时指定用户初始组 useradd -g <initial_group>  <username>
    	
    14. 删除用户组:groupdel  <groupname>
    
    15. 修改用户所在初始组 usermod -g  <groupname>  <username>	
     
    16. 查看用户所属组:groups <username>
    
    18. 组信息:/etc/group :格式为:组名:组口令:GID:组成员  组密码信息在:/etc/gshadow文件中保存!!
    	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    七、文件/目录的权限

    # r:# w:# x: 执行的权限
    	
    # ll命令:长输出显示文件信息
    
      	-rw-r--r-- 1 zhangsan   root                  0        11月 22 18:31                aaaa
                	   属主      属组               文件大小     创建或者修改时间               文件名
                         
    
      -rw-r--r--:
       第一位:文件类型:-:表示这是个普通文件
                      d:表示这是个目录
    				  l:这是一个链接文件
    				  
    rw-[2-4]:表示属主对当前文件的操作权限 
    
    r--[第5位-第7位]:表示属组中的用户对当前文件的操作权限
    
    r--[第8位-第10位]:表示其它人【既不属于属主、也不属于属组中的用户】对当前文件的操作权限
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    八、文件和文件夹的读写执行权限的含义

    		权限		简写		对普通文件的作用	      对文件夹的作用
    		
    		读取		r	    查看文件内容	          列出文件夹中的文件(ls)
    		
    		写入		w	    修改文件内容	          在文件夹中删除、添加或重命名文件()
    		
    		执行		x	    文件可以作为程序执行 	  cd 到文件夹
    	 
    	 
    	 # root用户:不受权限限制,是一个超级的存在。
    	 
    	 # 修改文件的权限:
    	 
    	   chmod:  u/   r/w/x 文件名
    	   
    	   属主:u
    	   
    	   属组:g
    	   
    	   其它:o
    	   
    	   所有用户:a
    
         # 文件授权: 
         
            chmod u+rwx 文件名 或者 chmod u+7 文件
            
    		chmod g+rwx 文件名 或者 chmod g+7 文件
    		
    		chmod o+rwx 文件名 或者 chmod o+7 文件
    		
    		chmod a+rwx 文件名 或者 chmod a+7 文件
    		
    
    # 文件权限设置:
    
    	更改文件权限:chmod [ugoa][+-=][rwx] <file> (用逗号分隔)
    	
    	更改文件所有者:chown <owner> <file>
    	
    	更改文件所属组:chgrp <group> <file>
    	
    	同时更改所有者和所属组:chown <owner:group> <file>
    
    # 连接文件
    
        软链接文件:ln -s 源文件  链接文件,软连接文件依赖于源文件
        
    	硬链接文件:ln  源文件   链接文件,   硬连接文件不完全依赖于源文件
    
    # su|sudo 用户: 表示切换到指定用户身份,暂时以指定用户的身份运行,普通用户切换到root用户,需要输入密码,而root用户切换到普通不需要输入密码:修改:vim /etc/sudoers
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    九、软件安装相关

    1). RPM 包【.rpm软件包】:这种方式比较麻烦:
    
    		1.RPMRedHat Package Manager),Rethat 软件包管理工具,类似 windows 里面的 setup.exe
    		
    		  RethatLinux这系列操作系统里面的软件安装工具,它虽然是RedHat的标志,但理念是通用的
    
    	 
    		2.RPM 包的名称格式:
    		
    			 apache-1.3.23-11.i386.rpmapache:“软件名称”
    			 
    			 "1.3.23-11":软件的版本号,主版本和此版本
    			 
    			 "i386":是软件所运行的硬件平台
    			 
    			 “rpm”:文件扩展名,代表 RPM 包:
    			 
    		
    		
    		3.对于 RPM 包而言
    		
    			常用命令:
    					  查询:rpm -qa:查询所安装的所有rpm软件包
    					  
    							rpm -q tomcat
    							
    							rpm -qa | grep X
    	
    					  安装: rpm -ivh RPM包全路径名称:
    	
    						 i=install,安装
    						 
    						 v=verbose,提示信息
    						 
    						 h=hash,进度
    						 
    						rpm -ivh jdk-7u67-linux-x64.rpm //安装 ,安装到/usr/java/目录下了
    					 
    				
    				   配置环境变量:
    				   
    					vim /etc/profile
    					
    					export  JAVA_HOME=/usr/java/jdk1.7.0_67
    					
    					export  CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    					
    					export  PATH=$PATH:$JAVA_HOME/bin  注意:这里等号两侧不要留空格;
    
    					保存并退出,并使得配置生效
    					
    					source /etc/profile 
    					
    					查看java版本:java -version	
    															 
    				  卸载:rpm -e RPM 软件包
    				  
    				  
    				  
    # Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
    
       1/usr:系统级的目录,可以理解为C:/Windows//usr/lib理解为C:/Windows/System322/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
       3/opt:用户级的程序目录,可以理解为D:/Softwareopt有可选的意思,这里可以放置第三方软件,当你不需要时,直接rm -rf掉即可。
    		   
    		   
    		   
    	2).yum 安装 ---->
    	
    	    语法:yum install 软件名称
    	   
    一、 安装 mysql:centos6
    
        1. 使用root用户: su root
        
        2. 安装:
     
    		yum install mysql(这是安装的mysql的客户端!!!)
    		
    		yum install mysql-server  这是安装的mysql的服务端!!!)
    		
    		yum install mysql-devel(可选)
    		
        3. 修改配置信息,添加: vim /etc/my.cnf
    
    		   (添加一个mysql节点)
    		   
    			[mysql]
    			
    			default-character-set=utf8
    			
    			[mysqld]
    			
    			character-set-server=utf8
    			
    			lower_case_table_names=1
    			
        4. 启动mysqlservice mysqld restart/stop/start
        
        5. 配置超级用户名和密码, mysqladmin -u root password 123456
        
        6. root用户登录mysql -u root -p 123456
    	
        7. 创建mysql用户:create user 'hive' identified by '123456';
      
        8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option
       
        9. flush privileges;
       
        10. 重启一下这个mysql服务。
     
        11. 使用hive用户创建数据库并修改连接信息。
        
    	    create database hive;
    	 
    	 
    3).解压配置安装:tomcat.tar.gz 
             
       tar -zxvf  apache-tomcat-7.0.65.tar.gz -C /opt/install/ :-C指定要解压到的目录
       
       vi /etc/profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123

    十、查看日志相关命令

    # 最常用查看日志方法:
    
    	实时日志:tail -f XXX.log
    	
    	搜索关键字附近日志:cat -n filename | grep "关键字"
    	
    # 查看日志常用命令
    
    1tail:
    
       -n  是显示行号;相当于nl命令;例子如下:
    
            tail -100f test.log      实时监控100行日志
    
            tail  -n  10  test.log   查询日志尾部最后10行的日志;
    
            tail -n +10 test.log    查询10行之后的所有日志;
    
    2head:tail 是相反的,tail 是看后多少行日志,而 head 是查看日志文件的头多少行,例子如下:
    
            head -n 10  test.log   查询日志文件中的头10行日志;
    
            head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;
    
    3cattac 是倒序查看,是 cat 单词反写;例子如下:
    
            cat -n test.log |grep "debug"   查询关键字的日志(常用!)
    
    4vim1、进入vim编辑模式:vim filename
        
        2、输入“/关键字”,enter 键查找
        
        3、查找下一个,按 “n” 即可
        
        退出:按 ESC 键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令
        
        wq! 保存退出
        
        q! 不保存退出 
    
    # 查看日志应用场景一:按行号查看:过滤出关键字附近的日志
    
     (1) cat -n test.log |grep "debug"  得到关键日志的行号
    
     (2) cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前 10 行和后 10 行的日志:
    
            tail -n +92表示查询92行之后的日志
    
            head -n 20 则表示在前面的查询结果里再查前20条记录
    
    # 查看日志应用场景二:根据日期查询日志
    
       (1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
       
    # 特别说明:
    
    	1、上面的两个日期必须是日志中打印出来的日志,否则无效
    
    	2、先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点
    
    
    # 查看日志应用场景三:日志内容特别多,打印在屏幕上不方便查看,分页/保存文件查看
    
    	(1)使用moreless命令,
    	
    	       如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页
    	
    	(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
    	
    	        如:cat -n test.log |grep "debug"  >debug.txt
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
  • 相关阅读:
    python实现某音自动登录+获取视频数据
    【尚硅谷】Java数据结构与算法笔记02 - 队列
    提升工作效率的一些网站、应用、插件和小技巧(二)
    2.spring cloud gateway 源码编译
    [Spring MVC6]事务管理与缓存机制
    实现两栏布局的五种方式
    一文搞懂MySQL索引(清晰明了)
    可变字符串
    flutter 获取屏幕尺寸
    基于人工势场法的移动机器人路径规划研究(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/Mango_Bin/article/details/126842636