zoukankan      html  css  js  c++  java
  • linux基础学习

    1、默认不写端口号的就是80端口

    本地ip:localhost或者127.0.0.1
    2、用户管理
    id和whoami:可以查看当前用户
    who和w查看当前已经登录的用户
    (1)添加用户,用户默认的家目录就是在/home/目录下
    useradd username
    useradd -g groupname -p passwd username
    例如: useradd -g test -p 123456 mary
    drwx------. 3 mary test 4096 12月 25 22:01 mary
    drwx------. 3 tom  tom  4096 12月 25 21:42 tom
    passwd username,给添加的用户加密码、也可以重置密码
            ~波浪线代表家目录,cd ~和cd可以快速回到家目录
    (2)切换用户:su username和su - username
    区别:su - 会重新加载用户的环境变量,因为有用户环境变量的存在。
    sudo 获取超级用户权限,配置如下:
    在/etc/sudoers文件中找到
    root ALL=(ALL) ALL
    username ALL=(ALL) NOPASSWD:ALL
    (3)删除用户:userdel username
    userdel -r username删除用户的时候也删除它的家目录
    (4)组管理:
    添加组:groupadd grpname
    删除组:groupdel grpname
    3、对目录(文件夹)的操作
    pwd:显示当前所在的路径
    cd:进入哪个目录(文件夹)
    cd ..:回到上一级目录
    cd../../回到上两级目录
    cd -:返回上一次所在的目录
    /:顶级目录,相当于windows的我的电脑
    相对路径:相当于当前路径
    绝对路径:实际的路径
    (1)创建文件夹mkdir dirname
    如果创建文件夹的父目录不存在:mkdir -p /tmp/logs/aa
    (2)删除文件夹rm和rmdir
    rmdir:只能删除空文件夹,一般使用rm -rf  文件夹名:递归强制删除文件夹
    (3)查看文件下面的内容lsllls -a等
    drwx------:1.d表示目录;2~4表示所有者权限;5~7表示同一组的权限;8~10表示其他用户权限
    【1】加权限:x代表执行;w代表写;r代表读
    chmod o+x 其他用户加执行权限
    chmod g+x 本组用户加执行权限
    chmod u+x 自己加执行权限
    chmod +rwx或者chmod a+rwx 所有人加执行写读的权限
    【2】去掉权限,就把+变成-
    【3】数字模式代表权限r=4; w=2;x=1;
    例如:chmod 755 file :意思就是所有者有读写执行的权限,本组有读执行的权限,其他有读执行的权限 fi
    如果加权限的是一个文件夹的话要加大写R chmod -R 755 file
    【4】chown改变文件的所有者chown user file ,意思是:把file这个文件的所有者变成user
    drwx------. 3 mary test 4096 12月 25 22:01 mary
    drwxr-xr-x. 2 root root 4096 12月 25 22:43 test
    drwx------. 3 mary tom  4096 12月 25 21:42 tom
    [root@besttest home]# chown test mary
    chown: 无效的用户: "test"
    [root@besttest home]# chown mary test
    [root@besttest home]# ll
    总用量 12
    drwx------. 3 mary test 4096 12月 25 22:01 mary
    drwxr-xr-x. 2 mary root 4096 12月 25 22:43 test
    drwx------. 3 mary tom  4096 12月 25 21:42 tom
    如果是一个文件夹的话要加 -R
    【5】chgrp 改变文件的所属组,chgrp group file,如果是一个文件夹的话要加 -R
    (4)移除和改名mv
    mv如果后面跟的是文件名则改名mv 快乐  happy,如果后面跟的是路径则移动mv linux /tmp
    (5)复制cp
    复制文件:cp ax /tmp/
    复制文件夹:cp -r linux /tmp/
    复制的内容存在,强制复制:cp -rf linux /tmp/
    (6)别名alias cp -i='cp'
    修改完成后,退出再进入远程的时候,别名小时了,想要永久生效的话,加到/etc/profile配置文件中
    (7)统计行数wc -l
    (8)管道符:|,连接两条命令,把前面的命执行的结果给后面的命令处理
    例如:ls|wc -l
    (9)&&连接两条命令,先后执行
    例如:sh startup.sh && tail -f /logs/catlina.out,意思是在执行启动程序的同事查看动态日志
    4、对文件的操作
    (1)编辑vi,有两种模式:编辑和命令模式
    切换:
    命令模式切换到编辑模式:i:当前位置;o:当前行的下一行;a:下一位置进行编辑
    编辑模式切换到命令模式:esc
    退出VI:命令模式下
    :q没有修改的话可以直接退出;:q!不保存退出;:wq保存退出;:x也是保存退出;
    查找:
    /test 从头开始找 ;?test 从文件末尾开始找 
    显示行号:set nu;取消显示行号 :set nonu;快去去到某一行:9 ;快速到文件末尾:shift+g;
    x:删除单个字符; dd:删除整行 ;19dd:删除19行; 
    u:撤销;
    yy:复制一整行 ;19yy:复制19行;p:粘贴 
    .:重复前一次操作 ;$:移动光标到行尾;0:移动光标到行首;
    替换字符串: ":%s/src_str/new_str/g"
    %代表所有行 ;S:替换;g:一行里所有;
    (2)查看文件内容
    cat查看短内容;more可分屏显示;less即可分屏又可以查找;tail -f动态查看日志;
    (3)软连接ln -s:相当于windows中的快捷方式
    lrwxrwxrwx. 1 root root    2 12月 25 23:37 aa -> aa
    (4)硬连接:ln {原文件名}{目标文件名}
    -rw-r--r--. 2 root root 29 12月 25 23:34 aa
    -rw-r--r--. 2 root root 29 12月 25 23:34 bb
    问题1:硬连接和复制的区别:
    几个硬连接=几个名字的同一个房子,这些名字可以相同或不同但地址(inode)是一样的, 所以硬连接被删除只是把相应名字抹去,只有最后一个名字被抹去你才会找不到房
    子;而复制是建造一个一模一样的房子,当然地址(inode)就不同的了。
    问题2:硬链接和软连接之间的区别
    1.硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。
    2.若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。
    3.由于符号链接的特性,导致其可以跨越磁盘分区,但硬链接不具备这个特性.
    软连接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件
    (5)查找文件/文件夹find / -name mysql
    (6)查找文件内容grep xxx file
    例如:tail -f /opt/lampp/logs/access_log |grep GET
    过滤掉指定的关键字grep -v haha
    (7)查看当前目录下所有文件的占用空间du -sh dirname
    (8)查看当前磁盘已经使用了多少df -h
    5、安装软件
    上传、下载:
    ftp工具:直接拖拽、什么都可以上传,要sftp协议
    rzsz命令可以直接上传下载,但是它不能上传文件夹
    6、开关机、重启
    (1)关机:
    定时关机:shutdown -h 30
    立即关机:shutdown -h now;init 0
    (2)定时重启:reboot或者shutdown -r 20
    (3)注销:exit
    7、网络
    (1)查看ip:ip a或者ifconfig;自动获取ip:dhclient
    (2)查看端口号:Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等
    详情:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
    http://www.cnblogs.com/huaishui/p/5873870.html
    查询这个进程号启动端口号是什么:netstat -nlpt|grep 18983
    查看这个端口号有没有被占用:netstat -nlpt|grep port
    常见参数
    -a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态
    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。
    提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
    8、压缩、解压文件:
    (1)–c创建; –x解压;-f归档;-z解压缩;-v输出过程;
    直接打包,前面是包的名字,后面是要给谁打包:tar cvf linux.tar linux
    压缩:tar  zcvf linux.tgz linux或者tar zcvf linux.tar.gz linux
    解压,不管你压缩没压缩都能解开:tar xvf linux.tar 
    (2)zip
    打zip包:zip linux.zip linux
    解压:unzip linux.zip
    (3)gzip:只能对文件打包,打包后原来的文件就没有了
    打gzip包:gzip file.gz file
    解压:gunzip file.gz
    9、重定向
    覆盖原有的内容cat xx > new_xx
    追加cat xx >> new_xx
    10、查找进程ps和top
    查找mysql进程除了grep: ps -ef|grep mysql|grep -v grep
    区别:ps只是显示执行那一时刻的状态,top动态的查看进程
    top:Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。
    11、杀进程kill
    杀进程,可以跟多个pid:kill -9 pid
    12、后台运行某个程序nohup:不挂断地运行命令
    nohup ./jmeter-server &
    13、定时任务crontab
    编辑定时任务:crontab -e
    查看当前有安歇定时任务:crontab -l
    文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1 ~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。cmd表示要运行的程序,*代表 每分钟都执行
    例如:* * * * *cp /opt/lampp/logs/access_log /tmp/logs/`date +%Y%m%d%H%M%S`_access_log && >/opt/lampp/logs/access_log
    14、环境变量:环境变量的作用就是让一个脚本随便在哪个目录 下都能用
    (1)系统环境变量:/etc/profile
    (2)用户环境变量:~/.bashrc
    (3)用法:export PATH=$PATH:-修改完一定要source /etc/profile或者source ~/.bashrc
    15、shell脚本:shell其实就是多个命令写在一起,linux默认的shell解释器就是bash
    例如:
    重启:
    #!/bin/bash
    /root/fangdan/start_jmeter.sh
    /root/fangdan/stop_jmeter.sh
    启动:
    #!/bin/bash
    count=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'|wc -l`
    if [ $count -gt 0 ]
    then
    echo "jmeter-server is running"
    else
    nohup /usr/local/apache-jmeter-3.1/bin/jmeter-server &
    fi
    停止:
    #!/bin/bash
    count=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'|wc -l`
    pid=`ps -ef|grep jmeter|grep -v grep|awk '{print $2}'`
    if [ $count -gt 0 ]
    then
    kill -9 $pid
    echo "jmeter-server stoped"
    else
    echo "jmeter-server not running.."
    fi
    16、软件安装rpmyum源码安装等
    (1)安装:rpm -ivh xx.rpm
    卸载:rpm -e xxx
    查询是否已经安装这个软件:rpm -qa|grep xxx
    (2)yum:yum –y install lrzsz
    (3)源码安装:
    【1】生成编译文件./configure --prefix=/path
    【2】编译make
    【3】把编译好的文件放到你指定的目录下make install
    17、date 可以用来显示或设定系统的日期与时间。
    date 用法: date [OPTION]... [+FORMAT]
    date +%Y%m%d%H%M%S--20161225163425
  • 相关阅读:
    routing路由模式
    MQ的订阅模式
    RabbitMq中的消息应答与持久化
    work工作消息队列Round-robin与Fair dispatch
    040 关于hive元数据的解析
    simple简单消息队列
    用户设置与virtual host配置
    Mq的介绍
    字典
    元组Tuple
  • 原文地址:https://www.cnblogs.com/victory-0315/p/6231576.html
Copyright © 2011-2022 走看看