【努力努力再努力】Linux命令进阶

**

Linux基本命令:

**

查看用户命令:

	 ll /usr/sbin/user*
	 列如:(usermod,userdel,useradd)

查看用户组命令:

	 ll /usr/sbin/group*
	 列如:(groupmod,groupdel,groupadd)

添加和删除用户:

	 useradd ruoze (创建一个ruoze用户,并且自动创建一个ruoze用户组)
	 通过 id ruoze 命令查看信息:
	 uid=501(ruoze) gid=501(ruoze) groups=501(ruoze) 
	 uid:(用户)	gid:(主组)	groups:(所有组)
	 查看用户创建记录:cat /etc/passwd
	 查看组创建记录:  cat /etc/group
	 userdel ruoze (删除ruoze用户)
	 如果删除用户之后,/etc/passwd中没有记录
	   				/etc/group中没有记录(因为ruoze组中只有一个ruoze用户,当删掉ruoze用户,该组经过校验发现只有自己,就会删除该组,但是家目录中用户还在,删除后再创建会提示用户存在,不过用户一样会创建出来)

将用户添加到用户组:

	 usermod -a -G 用户组 用户
	 usermod -g 用户组 用户 (将用户组改为主组)

设置密码:

	 passwd 用户

怎样切换用户:

	 su - 用户
	 su   用户
	 - : 代表切用户以后,进入该用户的家目录且执行 环境变量文件

退出当前用户:

	 exit

普通用户如何临时获取root最大权限:

	 vi /etc/sudoers
	 修改配置文件:(列如:
	 root    ALL=(ALL)       ALL
     用户  ALL=(root)      NOPASSWD:ALL) :wq! 强制退出后, 输入sudo ls -l /root 命令,查看信息
 

管道符和过滤:

	 | (管道符)
	 grep (过滤)
	 用法:(列如:cat /home | grep jepson 在查看home下所有用户之后自动将jepson筛选出来)

怎样查看进程:

	 ps -ef | grep tail
	 显示出的信息:root  2425  1779  0 20:39 pts/0    00:00:00 tail -f install.log.syslog
	 2425:进程pid
	 1779:父id
	 ps  -ef | grep 'log' (模糊查询)

杀死进程:

	 kill -9 进程的pid
	 kill -9 pid pid(并行杀)
	 如果我只想杀死包含log字符的所有进程:(kill -9 $(pgrep -f log))
	 (提醒: kill前确认清楚该进程是否该杀 不要杀错 )
	 (linux操作: 遇到rm kill高危命令 需确认再确认)
	 

查看端口号:

	 netstat -nlp | grep pid或者进程名字

题目:

	 老板说去A服务器 login,打开xxx软件的web界面?ip+port
	 ps - ef | grep xxx  --> pid -->  netstat -nlp | grep pid
	 等价于
	 netstat -nlp | grep xxx
	 (0.0.0.0:22   或者 ::: 80都表示的是本机ip,代表当前ip对外提供访问
	  如果:127.0.0.1:80  或者 localhost:80   只针对内部当前机器访问 )

如果出现链接拒绝错误 Connection refused应该怎样做:

	 window   : 控制面板 卸载程序 打开或关闭windows功能 选中Telnet客户端 部署
	            通过 cmd  ping一下ip,然后 telnet ip port,如果不行,很有可能是ip只针对内部当前机器访问	            
     linux    :    yum install telnet.x86_64

搜索命令:

	列如搜索xxx软件
	 history | grep xxx (通过查看历史命令记录来查找xxx软件)
	 ps - ef | grep xxx (通过查看进程搜索xxx软件)
	 find / -name '*log*' (全局 根目录模糊查询)
	 find ./ -name  '*log*' (当前目录开始 模糊查询)
	 * (代表模糊查询)

Linux安装和卸载软件 rpm

	 yum search 软件名字: (搜索软件)
	 yum install -y 软件名字: (下载软件)
	 yun remove 软件名字: (卸载软件)
	 rpm -qa | grep 软件名字: (搜索软件)
	 rpm -e 软件名字: (卸载软件,卸载过程中可能会出现失败的情况,由于该软件包依赖于其他rpm) 
	 rpm -e --nodeps 软件名字: (强制卸载软件)

查找命令:

	 which xxx (命令都是从$PATH中查找)

mv和cp哪个速度更快:

	 当在同一系统中时mv的速度会快于cp的速度

