zoukankan      html  css  js  c++  java
  • linux操作

    xshell里显示乱码问题解决方案:
    第一步:输入echo $LANG可以查看当前使用的系统语言,如下图:

    第二步:查看是否有中文语言包,可以在终端输入locale命令,如有上图表示已经安装了中文语言
    第三步:如果没有中文语言,可以通过网上下载安装中文语言包yum groupinstall chinese-support
    第四步:如何修改系统语言为中文,可以通过输入设置 LANG=语言名称, 如中文是zh_CN.UTF-8(我这里本来就是中文的)
    第五步:修改系统默认语言,如vi /etc/sysconfig/i18n

    如果要改成英文,设置成LANG="en_US.UTF-8",改好之后重启一下系统
    第六步:如果按照以上方法修改设置中文语言还是不行的话,注意您的链接终端选择的编码,以xshell为例,终端编码选择如下图:

    注释:
    #开头的行就是注释,会被解释器忽略,Shell中没有多行注释,只能每一行加一个#号

    定义字符串:
    字符串定义可以用单引号,也可以用双引号,也可以不用引号
    a='besttest' b="besttest" c=besttest

    拼接字符串:
    把一个字符串跟到另一个字符串后面即可,例如:
    name="besttest"
    say="hello, "$name""
    say1="hello, ${name}"
    echo $say $say1

    获取字符串长度,#来获取字符串的长度:
    str='besttest'
    echo ${#str}

    获取字符串的某个元素:
    s='besttest is a good school'
    echo ${s:1:4}

    命令模式切换到编辑模式
    a:点击a会从当前位置的下一个字符开始编辑
    i:点击i会从当前位置开始编辑
    o:点击o会从当前位置的下一行起始位置开始编辑

     

    编辑模式切换到命令模式:esc
    定位到文件的最末端 shift+g
    移动光标到页面中央 shift+m
    移动光标到页面开始处 shift+h
    向后翻页 Ctrl+f
    向前翻页 Ctrl+b
    退出(文件没发生更改)vi :q
    不保存退出(文件发生更改) :q!
    保存退出 :wq :x
    保存 :w
    显示行号 :set nu
    不显示行号 :set nonu
    从上往下查找 /xx,查找下一个按n
    从下往上查找 ?xx,查找下一个按n
    快速到第一行 :1
    快速到第n行 :n
    删除一行 dd
    删除单个字符 x
    撤销 u
    重复上一次操作 .
    复制一行 yy
    复制3行,就3yy,复制8行就8yy
    复制第一行到第三行 :1,3y
    删除第一行到第三行 :1,3d
    替换第一行到第三行中的字符串 :1,3s/str/str_new/g
    替换所有行中的字符串 :%s/str/str_new/g
    粘贴:想粘贴的位置按下p粘贴
    把光标快速移动到行尾 $
    把光标快速移动到行首 0
    查看ip:ifconfig或ip a或ip address show

    cat a.txt # cat适合看文件内容少的,主要参数-n、-b、-s
    -n:由第一行开始对所有输出的行数编号
    -b:和-n相似,只不过对于空白行不编号
    -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行
    举例1:将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件,如cat a.txt b.txt > c.txt
    举例2:对行进行编号,如cat -b a.txt
    more a.txt # more可以分屏显示,空格键:下一页,b:上一页,Enter:向下一行,q:退出,-n:每页行数(可以理解为每按一下空格,跳转的行数) ,+n:从第n行开始显示
    less a.txt # less分屏显示,可以支持查找,空格键:向下滚动一页,Enter:向下滚动一行,pageup:向上滚动一页,pagedown:向下滚动一页,?xx:向上搜索字符串,/xx:向下搜索字符串,q:退出,G:移动到最后一行,g:移动到第一行

    tail -f a.txt # 显示a.txt文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上,退出,按下CTRL+C
    tail -n 20 a.txt # 显示a.txt文件最后20行
    head -2 a.txt # 显示开头2行
    alias m='mysql -uroot -p123456' # alias起别名,以后用m就可以代替后面那句,如果想要命令永久生效,把alias m='mysql -uroot -p123456'放到家目录的.bashrc文件里,然后source .bashrc
    unalias # 取消别名

    linux路径
    cd . 停留在当前目录
    cd .. 返回上级目录
    cd ../xx 退到上级目录的xx目录
    cd ~ 回到用户家目录
    cd回车 退到当前用户个人目录
    cd - 回到上一次操作的目录
    cd ../../ 回到上两级目录
    pwd 查看当前工作目录

    ll     查看当前目录下的文件夹和文件,不显示隐藏文件,显示total,单位是k,-代表普通文件,d代表目录,l代表链接文件,b代表设备文件,9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其他用户对文件拥有的权限。每组中3个字符分别代表读、写、执行的权限,若没有其中的任何一个权限则用-表示,数字26代表apr-1.4.6这个目录下的目录文件数量(有目录和文件,显示目录数量,没有目录显示文件的数量),然后是用户组信息文件大小文件修改时间文件/目录名

    ls -al 查看当前目录下的目录和文件(包括隐藏的),以.开头的都是隐藏文件或隐藏目录,还会显示total
    ls 查看当前目录下的目录和文件,不显示隐藏的,不显示total
    ls -a 显示当前目录下的目录和文件(包括隐藏的),不显示total
    ls -l 和ll一样的


    cp -rf test/ newtest 将当前目录test/下的所有文件复制到新目录newtest下,-f是覆盖已经存在的目标文件而不给出提示
    mv 移动或改名
    mv besttest.bak / 移动到根目录下
    mv besttest.bak test.bak 将 besttest.bak改成test.bak
    mkdir 创建目录
    touch filename或vi filename 创建文件,如果已存在这个文件touch完会更新时间
    rm 删除文件或目录,加上-f不给出提示,直接删除
    rm –rf 强制删除当前目录下的所有文件和子目录
    rmdir 删除一个空目录

    环境变量
    修改环境变量的方式有两种:
    1、修改/etc/profile
    2、修改用户目录下的.bash_profile
    使用export声明变量,如export JAVA_HOME PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH,如果有多个值时使用 : 来分隔,export PATH=$PATH: /tmp,想把哪个目录加到环境变量就把目录写到export PATH=$PATH: 后面,同时需要注意如果修改的是PATH系统环境变量需要把系统环境变量加上,修改完环境变量后,需要使用source /etc/profile或者source .bash_profile来刷新环境变量

    查询磁盘空间
    df -h 显示已经挂载的分区列表及各分区的大小,df -lh 查看当前系统磁盘使用情况,df -h和df -lh显示的内容一样
    du -sh dir1 估算目录或文件dir1已经使用的磁盘空间,-s仅显示总计,du -sh * |sort -n当前目录下所有目录及文件按照升序排序,du -sh * |sort -rn是降序,-sh是以G为单位,-sk是以K为单位,-sm是以M为单位
    quota 设定限制用户使用磁盘空间的命令

    chmod:给文件和文件夹赋权限
    chmod a+rwx # 加上最高权限
    chmod a-x # 减去执行权限
    a代表所有人,u代表归属用户,g代表本组用户,o代表其他用户
    数字方式:
    r=4,w=2,x=1
    rwx:4+2+1,r-x:4+1,rw-:4+2
    -R,递归,主要用于一个目录,把test目录下面的所有文件或目录赋权限
    chown:改变文件所有者和所属组
    chown user:[group] a.txt 将文件a.txt 的拥有者设为user,群组设为group
    chown -R user:[group] dir 将目录dir的拥有者设为user,群组设为group

    find命令
    find / -name mysql -name后面必须完全匹配
    find /opt/ | grep mys 不用完全匹配
    which java 找到当前生效的java的位置,which命令只查找环境变量中path里面的路径
    whereis java 只能用于程序名的搜索,而且只搜索二进制文件

     

    rpm -ivh xx.rpm rpm 安装包安装文件
    rpm -e xx.rpm 卸载rpm方式安装的文件
    rpm -qa 查询已安装的软件

     

    安装:yum install xxx
    安装rz和sz命令:
    yum -y install lrzsz(如果这个命令报错,可以使用rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm命令,lrzsz-0.12.20-27.1.el6.x86_64.rpm安装包自己下载)
    -y:同意所有默认配置项
    yum list | grep xxx 查询你需要安装的软件包有没有
    yum list installed | grep xxx 查询是否安装过这个软件
    yum remove xxx 卸载

     

    编译安装:
    首先保证安装了gcc,如果没有安装可以使用yum -y install gcc*
    第一步:./configure --prefix=/path -with xxx
    第二步:make
    第三步:make install

     

    打包:tar –czvf xx.tar.gz dir1 创建一个gzip格式的压缩包
    解压:tar –zxvf xx.tar.gz
    打zip包:zip aa.zip aa
    解压缩:unzip aa.zip
    打gz包:gzip xx,打成一个gz包
    解压缩:gunzip xx.gz
    重定向:cat nihao > xiaobai,nihao是文件名,如果xiaobai文件里有内容就会把之前的内容覆盖,cat nihao >> xiaobai,两个>就会在xiaobai文件末尾追加,> xiaobai是把空内容存到xiaobai里,可以把xiaobai文件清空的意思
    1.覆盖写入:echo "日志内容" > 文件
    2.追加写入:echo "日志内容" >> 文件

     

    后台启动:nohup 命令 &

     

    虚拟机图形界面切换到命令行的命令是:Ctrl+Alt+F2
    onboot是指在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯
    BOOTPROTO是获取的IP地址类型,static和none为静态地址,dhcp为动态获取IP地址
    linux格式化的时候,流行的格式为ext2和ext3

    常用系统信息命令
    cat /etc/issue 查看虚拟机操作系统
    arch显示机器的处理器架构,要是没有这个命令通过yum install arch安装,如果显示i386或i686说明架构是32位
    i386适用于intel和AMD所有32位的cpu以及via采用X86架构的32的cpu
    i686只是i386的一个子集,支持的cpu从Pentium 2(686)开始,之前的型号不支持
    uname -m等同于arch
    uname -r显示正在使用的的内核版本
    cal 2018显示2018年的日历表
    date 120122522018.00 设置日期和时间 月日时分年.秒
    显示当前日期:date

    cat /proc/cpuinfo 显示cpu info的信息
    cat /proc/meminfo 校验内存使用
    cat /proc/interrupts 显示中断
    cat /proc/version 显示内核的版本
    cat /proc/mounts 显示已加载的文件系统
    cat /proc/net/dev 显示网络适配器及统计
    cat /proc/swaps 显示哪些swap被使用

    查看当前用户:输入id,whoami
    查看当前有多少用户在使用系统:who
    重启:reboot,init 6,shutdown -r now(now表示立即执行),shutdown -r 延时分钟数 '提示信息'
    关机:halt,poweroff,init 0,shutdown -h now(now表示立即执行),shutdown -h 延时分钟数 '提示信息'
    重启、启动、停止网络命令:service network restart/start/stop

     

    添加用户:useradd ssj,$代表普通用户,#代表root用户
    为新用户设置密码:passwd ssj
    切换用户:su - ssj,普通用户切换到root需要密码,root用户切换到普通用户不要密码,中间有-会重新加载用户的环境变量,没有则不加载环境变量
    获取超级用户权限:sudo
    用法:root用户可以执行reboot,普通用户执行reboot会报错,如下图:

    有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限,如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如ssj用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到root ALL=(ALL) ALL这一行,在它下面加入ssj ALL=(ALL) NOPASSWD:ALL然后保存即可,NOPASSWD代表该用户使用sudo的时候不用输入密码,配置完之后普通用户就可以执行sudo reboot命令
    删除用户的家目录和文件:userdel -r ssj,-r用于删除家目录及其所有文件
    修改用户:usermod -l sun2(新用户) sun(旧用户)

     

    添加组:groupadd -g 组id -r 组名,也可以在添加用户时添加组,如useradd -g ssj1 ssj2,ssj1是组名,ssj2是用户名
    修改组:groupmod -g 组新id -n 组新名 组旧名,如groupmod -g 1001 -n xiaohua hua
    查看用户信息:cat /etc/passwd | grep test(test是用户名,用于查找某个用户)

    test是用户名,x是密码,501是用户id,502是用户所在组id,/home/test是用户家目录,/bin/bash是shell命令所在路径
    查看组信息:cat /etc/group | grep test(test是组名,用于查找某个用户组)

    test是用户组,x是用户组口令,502是uid,如果最后一个:后面还有,该项是用户组所包含的用户
    删除组:groupdel 组名

     

    1是父进程,1399是子进程,如果把下面用户的子进程1449kill掉,1399这个进程还在,因为父进程1还在,父进程守护子进程的

    ps -ef |grep java  # 检查java 进程是否存在
    下面对命令选项进行说明:
    -e 显示所有进程
    -f 全格式
    grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户,grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

  • 相关阅读:
    代码 自动化部署
    java 反射工具
    springBoot 简化读取配置 Configuration Processor
    docker 安装redis
    怎么用mybatis
    shiro框架
    Nginx 负载均衡的几种方式
    CSS Reset
    两种CSS3圆环进度条详解
    兼容全浏览器的本地图片预览
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8677834.html
Copyright © 2011-2022 走看看