• linux


    imageimage
    image
    image
    image
    image
    image
    image

    Linux命令 ---账号管理

    管理里用户命令
    su root ----切换权限
    useradd aaa ---创建用户
    passwd aaa ---设置密码
    usermod -l czbk aaa 把用户aaa的用户名变成czbk
    ctrl + d 退出用户
    userdel 用户名 删除用户
    管理用户组命令
    groupadd ----创建一个用户组
    groupmod ----修改用户组名 -n kaifazu kaifa 改名kaifa改为kafazu
    groups itcast ---查询用户所属组
    groupdel kaifazu ---删除用户组
    管理用户组内成员
    groupadd kaifazu
    useradd user1
    useradd user2
    useradd user3
    gpasswd -a user1 kaifazu
    gpasswd -a user2 kaifazu
    gpasswd -a user3 kaifazu
    grep 'kaifazu' /etc/group 查看组内成员
    日期管理
    date 显示当前时间
    date -d "2020-12-12 11:11:11" 展示时间 CST 北京时间
    date -s "2020-12-12 11:11:11" 设置时间(需要管理员权限)
    显示用户
    logname[--help][--version] 显示登录账号的信息
    切换用户 su
    su -c command 切换用户执行迷你改良,只想完毕之后再变为原来的使用者
    例:su -c ls root 切换到root命令中执行ls
    id命令 当前用户的详细信息
    sudo 提高普通用户的操作权限
    sudo ls 提高权限执行ls命令
    sudu -u root ls 指定root 执行ls命令
    top命令 实时显示process状态
    ps命令 当前的进程信息
    kill命令 杀死进程 kill + pid 杀死pid的进程 likk - 9 pid 强制杀死进程
    kill -9 $(ps -ef\grep 用户名)杀死指定用户所有进程
    kill -u 用户名 杀死指定用户所有进程
    关机命令 shutdown
    shutdown 一分钟后关机 shutdown -c 取消关机
    shutdown -h now 立马关机
    shutdown +1 "1分钟以后关机" 一分钟后关机
    shutdown -r +1 "准备重启了" 一分钟后重启
    重启命令 reboot
    who命令 显示当前登录系统的用户 who -H 显示明细(标题)信息
    timedatectl 矫正服务器时间、时区
    timedatectl list-timezones 展示所有时区
    timedatectl set-timezone "Asia/Shanghai" 设置时区
    timedatectl set-ntp false 禁用ntp时间
    timedatectl set-time "2030-01-01 11:11:11"
    timedatectl set-ntp true 开启ntp时间
    目录管理:只有一个根目录,所有文件和目录都在根目录下
    ls 目录名称 列出目录里的内容
    ls -l 详细信息
    ls -a 隐藏信息
    ls -al 当前所有文件都展示详细信息
    pwd 查看当前的路径 pwd -P
    cd 命令 切换目录 cd ..回退
    mkdir 创建目录 创建一个文件夹
    mkdir -p aaa/bbb 创建多级目录
    rmdir 删除空的目录
    rmir -p bbb/ccc 删除ccc,如果删完之后bbb时空的,bbb也一起删除
    rm 删除文件或者目录
      touch a.txt创建文件
    rm a.txt 删除文件
    rm -r aaa 删除目录和目录里面所有的内容
    cp 文件复制
    cp aaa/a.txt ccc 把aaa中的a.txt 拷贝到ccc中
    cp aaa/* ccc 把aaa中的文件拷贝到ccc中
    cp -r aaa/* ccc 把aaa中的所有文件夹和文件拷贝到ccc中
    mv命令 改名 移动文件或文件夹
    mv 文件名 文件名 将源文件名改为目标文件名
    mv 文件名 目录名 将文件移动到目标目录
    mv aaa/* ccc 把aaa里面所有的东西剪切到ccc中
    mv ccc/a.txt aaa 只剪切一个文件
    文件基本属性:
    d 目录
    - 文件
    | 为链接文档
    权限:r:可读 w:可写 x:可执行 -:没有当前权限
    例:drwxr-xr-x 2-4位:属主权限 5-7位:属组权限 8-10位:其他用户权限
    chgrp 更改属组 chgrp root aaa 把指定aaa用户组改为root
    chgrp -v itcast aaa 把aaa用户组改为itcast 多一个提示语句
    chown 属主名 文件名 更改属主 chown 属主名:属组名 文件名  更改属主和属组 chown root aaa 把aaa所有者改为root
    chown root:root bbb 把bbb所有者和属组都改为root
    chown -R root:root aaa 将aaa文件夹和里面所有的属主和属组都改为root
    chmod权限命令
    数字权限 读-4 写-2 执行-1 无权限-0
    语法:chmod 数字权限 文件或目录
    chmod -R 770 aaa 设置权限
    chmod -R 符号权限 aaa
    u-user g-group o-other a-all _+(加入) -(除去) =(设定)
    chmod u=rwx,g=rx,o=r a.txt
    例题:
    useradd java --添加三个用户
    useradd erlang
    useradd golang
    groupadd dev-group --添加一个组
    gpasswd -a java dev-group --将三个用户添加到一个组中
    gpasswd -a erlang dev-group
    gpasswd -a golang dev-group
    grep 'dev-group' /etc/group --查看组中的用户
    mkdir -p /tmp/work --创建一个文件夹work
    chgrp -R dev-group /tmp/work --把文件夹所属的用户组改为dev-group
    chmod -R 770 /tmp/work 更改权限
    ls -al --查看当前文件夹内的文件所有信息
    touch命令 如果文件不存再就创建文件,如果存在就修改时间属性
    touch a.txt      touch a{1..10}.txt 创建a1-a10
    stat a.txt 查看文件的属性
    vi/vim编辑器
    vi:只能是编辑文本内容,不能对字体段落进行排版,不支持鼠标操作,没有菜单,只有命令
    vim:是从vi发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序中被广泛使用。
    vi/vim 命令 编辑 末行模式
    语法:vim 文件名
    如果文件已经存在,会直接打开该文件
    如果文件不存在,打开一个临时文件,在博爱出且退出后,就会新建一个文件
    i insert 在当前字符前插入文本
    I insert 在行首插入文本
    a append 在当前字符后插入文本
    A append 在当前行末添加文本
    o 在当前行后插入一空行
    O 在当前行前插入一空行
    :q 当vim进入文件没有对文件内容做任何操作可以按“q"退出
    :q! 当vim进入文件对文件内容有操作但不想保存退出
    :wq 正常保存退出
    :wq! 强行保存退出,只针对与root用户或文件所有人
    cat small.txt 查看小文件内容 只能查看小型文件
    cat -n small.txt 有行号
    less 查看大文件
    less a.txt 查看a.txt的内容
    less -N a.txt(加入行号)
    tail 查看文件的最后部分
    tail -3 big.txt 查看文件的后三行
    tail -f big.txt 动态查看文件的最后部分
    tail -4f big.txt 动态查看文件的最后四行
    tail -n+2 big.txt 从第二行开始到文件的末尾
    tail -c 45 big.txt 文件的最后字符
    head 和tail类似
    grep命令
    grep 关键字 文件 根据关键词,搜索文本文件内容
    grep ri small.txt 含有关键字的整行显示出来
    grep -n ri small.txt 含有关键字的整行(包括行号)显示出来
    grep -i a small.txt 含有a的展示出来忽略大小写
    grep -v ri small.txt 只要不包含ri的每行都展示出来
    ps -ef 展示所有进程
    ps -ef |grep sshd 含有sshd展示出来
    ps -ef | grep sshd | grep -v "grep"
    ps -ef | grep -c sshd 包含sshd的个数
    vim定位行
    vim 文件名+行数 查看文件并定位到具体行数 例 vim a.txt +5
    echo命令
    echo 字符串 展示文本
    echo 字符串>文件名 将字符串写道文件中(覆盖文件中内容)
    echo 字符串>>文件名 将字符串写道文件中(不覆盖文件中的内容)
    cat 不存在的目录 &>> error.log 将命令的失败结果追加到error.log 文件的后面
    awk命令
    cat a.txt | awk '/zhang|li/' 包含zhang和li的行进行展示
    cat a.txt | awk -F ' ' '{print $1,$2,$3,$4}' 先按照空格进行切割然后再进行打印
    cat a.txt | awk -F ' ' '{OFS="==="}{print $1,$2,$3,$4}'先按照空格进行切割然后中间以===再进行打印
    cat a.txt | awk -F ' ' '{print touppper($1)}' 转为大写tolower变为小写,lenth计算长度
    cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel}'计算第四列的总分并显示
    cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel,NR}' NR 总行数
    cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel,NR,(totel/NR)}' NR 总行数 平均分
    软连接
    ln -s aaa/bbb/ccc/ddd/eee/a.txt a.txt 生成软连接(快捷方式)
    find 命令再指定目录下查找文件
    find . -name "*.txt" .表示当前目录 查找当前目录下.txt的所有文件
    find . -ctime -1 查找一天之内操作的文件
    find / -ctime "*.txt" 查找根目录下的所有.txt文件
    备份压缩
    gzip 压缩文件
    gzip a.txt 压缩a.txt 文件
    gzip * 压缩所有文件
    gzip -dv *解压所有文件并列出详细信息
    gunzip 解压文件
    gunzip *( 解压所有文件)
    tar命令 打包、压缩和解压(文件/文件夹)
    tar -cvf a.tar a.txt c表示创建一个新的文件 v显示过程 f指定新的文件名 打包
    tar -zcvf b.gz b.txt z表示压缩通过gzip指令处理压缩文件
    tar -zcvf aaa.gz aaa 压缩指定文件夹
    tar -ztvf aaa.gz t查看压缩文件例的内容
    tar -zxvf aaa.gz 解压
    zip unzip命令
    -q不显示指令执行的过程
    -r递归处理,将指定目录下的所有文件和子目录一并处理。
    zip -q -r aaa.zip aaa 压缩指定文件/文件夹
    upzip 只能解压.zip扩展名的压缩文件
    -l显示压缩文件内所包含的文件
    -d 指定文件解压缩后所要的存储目录
    unzip -l aaa.zip 显示压缩文件下包含的文件
    unzip -d bbb aaa.zip 解压到bbb文件夹下
    bzip2 新的压缩算法
    bzip2 a.txt 压缩文件会删除原来的文件
    bunzip2 -v a.txt.bz2 解压并显示详细信息
    网络与磁盘管理
    ifconfig 查看当前网卡
    ifconfig ens37 down 关闭网卡
    ifconfig ens37 up 开启网卡
    ifconfig nes37 192.168.23.199 netmask 255.255.255.0 配置IP地址和子网掩码
    ping命令 检测是否与主机联通
    ping www.baidu.com 检测是否与百度联通
    ping -c 2 www.baidu.com 指定次数
    netstat命令 显示网络状态
    netstat -a 显示所有连接中的Socket
    netstat -i 显示网卡列表
    lsblk 硬盘的使用情况
    lsblk -f 系统的信息
    df命令 显示硬盘的使用情况(文件系统)
    df aaa 文件夹的使用情况
    df --total 文件的所有使用信息
    df -h 转换单位便于阅读
    mount命令挂载设备
    挂载点创建
    mkdir aaa
    mount -t auto /dev/cdrom aaa 挂载到aaa
    卸载
    umount aaa
    yum -y install tree  -y如果有选择命令全是yes(安装tree)
    yum remove tree 卸载tree
    yum list tom* 查找tom开头的软件名称
    yum源 修改yum源 yum -y install wget
    cd /ect/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.back
    ym install -y wget 安装下载工具
    wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 下载阿里云的Centos-7.repo文件
    cat CentOS-Base
    yum clean all 清理之前的缓存,并重新加载yum
    yun makecash 建立一个缓存文件
    yum search tomcat 查找软件,验证阿里云的yum源是否可以正常使用
    rpm 用来管理Linux各项套件的程序
    rpm只能安装已经下载到本地机器上的rpm包。
    
    shell入门
    shell是一个命令解释器
    shell是位于操作系统和应用程序之间,是他们二者最主要的接口
    shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结构解释给应用程序
    
    echo $SHELL展示SHELL
    /bin/bash linux中默认的shell
    手工方式:手工敲
    脚本方式:写到一个文件中,然后运行这个文件,达到执行的效果,这个文件就叫做脚本文件。
    
    编写第一个shell
    新建一个文件后缀名为sh
    书写内容
    #!/bin/bash
    #这是临时shell脚本
    echo 'nihao'
    echo 'itcast'
    执行
    
    touch a.sh 新建
    vim a.sh 编写
    #! /bin/bash
    #这是第一个脚本文件
    echo"itcast"
    echo"nihao"
    :wq!
    chmod 777 a.sh
    ./a.sh
    
    shell注释
    单行注释 #
    多行注释 :<<! 多行注释 ! !可以是任意字符
    
    shell变量
    普通变量
    number=10 定义变量
    echo $number 展示number
    bash a.sh 运行
    a='10'
    echo $a 展示a
    a='$number' 展示$number 会将''里面的值原样输出
    b="$number" 展示10 会将number中的值拿出来再进行赋值
    
    命令变量
    c=`date`
    echo $c 展示时间
    d=$(date)
    echo $d 展示时间 执行`或者$()范围内的命令 将命令执行后的结果赋值给变量
    
    使用变量
    $变量名 非标准写法图省事
    "$变量名" 非标准写法,图省事
    ${变量名} 在双引号里面要使用变量的值
    "${变量名}"
    
    result="现在的时间为${d}"
    echo "${result}"
    
    只读变量 readonly变量名
    删除变量 unset变量名
    readonly result
    unset result
    
    shell数组
    #定义一个数组
    arr=(a b c d e f)
    #给数组中的元素赋值
    arr[0]=A
    获取数组中的元素
    echo ${arr[0]}
    echo ${arr[1]}
    获取数组的长度
    echo "数组的长度${#arr[*]}"
    echo "数组的长度${#arr[@]}"
    
    shell算数运算符
    num1=`expr 2 + 2`
    echo "整数2+2的结果问$num1"
    
    num2=`expr 2 - 2`
    echo "整数2-2的结果为$num2"
    
    #整数相乘
    num3=`expr 2\* 2`
    echo "整数2*2的结果为$num3"
    
    #变量相加
    a=10
    b=20
    num4=`expr $a + $b`
    echo "变量a和变量b相加的结果为$num4"
    
    #赋值
    c=30
    num5="${c}"
    echo "变量c的值赋值给num5,打印num5的值$num5"
    
    #自增
    e=1
    ((e++))
    echo "变量e为1,自增之后,结果为$e"
    
    bash 文件名 运行或./ 文件名
    
    shell字符串运算符
    a="aaa"
    b="bbb"
    #判断两个字符串是否相等
    # $?可以获取上一条语句的执行结果
    [ "${a}"="${b}" ]
    echo "判断两个字符串是否相等,0为真,1为假:$?"
    
    #判断两个字符串是否不相等
    [ "${a}"!="$[b]" ]
    echo "判断两个字符串是否不相等,0为真,1为假:$?"
    
    #判断字符串的长度是否为0
    [ -z "${a}" ]
    echo "判断字符串的长度是否为0,0为真,1为假: $?"
    
    #判断字符串的长度是否不为0
    [ -n "${a}" ]
    echo "判断字符串的长度是否部位0,0为真,1为假:$?"
    
    #判断字符串是否为空
    [ $"{$a}" ]
    #如果不为空,那么就是0
    echo "判断字符串是否为空: $?"
    
    #获取字符串的长度
    echo "获取字符串的长度 ${#a}"
    
    #关系运算符
    #只能比较数字,不支持字符串,除非字符串的值是数字
    
    a=10
    b-20
    #比较两个数是否相等
    [ "${a}" -eq "${b}" ]
    echo "a和b两个数字比较的结果为:$? " ]
    #-ne 不灯于
    #-gt 大于
    #-lt 小于
    #-ge 大于等于
    #-le 小于等于
    
    #if语句
    #查找一个进程,如果这个进程存在,就打印true
    if[ $(ps -ef | grep -c "ssh") -gt 1 ]
    then
           echo "true"
    fi
    
    #查找一个进程,如果这个进程存在打印true,否则打印false
    if[ (ps-ef | jgrep -c "ssh") -gt 1 ]
    then
    	echo "true"
    else
    	echo "false"
    fi
    
    #if第三种格式
    #定义a b 三种提示判断
    a=10
    b=20
    if [ "${a}" -eq "${b}"]
    then
    	echo "相等"
    elif["${a}" -lt "${b}"]
    then
    	echo "a小于b"
    else
    	echo "a大于b"
    fi
    
    shell选择语句
    #选择结构语句
    v="czbk"
    case "${v}" in
    "czbk")
    		echo "传智播客"
    		;;
    "baidu")
            echo "百度"
    		;;
    "guge"
    		echo "谷歌"
    		;;
    esac
    
    shell循环语句
    for loop in A B C
    do
    	echo $loop
    done
    while循环
    a=1
    while[ "${a}" -le 10 ]
    do
    	echo "${a}"
    	((a++))
    done
    
    shell函数
    函数名(){}
    函数调用 直接写函数名
    有参无返回值
    cabk(){
    	echo "第一个参数$1"
    	echo "第一个参数$2"
    }
    调用: czbk a b
    有参有返回值
    czbk(){
    	echo "接收到参数$1和$2"
    	return$(($1+$2))
    }
    czbk 10 20
    echo $?
    
    #在方法种键盘录入两个整数,返回这两个整数的和
    #read 斌来年国民那个 ---表示把键盘录入的数据赋值给这个变量
    method(){
    	echo "请输入第一个数"
    	read number1
    	echo "请输入第二个数"
    	read number2
    	echo "两个数字分别为${number1},${number2}"
    	return $(($number1+$number2))
    }
    #方法的调用
    method
    echo $? 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    image
    image
    image
    image
    image
    image
    image
    image
    image

  • 相关阅读:
    虚方法表与动态分派机制
    方法重载与invokevirtual字节码指令的关系
    栈桢与操作数栈以及符号引用与直接引用的转换
    通过字节码分析this关键字以及异常表的作用
    JVM synchronized关键字所生成的字节码
    window Chrome 下允许跨域访问服务端接口设置
    JVM Java字节码方法表与属性
    JVM 字节码的结构
    Jar hell问题以及解放方法
    JVM 线程上下文类加载器
  • 原文地址:https://www.cnblogs.com/rhy2103/p/16339221.html
Copyright © 2020-2023  润新知