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安装文件之一。

  • 相关阅读:
    一个完整的Erlang应用
    Erlang的Web库和框架
    erlang lists
    【erlang 网络编程学习】 分析cowboy acceptor实现
    Mochiweb的设计分析
    Misultin, Mochiweb, Cowboy, NodeJS 及 Tornadoweb测评
    用Mochiweb打造百万级Comet应用,第一部分
    欢迎阅读 Erlang OTP 设计原理文档
    erlang app 文件
    转:DataGridView列的宽度、行的高度自动调整
  • 原文地址:https://www.cnblogs.com/yaowen/p/8444537.html
Copyright © 2011-2022 走看看