基础的Linux命令

来源:互联网 发布:人大金融硕士毕业知乎 编辑:程序博客网 时间:2024/06/05 03:12

Linux基础

1Linux文件夹结构    /bin                   //二进制文件目录    /sbin                  //二进制文件目录    /dev                   //device,设备目录,光驱,磁盘,分区...    /etc                   //配置文件目录    /lib                   //库文件,共享对象文件(so---shared object,等价于dll文件)    /home                  //主(家)目录,/home/ubuntu   /home/ubuntu2,...    /media    /ant    /opt    /root                  //root用户的主目录(家目录)    /user                  //user用户    /user/bin              //可执行文件    /user/sbin             //可执行文件    /user/local            //    /user/local/bin        //    /user/local/sbin       //2Linux基本操作    Linux    cd                //改变目录    ls                //列出目录    ls -al            //列表方式列出目录  -h:人性化可读 -a:显示全部文件(.xxx) -l:列表展示    clear             //清屏    xxx --help | -h   //查看帮助    man ls            //查看帮助    info ls           //查看帮助    ls -al | more     // | 管道符 空格键是翻屏                      //q 退出                      //.开头的文件(夹),等价于隐藏文件                                                     ping www.baidu.com    whoami            //查询当前的用户    which             //查询可执行的地址 which cp    echo $PATH        //linux 区分大小写,windows 不区分    cd ~              //回到主目录    pwd               //显示当前目录    sudo passwd       //切换用户                      //输入ubuntu密码                      //再输入root密码                      //确认root密码    su  root          //切换用户    ifconfig          //查看ip地址    ping www.baidu.com//ping 网络    find . | grep a   //查看当前文件夹下的目录结构    mkdir  -p a/b/c   //创建多层目录    rm -rf            //递归强制删除 r 递归 f强制    touch a.txt       //创建空文件    echo helloworld > a.txt   //覆盖模式    echo helloworld >> a.txt  //追加模式    cat a.txt         //直接查看文件内容    nano编辑器        1. nano hello.txt        2. ctrl+o    //保存        3. ctrl+x    //退出        4. ctrl+k    //剪切一行        5. ctrl+u    //复制一行    cp hello.txt b/c/d   //复制文件    cp hello.txt b/c/d/a.txt //复制文件 制定名称    cp -R xxx ../        //复制目录到制定位置(递归)    mv a aa     //同一目录下移动就是重命名    mv a ../aa  //不同目录下是移动操作    head  -3 hello.txt  //显示开头n行数据    tail  -3 hello.txt  //显示末尾n行数据    hostname            //查看主机名                        //配置文件 /etc/hostname                        //su root                         //nano echo >    重启        sudo reboot       //重启        sudo shutdown  -P now   //关机,关电源 -r 重启 reboot        sudo halt -p      //关机关电源    uname -a              //查看系统内核信息    file  a.txt           //查看文件类型    file  /lib/xx.so.0.0.0//共享文件===dll文件        tar -c -f -v -x       //-c create 创建归档文件                          // -f 文件  指定文件名称                          // -v verbose 详细信息  显示详细信息                          //对a.txt hello.txt a归档成1.tar tar -cvf  1.tar a.txt hello.txt a                                  //对wangpeng.tar 解归档 tar -xvf wangpeng.tar                                                         // -x extract 从归档文件抽取,解档                          // -z 通过gzip进行过滤    tar -tf wangpeng.tar  //-t查看归档文件的内容                       tar -rf wangpeng.tar  xxx //-r将xxx文件追加到tar中                       gzip -1 mytar.tar     //原地压缩 时间优先    gzip -9 mytar.tar     //原地压缩 空间优先    tar -zxvf mytar.tar.gz //解压并解档文件    gunzip mytar.tar.gz    //解压缩文件 = gzip -d    `xargs`:反引号包括起来的内容不是普通的字符串 而是一个命令     find . | grep txt | cp `xargs`  def //查找所有的文件并过滤剩下txt作为输入并复制到def文件中                                        //xargs作用 将过滤剩下的txt文由竖形排列到横向并加空格排列                                             ``                                  //命令的嵌套 例: echo `hostname`    mount                               //挂载外设    mount /dev/cdrom /mnt/cdrom         //挂载光驱到/mnt/cdrom下    unmount /dev/cdrom                  //解除挂载

    权限      owner    主人       group    组,linux用户隶属于组,              可以隶属于多个组,但是只能够隶属于一个primary group 首要组              可以隶属于多个secondary group 从属族     other all = owner + group + other    l rwx    rwx     rwx  1   root root 29 Nov 11 03:58     //第一个字母表示文件的类型       111    111     111  如果有权限就是1      000    000     000  如果没有权限就是0    r:read  读      文件:查看文件内容      文件夹:查看文件夹包含的资源    w:write 写      文件:修改文件内容      文件夹:创建文件和删除文件    x:execute 执行      文件:可执行      文件夹:是否可以进入文件夹    d  directory目录    l  link     链接    -  file     文件    b block     块设备

    linux链接文件        1 硬链接(hard link):实时同步 默认创建的链接是硬链接            两个完全相同的文件,占用两倍的磁盘空间.两者实时同步.删除的时候            删除一个文件 另外一个不删除        2 符号链接(symblic link 符号链接)            相当于快捷方式,不会占用过多的磁盘空间            如果源文件删除,链接失效(不意味着删除,红色)        3 创建链接(硬链接) ln hello.txt hello.txt.ln //给hello.txt创建一个链接 默认硬链接           //硬链接文件也是普通文件 用作备份很方便 删除的时候 另外一个并不删除        4 创建链接(符号链接) ln -s hello.txt hello.txt.ln        5 grep 特殊字符需要转义            ls -al | grep "\->"     过滤特殊字符  

