zoukankan      html  css  js  c++  java
  • linux 命令2

    Linux版本分为内核版本和发行版本。Linux和unix非常相像,但是也会有区别。
    
    应用程序调用shell,shell调用内核,内核将结果返回给shell,shell将结果返回给应用。操作系统安装之后都是一个个的文件夹。Linux最终要的是内核和shell,文件系统和应用程序都是需要组织和配置的。

    0表示关机。1表示只有一个用户可以登陆,就是系统管理员账号。2表示多个用户,没有网络。3表示多用户,默认的。4用户自定义做操作,比如不允许哪些服务启动。5图形化界面。6重启。

    ls -a : 显示隐藏文件。
    pwd:显示当前目录位置。
    
    File:显示文件的类型
    root@ubuntu:/dev# file vfio
    vfio: directory
    
    Touch 文件名,创建文件
    
    Cp:复制文件
    root@ubuntu:/yw/df1# cp Dockerfile Dockerfile1
    root@ubuntu:/yw/df1# ls
    root@ubuntu:/yw# cp -r df1 df2   : 复制目录
    
    Mv:移动文件
    root@ubuntu:/yw/df1# mv Dockerfile ../Dock

    Which,whereis,locate,find

    Which:查找可执行程序(要在指定的用户环境变量里面查找)
    root@ubuntu:/yw# which docker
    /usr/bin/docker
    
    Linux里面安装软件是有标准的安装位置的,可执行程序在/usr/bin目录下面,配置文件在/etc下面,手册帮助说明在/usr/share/man/man1/下面,
    root@ubuntu:/home/yw1989# whereis docker
    docker:  /usr/bin/docker  /etc/docker  /usr/share/docker.io /usr/share/man/man1/docker.1.gz
    root@ubuntu:/home/yw1989# whereis pass
    pass:    : 表示没有
    root@ubuntu:/home/yw1989# whereis ifconfig
    ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
    pass是存在的但是whereis没有找到,whereis和locate都是在查找自己的数据库,安装软件的时候相关的信息就已经写到数据库里面去了,所以whereis和locate速度非常快。
    
    Locate:也是一个查找,比which和whereis都要详细很多。就是只要涉及mkdir都找出来, 字符查找。
    root@ubuntu:/home# which mkdir
    /bin/mkdir
    root@ubuntu:/home# whereis mkdir
    mkdir: /bin/mkdir /usr/share/man/man1/mkdir.1.gz /usr/share/man/man2/mkdir.2.gz
    root@ubuntu:/home# locate mkdir
    /bin/mkdir
    /usr/bin/gvfs-mkdir
    /usr/lib/klibc/bin/mkdir
    /usr/share/bash-completion/completions/gvfs-mkdir
    /usr/share/man/man1/gvfs-mkdir.1.gz
    /usr/share/man/man1/mkdir.1.gz
    /usr/share/man/man2/mkdir.2.gz
    /usr/share/man/man2/mkdirat.2.gz
    /var/lib/docker/overlay2/5f45f46deaffd568fe89881b638f5c3655968bbc52e30634f415f075b3ae43ed/diff/bin/mkdir
    /var/lib/docker/overlay2/5f45f46deaffd568fe89881b638f5c3655968bbc52e30634f415f075b3ae43ed/diff/usr/share/man/man1/mkdir.1.gz
    Locate的信息比较多,可以输出到文件,然后查看:
    root@ubuntu:/home# locate pass > 1.txt
    root@ubuntu:/home# ls
    1.txt  yw1989
    root@ubuntu:/home# vim 1.txt
    
    有时候有些文件既不是可执行程序,也不是安装生成的(没有加入数据库),是我们自己创建的,就要用find:
    root@ubuntu:/home/yw1989# find / -iname dockerfile (find / -iname *dockerfile*/home/yw1989/dockerfile
    /home/yw1989/dockerfile/Dockerfile
    
    先使用which,whereis,locate,最后使用find,因为find是查找硬盘的比较慢。

    -普通文件
    d :目录
    l:符号连接文件,目录可以做连接,文件也可以做连接,实际上它指向另一个文件,类似于快捷方式,
    lrwxrwxrwx   1 root root    30 2月   2 06:46 vmlinuz -> boot/vmlinuz-4.13.0-32-generic
    c:字符设备文件,比如硬件信息查看cdrom,软驱fd,这些设备文件是打不开的,用vim打开也是空的。
    root@ubuntu:/dev# ls -l
    total 0
    crw-------  1 root root     10, 175 2月   8 22:38 agpgart
    crw-------  1 root root     10, 235 2月   8 22:38 autofs
    
    输入重定向基本不使用。
    wc是统计文件的信息,统计行数。wc会去读取这个文件,并统计行数
    root@ubuntu:/yw# wc < Dock
     10  38 266

    进程

    进程是和程序有依赖关系的,是程序在执行过程中产生的一次执行过程。进程是为了程序在执行过程中不会产生任何干扰,比如window系统现在是多用户多任务,比如打开音乐并且写文档,要相互不影响,当任务结束后进程就消息了。
    
    程序:代码的集合。程序再运行的过程中产生进程,程序是由一个个的进程组成的,可以产生多个进程。产生几个进程取决于程序怎么写的。进程也是有生命周期的。程序结束的时候进程也会结束。程序大于进程。
    
    killall -u apache      //会发现apache进程并没有全部被杀死,因为apache的父进程没有杀掉,会再次派生出子进程。有的程序会派生出父进程和子进程,有的没有父进程,就是一堆的进程。
    kill 3957      //根据root启动的父进程号来杀
    
    系统启动就启动的进程叫做后台进程,或者叫做守护进程(服务的方式)。除了守护进程还有一个叫做交互进程,交互进程启动并且里面的代码执行完了之后,进程就停止了。
    
    进程启动:前台启动和后台启动。后台启动就是守护进程启动,可以是随着系统启动或者是定时器启动。前台启动就是手动执行程序,执行完进程就完了。
    
    ps -ef   //显示进程信息,UID是进程是基于用户启动的,pid是进程号,ppid是父进程,父进程是子进程的父亲,子进程是父进程派生出来的,
    ps aux   //也可以查看进程信息,只是有了cpu使用率内存使用率,
    ps aux | grep apache

    jobs

    jobs作业控制是针对用户自定义的程序,而不是针对系统的守护进程系统服务之类的,jobs是没法操作这些的,比如文件上传下载,可以放到后台去执行,fg 1,bg 1,1是jobs号,来放到前台和后台执行。
    root@ubuntu:/# sleep 1000
    ^Z    :ctrl + Z暂时停止
    [1]+  Stopped                 sleep 1000    :暂时性停止
    root@ubuntu:/# sleep 2000
    ^Z    :ctrl + Z暂时停止
    [2]+  Stopped                 sleep 2000
    
    root@ubuntu:/# ps -ef | grep sleep    :sleep任务都有进程的
    root       3746   3707  0 22:48 pts/2    00:00:00 sleep 1000
    root       3751   3707  0 22:50 pts/2    00:00:00 sleep 2000
    
    root@ubuntu:/# jobs
    [1]-  Stopped                 sleep 1000    :后台是处于停止的状态
    [2]+  Stopped                 sleep 2000    :后台是处于停止的状态
    
    root@ubuntu:/# jobs 1        :显示第一个进程
    [1]-  Stopped                 sleep 1000
    root@ubuntu:/# jobs 2        :显示第二个进程
    [2]+  Stopped                 sleep 2000
    
    root@ubuntu:/# fg 1        :1是jobs号,放到前台运行,现在又开始运行了
    sleep 1000
    root@ubuntu:/# bg 1        :jobs1放到后台执行,sleep就到后台执行去了
    [1]+ sleep 1000 &
    root@ubuntu:/# bg 2
    [2]+ sleep 2000 &
    
    root@ubuntu:/# jobs
    [1]-  Running                 sleep 1000 &            :running状态,且是在后台运行
    [2]+  Running                 sleep 2000 &            :running状态,且是在后台运行
    
    所以执行程序的时候可以放到后台也可以放到前台执行,这就是作业控制命令jobs,一个程序是前台运行的,ctrl+Z是暂时性停止,通过jobs就可以看到程序的状态。

    yum安装

    bin和sbin是系统的命令。应用程序的命令不在这里,应用程序的命令在usr/bin,usr/sbin里面。如果使用系统自带的命令比如bash,cat,chmod,cp跟应用软件是没有直接关系的,是登陆到系统就可以直接调用的,不用在乎在不在bin和sbin目录下面,
    
    安装应用程序都会保存在usr/bin,usr/sbin目录下面,相当于是系统的额外的第三方应用软件,有的是可以直接运行的,有的是要跑到目录下面执行的。
    
    yum不属于系统核心的基础命令,所以yum是一个应用软件或者是应用工具,只是集成到了发行版中了。
    
    命令是基于命令行的方式带选项的方式运行,应用程序有的是基于命令行方式,有的是基于图形界面方式运行的。
    
    root@ubuntu:/usr/bin# ls
    yum  yum-builddep  yum-config-manager yumdownloader yum-groups-manager yuvsplittoppm  yuvtoppm
    linux中安装a软件会要你去安装b软件,安装b软件的时候要安装一些依赖库。并且还有版本问题。yum就是解决了依赖问题。
    yum update :升级操作系统
    yum search httpd :搜索相关的软件
    yum install httpd :安装软件
    yum update httpd :升级软件
    yum remove httpd :移除指定的软件
    yum list httpd :列出软件详细信息
    
    yum的关键之处是要有可靠的软件仓库,它可以是http或ftp站点,也可以是本地软件池。
    安装软件要找一个好点的软件源,软件要全安装要快,
    root@ubuntu:/etc/yum/repos.d# ll
    Centos-Base.repo    Centos-Media.repo  Centos-Debuginfo.repo  Centos-Vault.repo
    Centos-Base.repo里面有镜像站点,就是软件仓库的地址。
    
    yum/repos.d里面是软件仓库源,要更换yum软件仓库源的时候,先把原有的软件仓库源做一个备份,然后去国内镜像下载仓库文件并放到yum/repos.d里面去,先要他生成一下缓存,有了缓存后面下载安装更新软件都是比较快的,
    
    
    命令:系统命令,直接运行。应用程序命令,有的直接运行,有的要进入所在目录运行。
    应用程序运行方式:有的命令行运行,有的图形界面运行。
    应用程序:分为系统应用程序和第三方应用程序。

    应用程序

    应用程序的组成部分:普通执行程序文件在/usr/bin。与服务器相关的程序文件/usr/sbin(s是server的简称)。应用程序配置文件在/etc。应用程序文档文件/usr/share/doc。应用程序手册文件在usr/share/man。
    一个应用程序安装完成之后是有5大部分组成的。安装完成之后可以到usr/bin,usr/sbin找到我们的可执行文件,etc找配置文件。
    root@ubuntu:/usr/bin# ls -l | grep docker
    -rwxr-xr-x 1 root root    15651672 11月  2 13:45 docker
    -rwxr-xr-x 1 root root    43299504 11月  2 13:45 dockerd
    -rwxr-xr-x 1 root root      866264 11月  2 13:45 docker-init
    -rwxr-xr-x 1 root root     2362184 11月  2 13:45 docker-proxy
    
    root@ubuntu:/usr/sbin# ll | grep docker
    root@ubuntu:/usr/sbin# 
    
    root@ubuntu:/etc# ll | grep docker
    drwx------   2 root root    4096 2月   9 01:33 docker/
    root@ubuntu:/etc# cd docker/
    root@ubuntu:/etc/docker# ls
    key.json
    
    root@ubuntu:/usr/share/doc# ll -s | grep docker
     4 drwxr-xr-x    2 root root  4096 2月   4 02:02 docker.io/
    root@ubuntu:/usr/share/doc/docker.io# ls
    changelog.Debian.gz  copyright  README.Debian  README.md.gz  ROADMAP.md.gz
    
    root@ubuntu:/usr/share/man# ll -s | grep docker
    root@ubuntu:/usr/share/man# 

    RPM

    linux有许多的发行版,产生了许多的软件包管理工具,例如redhat/centos的yum,ubuntu/debian的apt-get,suse的yast等
    

    rpm是查询已经安装到操作系统的软件信息。rpm是大多数linux发行版支持的软件安装程序,rpm既是一个标准也是一个命令,yum里面也使用了rpm来安装,只是yum就不关心依赖了。使用rpm就需要手动处理依赖关系。yum基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装。

    Linux下软件的格式:软件名称.版本号.支持的平台(i386,x86_64,i586,i686。I是英特尔,386586,686都可以运行在32位操作系统,x86_64表示64位的安装软件),rpm是linux安装文件之一。

  • 相关阅读:
    Android Media Playback 中的MediaPlayer的用法及注意事项(二)
    Android Media Playback 中的MediaPlayer的用法及注意事项(一)
    34. Search for a Range
    33. Search in Rotated Sorted Array
    32. Longest Valid Parentheses
    31. Next Permutation下一个排列
    30. Substring with Concatenation of All Words找出串联所有词的子串
    29. Divide Two Integers
    28. Implement strStr()子串匹配
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/yaowen/p/8444537.html
Copyright © 2011-2022 走看看