文本编辑命令:

	 vi xxx.log: (编辑xxx.log文件)
	 在生产中使用vi修改配置文件,别人的服务文件时应先要复制一份,再进行修改

命令行模式常见快捷键:

	 dd: (删除当前光标所在行)
	 dG: (删除当前光标所在行下的所有行包括光标所在行)
	 ndd: (删除光标所在行下的n行包括光标所在行)
	 gg: (光标跳转到第一行第一个字母)
	 G: (光标跳转到最后一行的第一个字)
	 shift+$:(行尾)

生产场景下如果一个文件内容比较多,想清空该如何做:

	 gg --> dG: (第一种方式)
	 echo "" >文件: (为清空,文件中还存留一个字节,要注意)
	 cat /dev/null >文件: (真正的清空)

当一个文件内容非常多,比如系统文件,如何快速定位到你想搜索的关键词:

	 在尾行模式下输入 /关键词
	 set nu: (表格化,开头有行号)
	 set nonu: (取消表格化)

权限:

	 drwxr-xr-x. 3 root root  4096 Jan 19 20:42 1
	 drwxr-xr-x. 2 root root  4096 Jan 19 20:44 4
	 -rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog
	 -rw-r--r--. 1 root root 49566 Jan 23 21:37 jepson.log
	 -rw-r--r--. 1 root root     1 Jan 23 21:30 ruoze.log.1
	 d rwxr-xr-x
	 第一个: d:(代表文件夹)  -:(文件)  l:(连接)
	 r: 读 4
	 w: 写 2
	 x: 执行shell脚本 1
	 列如:rwxr-xr-x 755
		  rwxr--r-- 744
		  r--r--r-- 444
		  r-xrwxrw- 576
	 rwxr-xr-x :分为三组
	   第一组:rwx 7 代表文件和文件夹所属用户的权限: 读写执行
	   第二组:r-x 5 代表文件和文件夹所属的用户组的权限: 读执行
	   第三组:r-x 5 代表其他组的所有用户对这个文件或者文件夹的权限: 读执行
	 root root
	 第三列:所属用户
	 第四列:所属用户组
	 第五列字节(文件大小)
	 ll -h:(只能查看文件大小)
	 du -sh:(即可以查看文件大小,也可以查看文件夹大小)
	 第六列:文件时间

修改用户权限命令:

	 chmod -R 777 目录:(修改用户权限)
	 chown -R 用户:所属用户组 目录:(修改所属用户和用户组,来达到修改权限的作用)
	 -R表示递归,文件夹下所有的都会被修改
	 整套Linux命令中,只有这两个命令用到的是大R,其它都是小r

软连接:

	 ln -s 原始路径 目标路径
	 注意:(删除目标路径,原路径不会被删除)

上传和下载:

	 yum install -y lrzsz (下载rpm)
	 rz: window --> linux
	 rs: linux --> window

系统命令:

	 top
	 load average:0.00,0.00,0.00( 生产服务器 不要超过10经验值)

查看内存:

	 free -m

查看硬盘:

	 df -h

压缩解压:

	 zip:(压缩)  unzip:(解压)
	 列如: zip -r 文件夹.zip 文件夹/*(压缩文件夹以及文件夹下所有内容)
	 	  unzip 文件夹.zip
	 tar -czvf(压缩)  tar -xzvf(解压)
	 列如:tar -czvf 文件夹.tar 文件夹/*
	     tar -xzvf 文件夹.tar

作业调度:

	 crontab -e:(edit user's crontab)编辑
	 crontab -l:(list user's crontab)查看
	 [root@hadoop001 ~]# crontab -e 
	 * * * * * /root/test.sh >> /root/test.log
	 格式:* * * * * *
	 第1个: 分
	 第2个: 小时
	 第3个: 日
	 第4个: 月
	 第5个: 周
	 *代表 每
	 
	 每10秒?
	 编写脚本:[root@hadoop001 ~]# vi test.sh
	 ( #!/bin/bash

	 for((i=1;i<=6;i++));
	 do
        	date
        	sleep 10s
	 done

	 exit )

后台执行命令 不交互:

	 ./test.sh &
	 nohup ./test.sh &
生产:
	 ==> nohup ./test.sh &
	 	 nohup .test.sh > /root/test.log 2>&1 &   # 详细解释 https://blog.csdn.net/ggxiaobai/article/details/53507530
	 	  
	 

猜你喜欢

转载自blog.csdn.net/qq_42585142/article/details/88046057