linux基础

Posted huangsefeizhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础相关的知识,希望对你有一定的参考价值。

linux基础(二)

  1. 查看系统信息
  • 查看发行版:cat /etc/centos-release 或者 lsb_release -a
~]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
  • 修改版本号:nano(nano为字符界面编辑文本文件)
~]# nano /etc/centos-release
CentOS Linux release 888 (Core) 
ctro+o保存,ctro+x退出
~]# cat /etc/centos-release#为了生产安全,可以修改版本号
CentOS Linux release 888 (Core)
  • 查看内核版本 uname -r
~]# uname -r
3.10.0-957.el7.x86_64
  • 查看cpu 信息
~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             8
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 158
Model name:            Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Stepping:              10
CPU MHz:               2207.999
CPU max MHz:           0.0000
CPU min MHz:           0.0000
BogoMIPS:              4415.99
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              9216K
NUMA node0 CPU(s):     0-7
~]# cat /proc/cpuinfo   #<=该命令可以查看系统CPU有多少个核,频率,特性等等
  • 查看内存:
~]# cat /proc/meminfo
~]# free 
~]# top |grep %free
~]# ps aux –sort -rss 
~]# vmstat -s 
  • 查看分区
~]# lsblk # -f可以列出分区类型
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0  512M  0 part /boot
├─sda2   8:2    0    1G  0 part 
└─sda3   8:3    0 48.5G  0 part /
~]# df
~]# fdisk -l #列出分区表

查看网卡信息:

~]# dmesg |grep eth
  1. 设置用户自动登陆模式(安装了图形界面)。
  • 用nano(nano为字符界面编辑文本文件)打开文件路径nano /etc/gdm/custom.conf进入修改界面,增加下面一段话保存即可
AutomaticLoginEnable=true  
AutomaticLogin=root  
  1. 查看系统ID账号.
  • 0为root账号,在centos6.10中普通账号为500以后,centos7.5中普通账号 为1000以后。例如id – u为查看当前用户系统账号,id -u lv 为查看lv账号的ID号。

  • centos 6.10:

~] # id -u tao
501
~]# id -u root
0
  • centos 7.5:
~]# id -u tao
1001
~]# id -u root
0
  1. 按ctrl+alt+f2-f6可依次打开五个终端,按tty可以看到在那个终端登录的。还可用 who查看所有登陆终端的信息。显示pts的为远程登陆的伪终端,tty为本机登陆(vmware控制台)。whoami为 显示当前登陆的用户,who am i 为显示详细的登陆用户及在那个终端。w 显示更详细的登陆信息。也可以用chvt1-6来切换终端。

    ~]# who
    root     tty1         2019-08-16 16:33
    root     pts/0        2019-08-16 16:51 (192.168.100.1) #xshell连接上的
    ~]# w
     17:56:43 up  1:23,  2 users,  load average: 0.00, 0.01, 0.01
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1                      16:33   32:51   0.38s  0.38s -bash
    root     pts/0    192.168.100.1    16:51    3.00s  0.10s  0.00s w
    ~]# whoami
    root
    ~]# lastb
    btmp begins Fri Aug 16 17:42:01 2019
  2. init3为切换到字符界面,init5为切换界面。startx 也可切换到图形界面,但 不是模式切换,只是打开了一个程序而已。

  3. 查看运行的那种shell 用echo $SHELL. 查看系统支持哪几种shell,cat /etc/shells.

CentOS7.5:

[root@centos7 ~]# echo $SHELL
/bin/bash
[root@centos7 ~]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

CentOS6.10:

