欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux学习第三天笔记

程序员文章站 2022-06-05 18:37:36
...

一 用户管理

  • 查看用户

    # cat /etc/passwd
    
  • 用户的分类

    root:x:0:0:root:/root:/bin/bash
    用户名:密码:用户id:用户组id:用户的描述信息:用户的家目录:脚本所在位置
    

    0 表示超级用户

    1~999 表示伪用户 系统的进程

    1000~ 普通用户

  • 用户的创建

    创建用户会默认会创建用户的家目录

    # useradd jack
    # passwd jack
    
  • 用户的删除

    # userdel -r jack			删除用户并删除家目录
    
  • 用户组

    查看

    # cat /etc/group
    

    创建

    # groupadd bigdata_grp
    
  • 用户的切换

    $ su root		不完全切换(不会切换工作目录以及环境变量) 可以写为:$ su
    $ su - root		可以省略root:	$ su -
    
    # exit  			从当前用户退出
    
  • sudo 权限配置

    # visudo
    第100行处添加  (显示行号 底行模式:set nu)
    hadoop  ALL=(ALL)       NOPASSWD: ALL
    
    
    解释 root    ALL=(ALL)       ALL
    在任意地点,以系统的身份执行所有命令
    

二 权限管理

查看文件权限
$ ls -l  test.log
-rw-rw-r--. 1 hadoop hadoop   0 Dec 10 21:58 test.log

解释
    - 表示 文件, d表示文件夹
    rw-rw-r--	分别表示用户、用户组、其他的权限
    第一个hadoop 	表示文件所属用户
    第二个hadoop	表示文件所属用户组
权限介绍
  • 权限表示

    字符									二进制表示				十进制表示
    rwx		表示可读、可写、可执行				 111					7
    rw-		表示可读、可写、不可执行			110					   6
    r--		只读								100					 4
    r-x		可读、可执行						101					   5
    
  • 权限分类

    u	user 所属用户
    g	group 所属用户组
    o	other 其他用户
    
    rwxrw-r--
    rwx表示所属用户权限
    rw-表示用户组权限
    r--表示其他用户
    
  • 权限的修改

    $ chmod u+x test.log				将当前目录下的test.log 加上执行权限
    $ chmod g-rw test.log				删除所属用户组的读、写权限
    
    $ chmod 444 test.log				所有人只读
    $ chmod 777 test.log				任意用户任何权限
    
    $ chmod -R 514 myDir				递归修改权限					
    
  • 修改文件所有者

    $ sudo chown  hadoop:hadoop test.log		修改文件所有者
    $ sudo chown -R hadoop:hadoop hello/		递归修改文件夹所有者
    

练习:

1. 使用root在/opt 下创建a/b/c目录,并创建a/b/c/test.log文件
2. 让hadoop对a及子文件具有 读写执行权限
3. 修改test.log为hadoop所有

三 管道符 过滤符 追加 覆盖

管道符 |
$ ll /etc/ | more			将前一个命令的结果, 传给后一个命令执行
$ ll /etc/ | tail
过滤符 grep
$ cat /etc/hosts | grep centos
$ cat /etc/passwd | grep hadoop
$ ifconfig | grep inet
追加 >>
$ echo "hello world" >> test.log 		 输出helloworld字符串,追加到test.log中
覆盖 >
$ ll /etc/ > test.log 			将ll /etc的内容 覆盖到test.log中
wc
$ wc -w test.log 				统计单词个数
$ wc -l test.log				统计行数
$ ls /etc | wc -l				统计/etc目录下 子文件个数
统计文件大小
$ sudo du -sh /boot/			统计/boot目录的大小

四 文件查找

find语法格式:

find 范围 [选项] 条件按

  • 文件名搜索

    $ sudo find /etc -name *work              查找/etc下 名为已work结尾的文件
    $ sudo find /etc/ -name init
    $ sudo find /etc/ -name init*
    $ sudo find /etc/ -name init???			  ?表示一个字符
    
  • 文件大小

    $ find / -size +2M 						查找系统中大于2M的文件
    $ sudo find / -size +2M -name audit*
    
  • 按所属用户查找

    $ sudo find / -user tom
    
  • 文件类型 (f表示文件, d表示目录)

    $ sudo find /etc -name init -type d	查找/etc目录下, 名为init的目录
    