jobs 查看后台作业 

    查看进程信息    ps                      //process show 进程显示    ps -Af                  //-A全部进程  -f输出格式 full全部    杀死进程

    剪切    对每行输出进行剪切处理    cut -c(按照字符) 1-3 hello.txt  //对hello.txt文档剪切每一行的前三个字符    ps -Af | cut -c 50- | more

    磁盘命令    查看磁盘信息,分区    sudo fdisk -l /dev/sda(磁盘)  //查看sda磁盘   sda1 sda3 sda5是磁盘sda的分区    df                            //disk free    查看磁盘使用情况

    dirname 查看文件(夹)所在目录    dirname /home    basename 输出文件的基本名称(去除目录的部分)     basename /home/ubuntu/hello.txt //输出hello.txt    basename /home/ubuntu/hello.txt .txt //输出hello    echo $(hostname)  类似于echo `hostname` 都是进行动态命令执行的

    cd -P myBin         //到链接的物理路径上    cd -                //后退    cd -5               //后退5步    echo $evn_name      //输出环境变量    echo ${evn_name}    //输出环境变量    echo $"evn_name"    //输出环境变量    export mypath=/home/ubuntu  //导入环境变量 只在当前会话中有效    path环境变量 windows 使用;分割 linux使用:分割

    help  export        //查看Linux内置的命令                if rm -b.txt;then echo ok ;else echo erro;fi

    Linux内置变量的访问方式        1   $?                返回刚刚执行命令的结果,0 成功 !0失败            ls             echo $?        2   $#                 获取参数的个数            rm -r bin   //$# = 2        3   $n                获取第几个参数                $0       //命令本身                $1       //第一个参数,rm -r bin  $1= -r                $@       //得到所有参数                rm -r bin//$@=-r bin        4   shift                向左移动参数 左边的参数被覆盖掉

        1   a&&b            a成功执行后,再执行b命令            a||b            a执行失败后,再执行b命令            a;b            a执行后,再执行b,没有成功失败的约束条件            a ; b                  //切换目录            (a;b)            同上 但是不切换目录            (a;b)                  //不切换目录