~]# echo $SHELL
/bin/bash
~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
  1. 命令提示符的更改。(#为管理员登陆,$为普通用户登陆。) 显示提示符格式,echo $PS1 修改提示符格式,PS1="[\\e[1;34m][\\u@\\h \\W]\\$ [\\e[0m]"
~]# echo $PS1
\\[\\e[1;34m\\][\\u@\\h \\W]\\$ \\[\\e[0m\\]
~]# cat /etc/profile.d/zhu.sh
PS1="\\[\\e[1;34m\\][\\u@\\h \\W]\\\\$ \\[\\e[0m\\]"
  • 要想永久保存必须存入文件,nano /etc/profile.d/zhu.sh 进入文件后将PS1里的参数修改保存即可。
\\e \\033 
\\u当前用户  
\\h主机名简称
\\H 主机名 
\\w 当前工作目录  
\\W 当前工作目录基名 
\\t 24小时时间格式 
\\T 12小时时间格式  
\\! 命令历史数 
\\# 开机后命令历史数
  1. 输入命令后回车:提交shell程序找到键入命令所对应的可执行程序或代码并由其分析后提交给内核分配资源将其运行起来
  • 命令的类型:

    • 内部命令:由shell自带的,而且通过某命令形式提供,使用help可以查看内部命令列表

      help 内部命令列表
      enable cmd 启用内部命令
      enable –n cmd 禁用内部命令
      enable –n 查看所有禁用的内部命令
    • 外部命令 :在文件系统路径下有对应的可执行程序文件

      查看路径:which -a |--skip-alias ; whereis
  • 用type+cmd 来查看是外部命令还是内部命令

    ~]# type cd
    cd is a shell builtin
    ~]# type ls
    ls is aliased to `ls --color=auto'
    ~]# type who
    who is /usr/bin/who
  • 或用which命令 -a可以选择查看全部路 此图查看了who命令为外部命令,enable为shell内部集成的命令。

~]# type enable 
enable is a shell builtin
~]# enable |wc -l
61
~]# enable -n echo #enable命令用于启用和关闭shell内建echo指令,关闭内建命令echo
~]# enable |wc -l
60
~]# enable -a|wc -l
61
~]# type echo 
echo is /usr/bin/echo
~]# enable echo # 启用内部命令echo
~]# type echo 
echo is a shell builtin

技术图片

  • 使用help 命令可以看到 echo前面加了个*
~]# help|grep echo
*echo [-neE] [arg ...]                time [-p] pipeline
  • 可以统计内建命令的行数
~]# enable -a |wc -l 
  • 外部命令用cmd --help 此命令可以获取大部分的外部命令帮助信息
~]# who --help 
  • 内部命令可以用help cmd
~]# help enable
  • 注意:外部命令的执行会按照 PASH 变量中的列表次序执行,如果没有则报错,但是 执行过一次的外部命令将会被放入hash中缓存,即使第二次路径更改,任然会按照缓存中的路径执行。
  1. hash缓存
  • 系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利用hash缓存表可大大提高命令的调用速率

  • hash常见用法:
    • hash 显示 hash缓存
    • hash –l 显示hash缓存,可作为输入使用
    • hash –p path name 将命令全路径path起别名为name
    • hash –t name 打印缓存中name的路径

    • hash –d name 清除name缓存
    • hash –r 清除所有缓存

~]# hash -p /usr/bin/nano nane
~]# nane 
~]# hash -l
builtin hash -p /usr/bin/nano nane
builtin hash -p /usr/bin/nano nane
~] # hash -p /usr/bin/nano nane
~] # hash ^C
~] # hash -t nane
/usr/bin/nano
~] # hash -l
builtin hash -p /usr/bin/nano nane
builtin hash -p /usr/bin/nano nane
~] # hash -d nane
~] # hash -r
~] # hash 
hash: hash table empty
  1. 命令别名
  • alias命令 :显示当前shell进程所有可用的命令别名

  • 定义别名NAME,其相当于执行命令VALUE
    alias NAME=‘VALUE‘

  • 在命令行中定义的别名,仅对当前shell进程有效

  • 如果想永久有效,要定义在配置文件中

    • 仅对当前用户:~/.bashrc
    • 对所有用户有效:/etc/bashrc

    定义别名; alias cdnet=‘cd/etc/sysconfig/network-scripts/‘

技术图片

  • 编辑配置给出的新配置不会立即生效,必须保存到文件中使用 nano .bashrc 保存后用.或source加文件生效 . .bashrc/source .bashrcexec bash

  • 撤消别名:unalias

    • unalias [-a] name [name ...]

    • -a 取消所有别名

~]# cat .bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
alias cdnet=cd /etc/sysconfig/network-scripts
~]# . .bashrc
  • 如果要用原始命令不用别名命令可以找路径输入,加‘‘,加,加""都可以 例如;\\ls, ‘ls’ , "ls" , /bin/ls ,command ls都可以 which –alias-skip ls跳过别名只显示路径 取消别名 ualias+name
  • 命令执行的优先级 别名>内部命令>外部命令

  • 当使用一个命令的时候会按照PATH后面的路径一个一个找,第一次找到后开始使用,使用后放入缓存里hash,当第二次使用的时候就不找了而是直接去缓存里面找

  • 命令的执行(优先级)过程:

  • 1.判断命令是否有别名,有:则执行别名对应的命令。

  • 2.判断是否是内部命令

  • 3.判断是否是外部命令
    • 已执行过,根据此前执行的时候查找到的PATH,被hash缓存过的路径去执行;
    • 未执行过,根据echo $PATH的列表次序去搜索执行,如果没搜索到就报错;
  1. 命令格式:
  • COMMAND [OPTIONS...][ARGUMENTS...]
  • 选项:用于启用或关闭命令的某个或某些功能

    • 短选项:-c 例如:-l, -h

    • 长选项:--word 例如:--all, --human-readable
  • 参数:命令的作用对象,比如文件名,用户名等
  • 注意:
    • 多个选项以及多参数和命令之间使用空白字符分隔
    • 取消和结束命令执行:Ctrl+c,Ctrl+d
    • 多个命令可以用;符号分开
    • 一个命令可以用\\分成多行
  1. 时间和时钟
  • Linux的两种时钟

    • 系统时钟:由Linux内核通过CPU的工作频率进行的

    • 硬件时钟:主板

  • 相关命令

    • date 显示和设置系统时间

      • date +%s

      • date -d @1509536033

    • hwclock,clock: 显示硬件时钟

      • -s, 以硬件时钟为准,校正系统时钟

      • -w, 以系统时钟为准,校正硬件时钟

      • 用网络时间来校准系统时间 ;ntpdate 17220.0.1 (临时生效)

      • 要想开机校准需要写入配置文件

      • centos6:

       vim /etc/ntp.conf     
       增加  server 172.20.0.1  iburst
       service ntpd start   (立即启用服务生效)
       chkconfig ntpd on  (每次开机都启用生效) 
       tzselect 选择时区(centos6)
      • centos7:

        vim /etc/chrony.conf  增加  
        server 172.20.0.1 iburst 
        systemctl start chronyd  (立即启用服务生效) 
        systemctl enable chronyd  (每次开机都启用生效) 
        时区:/etc/localtime   -> ../usr/share/zoneinfo/Asia/Shanghai         timedatectl 设置时区(centos7)
        sosreport收集系统配置及架构信息并输出诊断文档
  • 显示日历:cal –y

  • 设置系统时间(只有在root下才可更改)

  • date 031212122018.30(2018 03 月12 日12:12:30)

~]# date  031212122018.30
Mon Mar 12 12:12:30 CST 2018
  • date -s "mmddHHMMYYSS"
  • date -s "str" (str可以自己输入格式也可在引号后面跟上指定的格式)
  • date -s "-1 day"+%F 设置时间

  • date -d "str" (str可以自己输入格式也可在引号后面跟上指定的格式) 显示时间
  • date -d "-2 day" +%F 显示前两天的时间
  • date -d "5 day" +%F 显示后五天的时间

技术图片

显示详细的的时间 date +"%Y-%m-%d %H:%M:%S" date +"%F %T" 两种都可以。

技术图片

10 .linux开关机命令

  • poweroff关机

  • halt 关机

  • init 0 关机

  • init 6重启

  • reboot 重启

    • -f: 强制,不调用shutdown
    • -p: 切断电源
  • 关机或重启shutdown

    shutdown [OPTION]... [TIME][MESSAGE]

    • -r:reboot
    • -h: halt
    • -c :cancel
    • TIME :无指定,默认相当于+1

      • now: 立刻,相当于+0

      • +m: 相对时间表示法,几分钟之后;例如+3

      • hh:mm: 绝对时间表示,指明具体时间
    • shutdown -c 取消关机
    • shutdown +5 “hbdj” 五分钟后关机并有提示消息
    • shutdown -h 12:30 定时关机命令

以上是关于linux基础的主要内容,如果未能解决你的问题,请参考以下文章

编程基础 linux基础入门--linux为何物?

linux具体要学点啥,基础要学啥?

linux入门基础——linux用户基础

Linux基础篇--linux基础和帮助用法

Linux基础(03)常用基础指令和操作

Linux操作基础