五 压缩解压

win: zip、rar

linux: .tar.gz

  • tar命令

    -C		change to directory DIR
    -z		--gzip
    -c		create a new archive
    -x		extract files from an archive
    -v		verbosely list files processed
    -f		file
    
  • 压缩

    压缩当前目录的a文件夹, 到当前目录下名为a.tar.gz
    $ tar -zcvf a.tar.gz a/
    备份系统配置文件
    $ sudo tar -zcf etc_bak.tar.gz /etc
    归档当前用户家目录
    $ tar -zcvf hadoop_home.tar.gz /home/hadoop/
    
  • 解压 (注意使用 -C 指定解压目录)

    $ tar -zxvf a.tar.gz			解压当前目录下的a.tar.gz文件,当前目录
    将备份的etc文件解压到a/b/c目录下
    $ sudo tar -zxvf etc_bak.tar.gz -C a/b/c/
    

六 rpm包管理

  • 查看安装的软件

    $ rpm -qa							查看系统的安装软件
    $ rpm -qa | grep ssh				查看ssh相关软件
    $ rpm -qa | grep jdk				jdk相关软件
    
  • rpm安装

    $ sudo rpm -ivh  tree-1.5.3-3.el6.x86_64.rpm
    
  • 卸载

    $ rpm -qa | grep tree					 查询软件名称
    $ sudo rpm -e tree-1.5.3-3.el6.x86_64	 卸载该软件
    

七 yum管理

优点: 自动获取、解决依赖问题

  • 查看yum源的软件

    # yum list								查看所有
    $ sudo yum list | grep tree				显示包含tree的
    
  • 查看安装软件

    $ yum list installed
    $ yum list installed | grep tree
    
  • 安装

    $ sudo yum  install  tree.x86_64
    $ sudo yum -y  install  tree.x86_64			确认
    
  • 卸载

    $ sudo yum -y remove tree.x86_64
    

八 JDK安装

  • 卸载自带jdk

    查看自带jdk
    $ rpm -qa | grep jdk			
    卸载
    $ sudo rpm -e java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64 --nodeps
    $ sudo rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64 --nodeps
    $ sudo rpm -e copy-jdk-configs-3.3-10.el7_5.noarch --nodeps
    $ sudo rpm -e java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 --nodeps
    
  • 上传并解压 jdk

    创建目录
    $ sudo mkdir /opt/software					/opt/software作为存放软件包的目录
    $ sudo mkdir /opt/modules					/opt/modules作为安装解压软件的目录
    修改所有者
    $ sudo chown hadoop:hadoop /opt/modules/
    $ sudo chown hadoop:hadoop /opt/software/
    

    上传解压

    $ tar -zxvf jdk-8u112-linux-x64.tar.gz -C /opt/modules/
    
  • 配置环境变量

    $ sudo vi /etc/profile				修改系统环境变量文件
    在文件末尾添加
    # Java home环境变量
    export JAVA_HOME=/opt/modules/jdk1.8.0_112
    export PATH=$PATH:$JAVA_HOME/bin
    
  • 刷新环境

    $ source /etc/profile
    
  • 测试

    java
    javac
    java -version
    

八 系统管理命令

  • ifconfig

  • ping

  • 查看系统资源,

    按q,或ctrl+c

    $ top
    
    # 2秒采集一次, 采集3次
    $ vmstat 2 3
    
  • 查看内存

    $ free -h
    
  • 查看进程

    $ ps -ef | grep ssh
    
    # 查看java进程, jdk的命令
    $ jps
    
  • 杀死进程

    $ kill -9  进程id
    
  • 查看端口占用

    -t tcp协议的进程, -l 监控  -n显示端口  -p显示进程id
    $ netstat -antp
    $ sudo netstat -antp | grep 22					查看使用22端口的程序
    
相关标签: linux笔记