NetCat  瑞士军刀    1   TCP/IP          transfer control protocal 传输控制协议          internet protocal 网络协议    2   Socket编程            ServerSocket服务器端  //server listenner监听器 port端口            Socket      客户端    //connection 链接 port端口    3   命令  nc -l 8888  开启服务器端套接字ServerSocket l(监听) 在本地启动一个ServerSocket进程              ctrl + z    放置于后台              jobs        查看后台作业              kill + %+编号 杀死后台作业 kill %1  //杀死后台编号为1的作业              nc -l 8888 & 开启服务器端套接字ServerSocket &表示将改进程放到后台执行              nc ip + 端口              nc localhost 8888 启动客户端,连接到服务器端口8888              fg %1  转换到前台                        ctrl + d 结束(两端进程都终止了)     4   文件传输                nc -l 1234 > read.txt //重定向输出数据到文件中而不是标准输出到控制台                                                      nc localhost 1234 < read.txt //重定向输入

    命令前后台切换        1.启动命令时直接放到后台            nc -1  8888 &  &符号直接后台启动        2.将当前进程暂定并放入后台 变成作业(job)了            ctrl+z            jobs             查看后台所有运行的作业 只需要它的作业编号        3.将后台作业job激活,并在后台运行            bg (background) %n (作业编号)        4.将后台作业切回前台运行            fg (foreground) %n (作业编号)       

    增减新用户        1 useradd            是底层添加用户的命令.推荐用adduser添加用户        2 addUser            通过adduser添加用户            adduser --home  /home/ubuntu2 --gid 1000 ubuntu2  //ubuntu的组的id 1000

    apt        advanced package tookit,高级包管理工具        1 apt-get               update   //更新软件包列表               upgrade  //升级               install  //安装               remove   //删除               purge    //删除软件和配置文件        2   apt-cache               apt-cache search jdk        3   更新ubuntu:的仓库源            在etc/apt/source.list文件中配置了ubuntu官方的仓库源            修改为网易的仓库源            deb http://mirrors.163.com/ubuntu/ precise main restricted            deb-src http://mirrors.163.com/ubuntu/ precise main restricted            deb http://mirrors.163.com/ubuntu/ precise-updates main restricted            deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted            deb http://mirrors.163.com/ubuntu/ precise universe            deb-src http://mirrors.163.com/ubuntu/ precise universe            deb http://mirrors.163.com/ubuntu/ precise-updates universe            deb-src http://mirrors.163.com/ubuntu/ precise-updates universe            deb http://mirrors.163.com/ubuntu/ precise multiverse            deb-src http://mirrors.163.com/ubuntu/ precise multiverse            deb http://mirrors.163.com/ubuntu/ precise-updates multiverse            deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse            deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse            deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse            deb http://mirrors.163.com/ubuntu/ precise-security main restricted            deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted            deb http://mirrors.163.com/ubuntu/ precise-security universe            deb-src http://mirrors.163.com/ubuntu/ precise-security universe            deb http://mirrors.163.com/ubuntu/ precise-security multiverse            deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse            deb http://extras.ubuntu.com/ubuntu precise main            deb-src http://extras.ubuntu.com/ubuntu precise main        4   更新软件包列表            sudo apt-get update        5   升级软件包            sudo apt-get upgrade        6   搜索软件            sudo apt-cache search desktop

增强VMware  宿主机和客户机文件共享    1编辑客户机的设置        虚拟机->虚拟机设置-->选项-->共享文件夹    2进入客户机的/mnt/hgfs查看共享的文件夹

————————————————————

dpkg

 1直接安装.deb软件包       Dpkg -i(install) gedit-4-xx.deb 2 通过which查看是否安装成功       Which gedit 3 卸载软件包       Sudo dpkg –remove gedit

Dpkg-query

 1 查看本地安装的软件包       Suod dpkg-query –list | grep gedit  

克隆客户机(省)Ubuntu网络连接的形式1 桥接      模拟成一台物理主机2 NAT      Net address transform 网路地址转换3 Only-host

设置客户机为静态ip1 查看NAT的网关      网络地址编辑器?NAT-->NAT设置…?查看网关(192.168.231.2)2 查看网段     网络地址编辑器?NAT?DHCP设置…?起始网段(192.168.231.100),结束ip(192.168.231.254)3 条选一个IP     192.168.231.1004 编辑ubuntu的网络配置文件    (/etc/network/interface)5 重启网络服务    Sudo /etc/init.d/networking restart6通过ping

If + for shell编程

#!/bin/bashif [[ $# -lt 1 ]] ;then echo noparams ; exit ; fi  for a in "$@"; do echo $a> ${a}.txt ; doneLinux 脚本 test.sh#!/bin/bash$#                                          //取出参数的个数For a in “$@” ; do echo $a>${a}.txt;done    //$@取出所有的参数                                             //For a = For a in “$@”

for循环0.查看帮助    help for 1语法一   for NAME [in WORDS …] ; do COMMANDS; done   [例如]   For a in 1 2 3 4 ; do echo $a ; done2语法二     [语法]for (( exp1; exp2; exp3 )); do COMMANDS; done    [例子]for (( a=1; a<=10; a= a+1 ));do echo $a; done

while循环    1语法        (( EXP1 ))        while (( EXP2 )); do            COMMANDS            (( EXP3 ))        done    2用while循环对应10个数字        #!/bin/bash        (( a=1 ))        while (( a<=10 )); do         echo $a        (( a=a+1 ))        done    3用while循环打印所有的参数        #!/bin/bash        (( count = $# ))        (( a=1 ))        while (( a<=count )); do         echo $1         shift ;        (( a=a+1 ))        done