zoukankan      html  css  js  c++  java
  • 【Linux】相关概念以及常用命令

    用于记录Linux的相关概念以及常用命令,以便日后查询,以Ubuntu为例。

    概念之间无先后顺序,只是用于记录。

    1. 163软件源

    笔者一般使用Ubuntu自带的软件源,自做镜像,若遇到要更换国内源的情况,可以参考

    deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

    2. 琐碎知识点

    安装Ubuntu时创建的用户是在sudo组下的,所以,具有sudo权限

    例如,安装时,我的用户名是xw,则xw用户的primary group是xw,次要组有很多,其中包含sudo
    用useradd或adduser创建的用户若不指定组gid,是不包含在sudo组下的,所以,需要在visudo中添加该用户的sudo权限,更一般的做法则是在/etc/sudoers.d目录下添加文件

    visudo中用户权限说明

    xw ALL=(ALL:ALL)ALL
    xw : 用户名
    第一个ALL : 是从任何主机登录
    第二个ALL : 是以任何用户的身份
    第三个ALL : 是以任何用户组的身份
    第四个ALL : 是可以执行任何指令
    综述: xw用户可以从任何主机登录,用任何用户或用户组的身份执行任何指令

    server中开启多个shell:ctrl + alt + F5

    apt-get update  : 从软件源(sourses.list)对应的软件仓库中将包列表get下来

    apt-get upgrade : 升级软件,将对应的包名称到软件仓库中寻找,找到仓库中对应的包,将其下载下来进行安装

      可将所需的包均从仓库中下载下来,做成镜像文件,即自己的软件仓库,挂在到mnt下,再将sources.list中的目录名称改成挂载的目录,就可以获取相应的包并进行安装

    sources.list 的修改: 将http网址改成 deb file:/mnt/cdrom(自定义) ./

    ctrl + alt + F6         // 切换到文本模式

    ctrl + alt + F7         // 切换到界面模式

    设置静态ip[VM中的虚拟机为例]

    修改 /etc/network/interfaces

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).
    # The loopback network interface
    auto lo
    iface lo inet loopback
    # The primary network interface
    # auto eth0
    # iface eth0 inet dhcp
    auto eht0
    iface eth0 inet static          // 设置静态ip
    address 192.168.157.134         // 设置ip地址,到DHCP设置里查看IP地址段
    netmask 255.255.255.0           // 设置子网掩码
    gateway 192.168.157.2           // 设置网关,到NAT设置中查看
    dns-nameservers 192.168.157.2   // 设置dns

    使静态IP生效

    $> sudo ifdown eth0
    $> sudo ifup eth0

    设置文本启动

    修改 /etc/default/grub

    # GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    GRUB_CMDLINE_LINUX_DEFAULT="text"
    # Uncomment to disable graphical terminal (grub-pc only)
    GRUB_TERMINAL=console                                       // 打开注释

    使文本启动生效

    update-grub

    切换到图形界面

    sudo /etc/init.d/ligthdm start

    切换到文本界面

    ctrl + alt + f1

    可能的问题

    可能切换到图形界面后,需要多次输入密码,也无法进入桌面系统

    解决的办法

    查看 /var/log/upstart/lightdm.log
    发现 ~/.Xauthority 权限不够,无法写入
    修改 ~/.Xauthority 的权限为646

    3. 常用简单命令

    xargs       -> 将输入的多行转换为一行字符串
    ``(反引号) -> 将字符串以命令的方式解析[$() 也有次功能]
        echo hostname   : 打印出 hostname 字符串
        echo `hostname` : 打印出主机名称
    ${}         -> 输出环境变量
    tar         -> 归档/解归档(不是压缩,压缩是gzip,gunzipln          -> 链接,默认是硬链接
                    硬链接实际上是创建了一个文件,并实时镜像,删除一个,另一个不会删除,目录不允许创建硬链接
                    软链接相当于快捷方式,ln -s target linkname
    cd -P       -> 进入物理地址,对于符号链接而言
    pwd -P      -> 进入物理地址,对于符号链接而言
    jobs        -> 查看后台执行作业
    xxx &       -> 将程序放到后台执行
    bg          -> background 后台
    fg          -> 前台
    kill %n     -> 杀死某个作业
    ps          -> 进程快照,相当于任务管理器
    which       -> 从环境变量中寻找

    4. 常用行命令

    :w !sudo tee % > /dev/null              -> vim忘加权限时用该命令保存,/dev/null为黑洞
    ls *.txt | cp `xargs` ~/myfolder/       -> 将当前目录下的txt文件拷贝到 ~/myfolder 下
    basename /bin/ping                      -> 提取文件名,等同于 basename `which ping`
    dirname /bin/ping                       -> 提取目录名
    export mypath=${mypath:-$mypath1}       -> 设置环境变量,若mypath存在,则为mypath,否则为mypath1,相当于三元运算符
    nc -l 1234 &                            -> 启动服务器,监听1234端口,后台执行

    5. 脚本相关

    if[ xxx ] ; then                        -> 中括号两边空格
    -lt                                     -> 小于 <
    -gt                                     -> 大于 >
    -eq / =                                 -> 等于 =
    $0                                      -> 提取执行命令
    $1                                      -> 提取第一个参数
    $?                                      -> 保存上次命令执行结果,0表示成功,1表示失败
    $#                                      -> 现在参数的个数,若shift改变参数个数,则该值会发生变化
    $@                                      -> 输出所有参数
    -e                                      -> exists 判断文件(夹)是否存在
    -d                                      -> 判断目录是否存在
    a&&b                                    -> a 命令执行成功后执行b命令
    a||b                                    -> a 命令执行失败后执行b命令
    a;b                                     -> 多个命令执行,无逻辑
    (a;b)                                   -> 组合命令,只在当前目录执行,不切换目录

    注: 定义变量,若赋值,等号左右不能有空格

  • 相关阅读:
    Java Output流写入包装问题
    SpringBoot项目单元测试不经过过滤器问题
    SpringSecurity集成启动报 In the composition of all global method configuration, no annotation support was actually activated 异常
    JWT jti和kid属性的说明
    Maven 排除依赖
    第五章 基因概念的发现
    第三章 孟德尔遗传的拓展
    第二章 孟德尔遗传
    第一章 引言
    GWAS全基因组关联分析
  • 原文地址:https://www.cnblogs.com/sqdmydxf/p/7772312.html
Copyright © 2011-2022 走看看