zoukankan      html  css  js  c++  java
  • Linux常见知识点

    个人使用建议采用Ubuntu,云服务器则采用CentOS

    安装软件放在了根目录下的software下面

    阿里云服务器(Ubuntu16.04 64位)远程连接

    命令相关

    对 Linux 新手非常有用的 20 个命令

    ls -la 目录

    lsblk -l 列出块设备(了解新插入的USB设备的名字,特别是当你在终端上处理磁盘/块设备时)

    uname -a

    history   注意:按住“CTRL + R”就可以搜索已经执行过的命令,它可以在你写命令时自动补全。

    查看Ubuntu系统位数和版本号

    uname –a

    "uname"命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。

     

    有出现64的信息,则是64位

    lsb_release –a    查看版本信息

    显示发行版本信息。

    LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。

     

    用户相关

    root权限最大,你的任何误操作就可能使数据找不回来,而普通用户对系统的操作是有限的,如果你是自己学习,用root帐号也可以,如果生产环境还是普通用户吧。多人学习使用的话还是建议用普通账户。。

    Root的用户权限很高,有时候不想让别人时候Root用户访问文件或者使用Root进行操作很可能会发生事故,Linux最重要的就是安全及权限。在这里要教大家如何给你的Linux系统新建用户并个用户增加密码。

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的密码。用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的主目录。

    Ubuntu基础命令(六)--添加和删除用户和用户组

    目录相关

    1、linux中~和/的区别

    ~ 是当前用户的目录地址

    /   是根目录的地址(一般称呼为root,/ 和 /root/ 是有区别的)

    /   也指目录分隔符

    ”/“是根目录,”~“是家目录。Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录。而每个用户都有”家“目录,也就是用户的个人目录。

    比如root用户的”家“目录就是/root,普通用户a的家目录就是/home/a,普通用户b的家目录就是/home/b

    注:每个用户下都有以下这些目录,但是需要此用户在物理机上登录过。。

    1、当用户是root用户时

    ~  代表/root/,即根目录下的root目录

    /    代表/ ,即根目录

    2、当用户是jack用户时

    ~  代表/home/jack,即根目录下的home目录下的jack目录

    /    代表/ ,即根目录

    2、Ubuntu根目录下各文件夹的功能详细介绍

    安装软件/模块

    安装:Sudo apt-get install xx

    卸载:sudo apt-get --purge remove 包名 (--purge是可选项,写上这个属性是将软件及其配置文件一并删除,如不需要删除配置文件,可执行sudo apt-get remove 包名

    eg:安装 Nginx

    sudo apt-get install nginx

    http://localhost/ 就可以看到了

    1.查看安装的所有软件

    dpkg -l      

    查看具体某个软件,例如:dpkg -l  grep ftp

    【注:dpkg 是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”,例如 “Ubuntu”、“Knoppix ”等。】

    2.查看软件安装的路径

    dpkg -L | grep ftp

    也可以用 whereis ftp

    3.查看软件版本

    aptitude show

    例如:aptitude  show ftp

    查看linux下是否有安装某个包

    1. 区分 rpm -qi -qf  -ql  -qa四个不同选项组合的作用?

    rpm -qi 包名 查看一个包的详细信息

    rpm -qf 文件名 查看一个文件是由哪个包安装的

    rpm -ql 包名 查看一个包安装了哪些文件

    rpm -qa 查看系统中安装了哪些包

    2. rpm -qi 后面如果跟一个未安装的包名,会显示什么信息?

    答:包名 is not installed

    Vim的使用

    1、跳到指定行

    在vim中有3中方法可以跳转到指定行(首先按esc进入命令行模式):

    1、ngg/nG (跳转到文件第n行,无需回车)

    2、:n (跳转到文件第n行,需要回车)

    3、vim +n filename (在打开文件后,跳转到文件的第n行)

    2、编辑文件,并保存,退出等

    打开文件:Vi nginx.conf

    保存,但不退出vi                          :w  

    保存并退出vi                                 :wq  

    退出vi,但不保存更改                   :q!  

    用其他文件名保存                         :w filename  

    在现有文件中保存并覆盖该文件    :w! filename

    服务

    service与systemctl

    Linux 服务管理有两种方式:service和systemctl

    1.service命令

    service命令其实是去/etc/init.d目录下,去执行相关程序

    # service命令启动redis脚本
    service redis start

    2.systemctl命令

    systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。

    systemd对应的进程管理命令是systemctl

    1)systemctl命令兼容了service,即systemctl也会去/etc/init.d目录下,查看,执行相关程序

    2)systemctl命令管理systemd的资源Unit

    systemd的Unit放在目录/usr/lib/systemd/system(Centos)或/etc/systemd/system(Ubuntu)

    主要是.service文件。.service文件定义了一个服务,分为[Unit],[Service],[Install]三个小节

    [Unit]
    Description:描述,
    After:在network.target,auditd.service启动后才启动
    ConditionPathExists: 执行条件
    
    [Service]
    EnvironmentFile:变量所在文件
    ExecStart: 执行启动脚本
    Restart: fail时重启
    
    [Install]
    Alias:服务别名
    WangtedBy: 多用户模式下需要的

    参考:详解Linux 服务管理两种方式service和systemctl

    systemctl的使用

    1、格式:systemctl   [command]   [服务]

    相关的command

    • start:立即启动后面的服务
    • stop:立即关闭后面的服务
    • restart:立即重新启动后面的服务
    • reload:不关闭后面的服务情况下,重新加载服务的配置文件,让设置生效
    • enable:设置开机时,后面的服务自动启动
    • disable:设置开机时,后面的服务不自动启动
    • status:查看后面服务的状态(有没有执行、开机是否默认启动、登录信息等)
    • is-active:目前这个服务有没有正在运行中
    • is-enable:开机时有没有默认要启动这个服务
    • mask:强制注销后面的服务
    • unmask:将强制注销的任服务改回为原来的状态

    ————————————————
    eg:启动一个asp.net core服务  systemctl start myFirstapp.service

    参考:Linux(入门基础):103---systemctl命令管理单一服务(启动/关闭/状态)

    2、查看指定的服务

    格式:systemctl   [command]  [--type-TYPE]  [--all]

    查看myFirstapp.service服务,则是

    systemctl list-units --type=service --all | grep myFirstapp

    参考:Linux(入门基础):104---systemctl命令查看系统服务

    查看所有服务:systemctl list-unit-files

    Shell脚本

    1、linux下使用shell脚本切换到root用户并执行脚本

    需要安装expect

    yum install expect -y

    #!/usr/bin/expect
    spawn su root
    expect "Password:"
    send "这里写root用户的密码
    "
    send "cd /home/wwwroot/script/
    "
    send "./cache-face.sh
    "
     
    expect eof
    exit 

    界面

    在Ubuntu 18.04终端使用w3m浏览器,命令行模式浏览网页

    学习书籍

    《linux就该这么学》

    常见问题

    1、E: Unable to locate package xxx

    Unable to locate packet就是无法找到包,因为在执行sudo apt-get install之前更换了软件源,但是却忘了update下了,于是执行下面的命令:

    sudo apt-get update

    等上面命令执行完后,再执行sudo apt-get install就可以了!

    2、Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another proce...

    进程被锁住了。
    第一种方法,我们只需要杀死之前的进程,释放系统锁就可以了:

    ps -e|grep apt-get
    显示

    6965 ? 00:00:01 apt-get
    然后执行

    sudo kill 6965
    第二种方法,强制解锁

    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    但是试了几次却不管用,可行性未知
    ===========================================
    重启 系统
    sudo systemctl --force reboot
    这个会重新启动系统,所以使用前先保存一下需要保存的文件,这个方法是可行的。

    3、出现Swap file….already exists以下错误如何解决?

    E325: ATTENTION

    Found a swap file by the name".a.sh.swp"Swap file ".a.sh.swp" already exists!

    [O]pen Read-Only, (E)dit anyway,(R)ecover, (D)elete it, (Q)uit, (A)bort:

    解决方法:只需命令行将其删除即可,命令:rm -rf .a.sh.swp

    4、bash: ./build: /usr/bin/sh^M: 坏的解释器: 没有那个文件或目录

    有时候编写脚本时会出现类似标题列出的错误,这个问题大多数是因为脚本文件在windows下编辑过。

    在windows下,每一行的结尾是 ,而在linux下文件的结尾是 ,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符 ,用cat -A urfile时你可以看到这个 字符被显示为^M,这时候只需要删除这个字符就可以了。

    可以使用命令sed -i 's/ $//'  filename

    也可以安装一个工具:dos2unix

    说明:将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为 ,而Unix&Linux文件的换行符为 . dos2unix命令其实就是将文件中的 转换为 。

    yum install -y dos2unix

    执行转换:dos2unix filename

     

  • 相关阅读:
    EL表达式与JSTL
    jsp
    Servlet 会话
    Servlet 常用类
    Servlet
    Java 网络编程
    CentOS系统下安装python3+Django
    转载Alpine Linux常用命令
    转载Alpine基础
    CentOS启动docker1.13失败(Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.)
  • 原文地址:https://www.cnblogs.com/peterYong/p/11030224.html
Copyright © 2011-2022 走看看