zoukankan      html  css  js  c++  java
  • linux/work

    0。切换用户

    //默认root用户是无固定密码的,并且是被锁定的,如果想给root设置一个密码
    sudo passwd root
    //输入密码 & 确认密码
    
    //切换root用户
    su root
    //输入密码即可--root
    
    //切换为普通用户
    su username      //eg:su yufeng
    
    //在root用户模式下,可修改sudoers文件权限
    vi /etc/sudoers
    在该文件User privilege下
    root ALL=(ALL:ALL) ALL 下添加
    shiyufeng ALL=(ALL:ALL) ALL
    
    //当在普通用户模式下。可应用命令切换
    su -
    //查看当前正在登录的用户
    who

    1。查看端口是否被占用

    【1】MAC下查看端口是否被占用

    //方法一
    //查看80口是否被占用
    sudo lsof -i :80
    
    //方法二
    netstat -anp tcp | grep 80
    
    //如下命令可以直接结束占用端口的所有进程:
    lsof -P | grep ':80' | awk '{print $2}' | xargs kill -9

    【2】linux下查看端口是否被占用

    lsof -i:端口号查看某个端口是否被占用
    
    使用netstat -anp|grep 80 

    2。mysql数据库(docker安装mysql)

    //0。搜索mysql镜像
    docker search mysql
    //1。拉取镜像
    docker pull mysql:5.7
    
    //2。查看mysql镜像
    docker images | grep mysql
    
    //3。启动mysql容器
    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=shiyufeng -d mysql:5.7
    
    //4。进入mysql容器
    docker exec -it mysql bash
    
    //5。连接mysql
    mysql -uroot -pshiyufeng   /  !mysql
    
    //6。退出mysql/容器
    exit

    3。docker 中不能用vim编辑文件解决方案

    //可在docker容器中执行下述命令,即可使用vim编辑文件
    
    //[1]更新来源
    apt-get update
    
    //[2]安装vim
    apt-get install -y vim

    4。操作文件夹/文件

    //1.创建文件夹 (创建learn文件夹,并在下边创建log/etc/html文件夹)
    mkdir learn/log learn/etc learn/html

    //2.以树形显示文件夹目录
    apt-get install tree //安装
    //文件夹下执行命令
    tree

    5。tomcat(docker安装tomcat)

    //查看tomat日志
    docker logs -f tomcat

    Linux命令学习笔记--每天进步一点点!!!

    1。【ls命令 --list】

    ls         //当前所在目录下内容
    
    ls -a      //显示所有文件(包括隐藏文件)
    
    ls -l      //l:longlist 长格式显示,显示详细信息
    
    ls -lh     //人性化显示文件大小(组合使用-l和-h)
    
    ls -ld     //查看目录属性(组合使用-l和-d)
    
    ll /dir/   //查看目录dir下的详细内容 ll=ls -l
    
    ls -i /root/file  //查看file文件的i节点

    2。mkdir命令 --make directory

    mkdir -p dir1/dir2 //递规创建目录dir1/dir2
    
    mkdir dir  //创建单独目录

    3。pwd--print working directory

    pwd    //查看当前所在目录

    4。cd命令 --change directory

    cd dir/      //进入dir目录
    
    cd ~  |  cd  //进入当前用户的家目录
    
    cd -         //进入上次目录
    
    cd ..        //进入上一级目录
    
    cd .         //进入当前目录(无实际作用,即当前目录)
    
    cd ../usr/local/src/     //参照当前目录所在位置查找,相对路径(tab键可补全)
    
    cd /etc/    //从"/"根目录下一级一级查找,绝对路径

    5。rm删除命令 --remove

    rmdir dir/   //删除dir目录(注:dir必须为空目录)(少用)
    
    rm file     //删除文件
    
    rm -r dir   //删除一个目录(若其下有目录和文件,会一级级询问是否要删除)
    
    rm -rf dir/   //强制删除目录dir(包括其下的所有目录和文件)(常用)

    6。cp复制命令 --copy

    cp filename /tmp/newfilename  //改名复制文件到目录tmp下
    
    cp filename /tmp/        //复制原文件到目录tmp下
    
    cp -a filename /tmp/     //原名复制文件到目录tmp下,且与原属性相同
    
    cp -r dir1/ /tmp/     //拷备目录dir1到目录tmp目录下(-r必须)

    cp filename1 filename2 filename3 ../tmp //将多个文件复制到上一级tmp目录下

     参考博客: linux cp命令的15个示例

    7。mv剪切/改名命令  --move

    mv dir/ /tmp     //剪切目录dir到目录tmp下
    
    mv filename newfilename   //将filename改名为newfilename

    8。ln 链接命令 --link

    #硬链接(不推荐):删除原文件不影响链接文件
    ln /root/file.cfg /tmp/newfile.hard  //为file.cfg创建硬链接newfile.hard(文件内容映射,删除哪个文件对别一个不影响)
    ls -i file.cfg  | ls -i newfile.hard  //查看i节点,相同
    
    #软链接(推荐,类比window快捷键):删除原文件,链接文件不可用
    ln -s /root/file /tmp/file.soft  //为root/file创建软件链接file.soft
    #注:软链接源文件必须写绝对路径,否则源文件与链接文件必须在同一目录下才能找到。

    9。文件搜索命令(locate / whereis&which/find /grep)

    locate:只能按文件名搜索(速度快,搜索DB)

    whereis / which:用于搜索系统命令

    find:完全匹配

    grep:包含匹配

    【locate命令:搜索文件 --速度快,但只可以按文件名搜索】
    
        locate install.log   //搜索日志文件(对于新创建的文件搜索不到,搜索的是后台数据库(不是实时更新))
    
    【find命令:搜索文件  --速度慢,但可以按条件搜索文件】
        
    
    
    【whereis与which:搜索系统命令】
     
    whereis ls      //查看ls命令所在位置
    
    whereis -b ls   //只需要看ls在哪,不想看帮助文档
    
    where is -m ls  //只看帮助文档
    
    which ls    //查找ls命令所在位置,包括ls的别名(如:ll是ls -l的别名)
    
    ==
    
    whereis   //知道我在哪  
    
    whoami    //知道我是谁 shiyufeng(当前用户)
    
    whatis ls  //知道这个命令是做什么的
    
    
    【find命令】:完全区配
    
    find / -name filename.log   //查找名字是filename.log的文件(耗费环境,搜索了整个根"/")
    
    find /root -name "filename.log*"  //匹配任意内容(*)查找/root目录下
    
    find /root -name "ab[cd]"   //搜索abc或abd的文件
    
    find /root -name "*[cd]"   //搜索以c或d结尾的字符
    
    find /root -iname "abc"  //不区分大小写搜索abc文件
    
    find /root -nouser    //获取指定目录下没有所有者的文件(内核产生的文件/外来文件有可能没有所有者)
    
    #按时间搜索
    #-mtime:修改文件内容。-ctime:改变文件属性。atime:文件访问时间
    find /var/log -mtime +10 //查找10天前修改的文件 +10:10天前 10:10天当天  -10:10天内
    
    #按文件大小搜索
    find /root -size +26k  //查找root目录下大于26k的文件 +10大于10 -10小于10 10等于10
    
    find /etc -size +2M    //查找etc目录下大于2M的文件
    
    find /root -size 25   //查找25个扇区的文件,因此单位不能省
    
    ls -i //获取i节点,根据I节点查找文件名
    find /root inum 节点号   //根据I节点,查找文件名
    
    find /etc -size +20k -a -size -50k   //查找/etc目录下大于20k且小于50k的文件 -a:and
    
    #-exec将前面的结果,以ls -lh显示  {} 固定格式
    find /etc -size +20k -a -size -50k -exec ls -lh {}   //处理第一个结果以长格式显示
    
    
    【grep命令--搜索字符串】:包含区配
    
    grep "size" file.log    //查找file.log文件中包含size的行
    
    grep -v "size" file.log  //查找不包含size的行

    10。帮助命令(man/help/info)

    (1)【man帮助命令--manual】:支持多个帮助级别
    
    man man   //获取指定命令man帮助[man 命令]
    
    man ls    //查看ls的帮助  [:/d  可查看包含/d的,方便查找]
    
    man -f ls  //[man -f ls] <=> whereis 命令 查看命令帮助
    
    man ifconfig //查看ifconfig命令的帮助
    ifconfig  //查看和修改IP命令
    
    apropos passwd   //查看与passwd相关的所有帮助信息
    man -k passwd    //[man -k 命令]查看与passwd相关的所有帮助信息
    
    (2)【其他帮助命令】
    
    【help获取内部命令帮助】
    
    ls --help    //查看ls的帮助命令[命令 --help]
    whereis ls    //确定是否是内部命令,只要找不到都是内部命令
    
    【详细命令帮助info】--不常用
    info man   //显示man的所有详细帮助[info 命令]

    11。压缩命令与解压缩命令(.zip .gz .bz2)

    .zip:可以压缩文件/目录 (压缩源文件,并保留源文件)--windows可以解压缩

    .gz:可以压缩文件,且源文件消失;压缩目录,会将目录下的所有子目录/文件分别压缩--windows可以解压缩

    .bz2:bzip2命令不能压缩目录,只能够压缩文件

    1)【.zip压缩格式】=windows(通用)
    
    #压缩文件-压缩文件不一定比源文件小
    zip filename.zip filename  //[zip 压缩文件名 源文件] 注:.zip可省,但建议保留
    
    #压缩目录
    zip -r dirname.zip  dirname //[zip -r 压缩目录名 源目录]
    
    #.zip格式解压缩
    unzip filename.zip  //解压缩文件[unzip 压缩文件]
    unzip dirname.zip   //解压缩目录[unzip 压缩文件]
    2)【.gz压缩格式】-linux专有压缩格式,windows可以解压缩
    
    gzip filename    //将文件压缩成.gz格式且源文件消失
    
    gzip -c filename > filename.gz //将文件压缩成.gz格式且源文件不消失
    
    gzip -r dirname  //压缩目录下的所有子文件,但不会打包成一个文件
    
    【.gz格式解压缩】
    
    gzip -d filename.gz   //[gzip -d 压缩文件]解压缩
    
    gunzip filename.gz    //解压缩
    
    gunzip -r dir      //解压缩目录
    
    【.bz2格式压缩】--注意:bzip2命令不能压缩目录
    
    bzip2 filename  //[bzip2 源文件](不保留源文件)
    
    bzip2 -k filename //保留源文件压缩
    
    [.bz2格式解压缩]
    
    bzip2 -d filename.bz2   //[bzip2 -d 压缩文件]
    
    bunzip2 filename.bz2   //[bunzip2 压缩文件]

    12。压缩命令与解压缩命令(.tar.gz / .tar.bz2)

    .tar.gz & .tar.bz2主要用于解决.gz和.bz2压缩目录问题.(实现原理:先打包再压缩)

    ###解决.gz和.bz2格式打包目录的问题(原理:先将文件打包,再压缩)
    
    (1).[.tar格式打包] 
    
    tar -cvf filename.tar filename  //打包文件[tar -cvf 打包文件名 源文件]
    #-c:打包/-v:显示过程/-f:指定打包后的文件名    >可再用gzip压缩
    
    (2).[解打包命令]
    
    tar -xvf filename.tar  //tar -xvf 打包文件名 -x:解打包
    
    (3).打包&压缩(先打包.tar格式再压缩.gz格式)
    
    #打包压缩.tar.gz格式
    tar -zcvf filename.tar.gz filename   //先打包再压缩(c:压缩)[tar -zcvf 压缩包名.tar.gz 源文件]
    tar -zxvf filename.tar.gz    //解压缩[tar -zxvf 压缩包名.tar.gz]
    
    #多文件压缩
    tar -zcvf /tmp/unionfile.tar.gz file1 file2 //将文件file1和file2一起压缩到目录tmp下
    tar -zxvf unionfile.tar.gz  //解压缩
    
    #压缩.tar.bz2格式
    tar -jcvf filename.tar.bz2 filename  //解压缩[tar -jcvf 压缩包名.tar.bz2 源文件]
    tar -jxvf filename.tar.bz2           //解压缩[tar -jxvf 压缩包名.tar.bz2]
    tar -jxvf filename.tar.bz2 -C /tmp/  //指定-C选项,解压缩位置
    
    #只看压缩包内容不解压缩
    tar -ztvf filename.tar.gz  //只压缩包内容不解压缩 [t:test]

    13。关机和重启命令

    date  //查看系统时间
    
    #shutdown:关机前可以保存数据 
    shutdown -r 05:30  //5:30重启(ctrl+c退出)
    shutdown -r 05:30 &  //后台执行重启
    shutdown -c   //将重启任务终止
    shutdown -r now
    
    logout    //退出

    14。挂载命令

    【挂载命令】https://www.imooc.com/video/4443
    
    【挂载和卸载光盘】
    
    #挂载:分配盘符(linux挂载)(其他存储设备U/光盘需要挂载)
    
    mount  //查询系统中已经过载的设备
    
    vi /etc/fstab  //该文件为系统自动挂载文件
    mount -a //依据配置文件/etc/fstab的内容,自动挂载
    
    //mount [-t 文件系统][-o 特殊选项] 设备
    cd ~   //进入home目录 
    
    vi hello.sh   //创建并编辑文件 hello.sh
    ---------------------
    #!/bin/bash       //#代表下述均为Linux脚本(#在第1行不是注释):固定写法
    
    echo "linux" 
    
    -----------------
    ./hello.sh     //执行脚本“ ./”当前目录 
    
    mount -o remount noexec /home/   //挂载时加-noexec则不执行
    ./hello.sh    //会报权限不足
    
    mount -o remount exec /home/   //重新挂载 exec可执行权限
    1)【挂载光盘】
    
    #media:挂光盘  mnt | misc 三个目录均为空目录,用于挂载用
    mkdir /mnt/cdrom    //在目录
    
    mount -t iso9660 /dev/sr0 /mnt/cdrom/   //sr0是cdrom的软链接
    <=>
    mount /dev/sr0 /mnt/cdrom    //dev/sr0挂载到mnt/cdrom目录下
    
    umount /dev/sr0  | umount /mnt/cdrom  //卸载命令
    2)【挂载U盘】
    
    #linux默认是不支持NTFS系统的
    
    fdisk -l       //fdisk:分区命令,查看系统中已识别的硬盘
    
    mount -t vfat 挂载点  //U盘不能直接在linux中挂载
    
    #ntf-3g,默认支持NTFS,有缺点
    
    #实际应用:网络文件传输

    15。用户登录&查看命令

    w  //查看当前登录的所有用户(查看系统当中登录的用户)
    
    w username //查看某一登录的用户(w shiyufeng)
    
    who //查看系统当中登录的用户(比w显示内容更简单)
    
    last //判断系统所有用户(包括之前登录时间和重启时间)的所有信息[实际查询/var/log/wtmp文件]
    
    lastlog  //查看所有用户最后一次登录时间

    16。自定义shell脚本

    #shell脚本
    
    vi hello.sh
    --------
    #!/bin/bash         //“#”标识下面为linux的标准脚本
    # The first shell脚本  //#:注释
    echo -e "e[1;34m hello shell e[0m"
    --------
    :wq  //保存退出
    
    【脚本执行】
    #方法一:bash命令直接调用
    bash hello.sh  //直接执行脚本[bash命令]
    bash ./hello.sh //“./”表当前目录,可省略
    
    #方法二:先赋予执行权限,再调用shell脚本
    chmod 755 hello.sh  //赋于执行权限
    ./hello.sh          //执行脚本(相对路径)
    /root/hello.sh      //执行脚本(绝对路径)
    
    
    //另:echo命令
    echo [选项] [输出内容]
    eg: echo "hello shell"  //直接会输出hello shell
    
    选项:-e //支持反斜线控制的字符转换

    17。bash的基本功能-别名与快捷键|历史命令

    #####bash的基本功能#######
    
    【别名与快捷键】
    
    alias  //查看系统中所有命令别名[alias 别名 原命令]
    
    ls --color=never   //取消颜色显示
    
    alias ls='ls --color=never' //设定命令别名-给命令ls --color=never取个别名ls
    
    vi filename  //vi无颜色,vim有颜色(比vi强大)
    alias vi='vim' //给vim起个别名叫vi,因此打vi,实际打vim
    
    #上述别名只能临时生效
    
    【别名永久生效】
    
    #每一个用户都有自己的环境变量
    vi ~/.bashrc  //写入环境变量配置文件(~代表家目录)
    
    source ~/.bashrc //生效(也可重启)
    
    unalias 别名 //删除别名
    
    【历史命令】
    
    #只能保存正常退出的命令
    history //查看所有历史命令[history [选项] [历史命令保存文件]]
    
    #手动保存历史命令
    history -w   //把缓存中的历史命令写入历史命令保存文件
    
    history -c  //清空历史命令(不建议清空)
    
    #修改历史命令条数
    vi /etc/profile  //查看历史命令保存条数:HISTSIZE=1000(可修改)
    
    #历史命令的调用
    history //查看历史,前显示序号
    !序号   //重复执行每“序号”命令
    !!     //重复执行上一条命令
    !字串  //重复执行最后一条以该字串开头的命令
    eg: history 命令
    ls -l  //第一条 
    ls -a  //第二条
    则! ls 执行的是ls -a这条命令

    18。bash的基本功能-输出和输入重定向

    输出重定向:应该输出到屏幕,结果输出到文件等。改变输出的方向(常用)

    输入重定向:应该统计人为键盘输入的内容,结果统计某文件等的内容。改变了输入的方向(了解)

    【输出重定向】--常用
    
    #标准输入输出(输入:输入到PC,输出:从PC输出)
    
    #linux中一切皆文件
    /dev/stdin  //键盘(文件描述符0)
    /dev/sdtout //显示器(1:标准正确输出)
    /dev/sdterr //显示器(2:标准错误输出)
    
    #输出重定向:输出到屏幕的内容,输出到文件中,改变了输出方向,叫输出重定向
    
    #标准输出重定向(只能保存命令的正确输出)
    #只要有输出的命令,均可以重定向到文件(eg:ls..)
    ifconfig > test.log  //[命令 > 文件]  //覆盖方式添加
    cat test.log   //上述命令未显示在屏幕上,而是写入到test.log日志中
    
    ifconfig >> test.log //[命令 >> 文件] //追加
    
    #标准错误输出重定向(注意2与>间无空格)
    yufeng 2 > test.log //将yufeng这个错误命令输出到test.log文件[错误命令 2 >文件]
    
    yufeng 2 >> test.log //追加
    
    #***正确输出和错误输出同时保存--常用(记住)
    
    #方法一:覆盖方式(>)和追加命令(>>)
    ifconfig >> test.log 2>&1 //正确输出:[命令 > 文件 2>&1]
    yufeng >> test.log 2>&1   //错误输出
    
    #方法二:[命令 &>文件] / [命令 &>>文件]
    ls &>>test.log //正确输出
    yufeng &>>test.log //错误输出
    
    #若不想显示命令,可将命令输出到/dev/null
    ls &>/dev/null   // /dev/null黑洞,特殊设备,当作垃圾站
    
    #方法三:[命令 >> 文件1 2>>文件2]正确与错误日志分别保存
    cat xxx >> yes.log 2>>erro.log //把正确日志放到yes.log,错误日志放到erro.log
    
    
    【输入重定向】[wc [选项] [文件名]  --了解
    
    wc  //可以写入任意内容(统计人为输入)
    ctrl + d  //统计输入了多少字符
    
    wc -c //统计字节数
    
    #改变统计输入方法,不是键盘而是文件
    wc < test.log //统计文件输入的字符
    
    wc <<  string //任意输入,直到遇到string,统计string之前的所有字符

    19。管道符

    #多个命令顺序执行,命令间无逻辑关系
    date ; ls ; cd /etc ; ls ; pwd  //多个命令顺序执行(不管某一命令是否报错,后绪所有命令依旧正确执行)
    
    #逻辑与,多个命令顺序执行,命令间有逻辑关系
    ls && echo yes  //第一条命令必须正确执行,第2条命令才可以执行
    
    # ||逻辑或:命令1不正确执行,才执行命令2
    ls || ls -l  //命令ls不正确执行,才执行命令ls -l
    
    #判断ls是否正确执行
    ls && echo yes || echo no  //ls正确执行,会打印yes,否则打印no
    
    【管道符】
    
    #命令1 | 命令2  命令1的操作结果作为命令的2的操作对象
    
    ls -l  /etc/ > abc //先将ls -s结果输入到某一文件
    more abc //再查看该文件
    
    more test.log //分屏显示(more查看文件)
    
    ls -l /etc | more  //管道符,more查看ls命令的结果
    
    #查看linux的所有网络连接
    netstat -an   //查看linux所有网络连接
    
    #查看连接子多少人
    netstat -an | grep ESTABLISHED //在命令netstat -an中查询ESTABLISHED这个行
    
    #查看连接子多少人(统计行号)
    netstat -an | grep ESTABLISHED | wc -l

    20。通配符

    ls abc*  //查询包含abc的所有文件
    
    ls abc?  //查询abc后包含1个字符的文件
    
    ls abc[0-9] //查询abc后包含任意一个数字的所有文件
    
    ls abc[0-9][0-9]//查询abc后包含两个数字的所有文件
    
    ls abc[^0-9]  //查询abc后不是数字的所有文件
    
    ls abc[^0-9]* //查询abc后除数字外的所有文件
    
    ls abc[^0-9][a-z] //查询abc后是字母的所有文件

    21。正则表达式

    #正则表达式
    
    echo ls //输出ls
    
    #单引号与双引号,$用于调用系统变量
    a=123 //赋予变量值
    echo $a //查看变量值123
    echo '$a' //原样输出
    echo "$a" //输出变量值123
    
    b=ls  //赋予b变量值ls命令
    echo "$b"  //输出ls,不是预期结果
    
    #反引号用于包含系统命令--少用
    c=`ls` //反引号,将ls命令赋值给c
    echo "$c" //会输出ls命令查询的结果
    
    #$()用于包含命令--常用
    d=$(ls) //<=>d=`ls`,将ls命令赋值给d
    
    #转义字符将特殊符号$失去意义
    echo $d //输出$d

    快捷键

    ctrl + c //强制终止当前命令

    ctrl + l //清屏

    ctrl + u //从光标所在行删除到行首

    ctrl + a //光标移到命令行首

    ctrl + e //光标移到命令行尾

    ctrl + z //把命令放入后台

    ctrl + r //在历史命令中搜索

    tab //命令补全

    22。Linux的文件权限与目录配置

    23. linux中如何添加用户并赋予root权限详解 

    su root
    
    vim /etc/passwd
    
    把用户ID修改为 0
    shiyufeng:x:0:1000:shiyufeng,,,:/home/shiyufeng:/bin/bash

    《鸟哥的Linux私房菜》

  • 相关阅读:
    opengl 4.5离线文档下载
    c++下利用URLOpenStream下载
    实时阴影渲染(三):软阴影深度校正
    实时阴影渲染(二):软阴影
    实时阴影渲染(一):PSSM平行分割阴影图
    Ogre材质shader模版
    本地springboot项目连接本地mysql报错。com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    Caused by: java.lang.IllegalStateException: AnnotationAwareAspectJAutoProxyCreator is only available on Java 1.5 and higher
    关于布隆过滤器
    CSS系列------选择器和选择器的优先级
  • 原文地址:https://www.cnblogs.com/kaixinyufeng/p/9689944.html
Copyright © 2011-2022 走看看