zoukankan      html  css  js  c++  java
  • Linux总结

    Linux的历史和环境

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    Linux完全免费,完全兼容posix1.0,多用户与多任务,良好的界面与支持多种平台。使得Linux越来越的得到重视。
    Linux的发展史

     1991 年 林纳斯(Linus) 就读于赫尔辛基大学期间,对 Unix 产生浓厚兴趣,尝试着在Minix 上做一些开发工作

     因为 Minix 只是教学使用,因此功能并不强,林纳斯 经常要用他的终端 仿真器(Terminal Emulator) 去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了 Linux 第一个内核的雏形,当时,他年仅 21 岁!

    l林纳斯 利用 GNU 的 bash 当做开发环境,gcc 当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix

    l即 Unix 上跑的应用程序不能在 Linux 上跑,即应用程序与内核之间的接口不一致

    一开始 Linux 只适用于 386,后来经过全世界的网友的帮助,最终能够兼容多种硬件

    Linux6和Linux7的区别

    (1)桌面系统
    [CentOS6] GNOME 2.x
    [CentOS7] GNOME 3.x(GNOME Shell)

    (2)文件系统
    [CentOS6] ext4
    [CentOS7] xfs

    (3)内核版本
    [CentOS6] 2.6.x-x
    [CentOS7] 3.10.x-x

    (4)启动加载器
    [CentOS6] GRUB Legacy (+efibootmgr)
    [CentOS7] GRUB2

    (5)防火墙
    [CentOS6] iptables
    [CentOS7] firewalld

    (6)默认数据库
    [CentOS6] MySQL
    [CentOS7] MariaDB

    (7)文件结构
    [CentOS6] /bin, /sbin, /lib, and /lib64在/下
    [CentOS7] /bin, /sbin, /lib, and /lib64移到/usr下

    (8)主机名
    [CentOS6] /etc/sysconfig/network
    [CentOS7] /etc/hostname

    (9)时间同步
    [CentOS6]
    $ ntp
    $ ntpq -p

    [CentOS7]
    $ chrony
    $ chronyc sources

    (10)修改时间
    [CentOS6]
    $ vim /etc/sysconfig/clock
       ZONE="Asia/Tokyo"
       UTC=fales
    $ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

    [CentOS7]
    $ timedatectl set-timezone Asia/Tokyo
    $ timedatectl status

    (11)修改地区
    [CentOS6]
    $ vim /etc/sysconfig/i18n
       LANG="ja_JP.utf8"
    $ /etc/sysconfig/i18n
    $ locale

    [CentOS7]
    $ localectl set-locale LANG=ja_JP.utf8
    $ localectl status

    (12)服务相关
    1)启动停止
    [CentOS6]
    $ service service_name start
    $ service service_name stop
    $ service sshd restart/status/reload

    [CentOS7]
    $ systemctl start service_name
    $ systemctl stop service_name
    $ systemctl restart/status/reload sshd

    2)自启动
    [CentOS6]
    $ chkconfig service_name on/off

    [CentOS7]
    $ systemctl enable service_name
    $ systemctl disable service_name

    3)服务一览
    [CentOS6]
    $ chkconfig --list

    [CentOS7]
    $ systemctl list-unit-files
    $ systemctl --type service

    4)强制停止
    [CentOS6]
    $ kill -9 <PID>

    [CentOS7]
    $ systemctl kill --signal=9 sshd

    (13)网络

    1)网络信息
    [CentOS6]
    $ netstat
    $ netstat -I
    $ netstat -n

    [CentOS7]
    $ ip n
    $ ip -s l
    $ ss

    2)IP地址MAC地址
    [CentOS6]
    $ ifconfig -a

    [CentOS7]
    $ ip address show

    3)路由
    [CentOS6]
    $ route -n
    $ route -A inet6 -n

    [CentOS7]
    $ ip route show
    $ ip -6 route show

    (14)重启关闭

    1)关闭
    [CentOS6]
    $ shutdown -h now 

    [CentOS7]
    $ poweroff
    $ systemctl poweroff

    2)重启
    [CentOS6]
    $ reboot
    $ shutdown -r now

    [CentOS7]
    $ reboot
    $ systemctl reboot

    3)单用户模式
    [CentOS6]
    $ init S

    [CentOS7]
    $ systemctl rescue

    4)启动模式
    [CentOS6]
    [GUICUI]
    $ vim /etc/inittab
      id:3:initdefault:
    [CUIGUI]
    $ startx

    [CentOS7]
    [GUICUI]
    $ systemctl isolate multi-user.target
    [CUIGUI]
    $systemctl isolate graphical.target
    默认
    $ systemctl set-default graphical.target
    $ systemctl set-default multi-user.target
    当前
    $ systemctl get-default
    Linux命令

    文件和目录 

    cd /home 进入 '/ home' 目录' 
    cd .. 返回上一级目录 
    cd ../.. 返回上两级目录 
    cd 进入个人的主目录 
    cd ~user1 进入个人的主目录 
    cd - 返回上次所在的目录 
    pwd 显示工作路径 
    ls 查看目录中的文件 
    ls -F 查看目录中的文件 
    ls -l 显示文件和目录的详细资料 
    ls -a 显示隐藏文件 
    ls *[0-9]* 显示包含数字的文件名和目录名 
    tree 显示文件和目录由根目录开始的树形结构
    lstree 显示文件和目录由根目录开始的树形结构
    mkdir dir1 创建一个叫做 'dir1' 的目录' 
    mkdir dir1 dir2 同时创建两个目录 
    mkdir -p /tmp/dir1/dir2 创建一个目录树 
    rm -f file1 删除一个叫做 'file1' 的文件' 
    rmdir dir1 删除一个叫做 'dir1' 的目录' 
    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 
    rm -rf dir1 dir2 同时删除两个目录及它们的内容 
    mv dir1 new_dir 重命名/移动 一个目录 
    cp file1 file2 复制一个文件 
    cp dir/* . 复制一个目录下的所有文件到当前工作目录 
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
    cp -a dir1 dir2 复制一个目录 
    ln -s file1 lnk1 创建一个指向文件或目录的软链接 
    ln file1 lnk1 创建一个指向文件或目录的物理链接 
    touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)

    查看进程

    ps aux | less

    其中,

    -A:显示所有进程

    a:显示终端中包括其它用户的所有进程

    x:显示无控制终端的进程

    任务:查看系统中的每个进程。

    // 查看自动服务的进程

    ps -ef|grep 'queue:signremindpush'

    groupadd #添加组

    groupdel #删除用户组

    groupmod #修改用户组

    groups #显示当前用户所属的用户组

    grpck #检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)

    grpconv #通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow 
    ,如果/etc/gshadow 不存在则创建;

    grpunconv #通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group 
    ,然后删除gshadow文件 。

    1. 用户管理命令

    useradd #添加用户 
    adduser #添加用户

    passwd #为用户设置密码

    usermod #修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

    pwcov #同步用户从/etc/passwd 到/etc/shadow

    pwck #pwck是校验用户配置文件/etc/passwd 和/etc/shadow文件内容是否合法或完整

    pwunconv #执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。

    finger #查看用户信息工具(危险命令,一般不用)

    id #查看用户的UID、GID及所归属的用户组

    chfn #更改用户信息工具

    su #用户切换工具

    Linux面试题

    问题一:

    绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

    答案:
    绝对路径: 如/etc/init.d
    当前目录和上层目录: ./  ../
    主目录: ~/
    切换目录: cd

    问题二:

    怎么查看当前进程?怎么执行退出?怎么查看当前路径?
    答案:
    查看当前进程: ps
    执行退出: exit
    查看当前路径: pwd

    问题三:

    怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
    答案:
    清屏: clear
    退出当前命令: ctrl+c 彻底退出
    执行睡眠 : ctrl+z 挂起当前进程fg 恢复后台
    查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
    查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;

    问题四:

    Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
    答案:
    ls 执行的功能: 列出指定目录中的目录,以及文件
    哪些参数以及区别: a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限等

    问题五:

    建立软链接(快捷方式),以及硬链接的命令。
    答案:
    软链接: ln -s slink source
    硬链接: ln link source

    问题六:

    目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
    答案:
    创建目录: mkdir
    创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
    复制文件: cp 7. 文件权限修改用什么命令?格式是怎么样的?
    文件权限修改: chmod
    格式如下:

    chmodu+xfilefilechmodu+xfile给file的属主增加执行权限 chmod 751 file 给 file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
    chmodu=rwx,g=rx,o=xfilechmodu=rwx,g=rx,o=xfile上例的另一种形式 chmod =r file 为所有用户分配读权限
    chmod444filechmod444file同上例 chmod a-wx,a+r file同上例
    $ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限

    问题八:

    查看文件内容有哪些命令可以使用?
    答案:
    vi 文件名 #编辑方式查看,可修改
    cat 文件名 #显示全部文件内容
    more 文件名 #分页显示文件内容
    less 文件名 #与 more 相似,更好的是可以往前翻页
    tail 文件名 #仅查看尾部,还可以指定行数
    head 文件名 #仅查看头部,还可以指定行数

    问题九:

    随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”? 

    答案:

    写文件命令:vi

    向屏幕输出带空格的字符串:echo hello world

    问题十:

    终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
    答案:
    终端  /dev/tty

    黑洞文件  /dev/null

    问题十一:

    移动文件用哪个命令?改名用哪个命令?
    答案:
    mv mv

    问题十二:

    复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
    答案:
    cp cp -r  ????

    问题十三:

    删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
    答案:
    rm rm -r rmdir

    问题十四: 

    Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
    答案:
    “?”可替代单个字符。

    “*”可替代任意多个字符。

    方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]

    问题十五:

    用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
    答案:

    wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。

    问题十六:

    Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
    答案:
    是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
    grep [stringSTRING] filename grep [^string] filename

    问题十七:

    Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
    答案:
    (1)、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
    (2)、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
    “正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。

    (3)、就绪状态:在 run_queue 队列里的状态

    (4)、运行状态:在 run_queue 队列里的状态
    (5)、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
    (6)、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
    (7)、退出状态

    D 不可中断 Uninterruptible(usually IO)
    R 正在运行,或在队列中的进程
    S 处于休眠状态
    T 停止或被追踪
    Z 僵尸进程
    W 进入内存交换(从内核 2.6 开始无效)
    X 死掉的进程

    问题十八:

    怎么使一个命令在后台运行?
    答案:
    一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)

    问题十九:

    利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
    答案:
    ps -ef (system v 输出) 

    ps -aux bsd 格式输出

    ps -ef | grep pid

    问题二十:

    哪个命令专门用来查看后台任务? 

    答案:

    job -l

    问题二十一:

    把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
    答案:
    把后台任务调到前台执行 fg

    把停下的后台任务在后台执行起来 bg

    问题二十二:

    终止进程用什么命令? 带什么参数? 

    答案:

    kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>] 

    kill-9 pid

    问题二十三:

    怎么查看系统支持的所有信号?

    答案:

    kill -l

    问题二十四:

    搜索文件用什么命令? 格式是怎么样的? 

    答案:

    find <指定目录> <指定条件> <指定动作>

    whereis 加参数与文件名

    locate 只加文件名

    find 直接搜索磁盘,较慢。

    find / -name "string*"

    问题二十五:

    查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
    答案:
    查找自己所在的终端信息:who am i

    查看当前谁在使用该主机:who

  • 相关阅读:
    filter 静态资源
    getRequestURI,getRequestURL的区别
    基于NodeJs的网页爬虫的构建(二)
    基于NodeJs的网页爬虫的构建(一)
    Reverse Words in a String
    Sum Root to Leaf Numbers
    Search Insert Position
    Wildcard Matching
    Trapping Rain Water
    Gray Code
  • 原文地址:https://www.cnblogs.com/lu0420-0412/p/12320701.html
Copyright © 2011-2022 走看看