Linux的基础命令

一、Linux终端

1、登陆linux终端

  • GHOME Terminal
  • KDE桌面的konslole Terminal

例一:如何打开多个终端?

  • shift + ctrl +n 快速打开一个终端
  • shift+ctrl+“+” 终端字体的缩小
  • ctrl+“-”:终端字体缩小
tty命令:查看一下linux的终端
[root@Master-30 ~]# tty
/dev/pts/0

例二:不同终端之间的通信

[root@Master-30 ~]# w
 22:16:11 up  1:04,  3 users,  load average: 0.02, 0.09, 0.08
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       :0               21:14   ?xdm?  51.45s  0.87s /usr/libexec/gn
root     pts/0    192.168.75.1     22:09    3.00s  0.05s  0.00s w
zhangsan pts/1    192.168.75.1     22:16    7.00s  0.02s  0.02s -bash
[root@Master-30 ~]# echo hello > /dev/pts/1

#另外一端查看
[zhangsan@Master-30 ~]$ hello

#10分钟后关机,并且通知其他在线用户
其他终端都能收到关机消息
[root@Master-30 ~]# shutdown -h +10 "shutdown after 10min"
[zhangsan@Master-30 ~]$ 
Broadcast message from root@Master-30 (Sat 2021-01-09 22:17:46 CST):

shutdown after 10min
The system is going down for power-off at Sat 2021-01-09 22:27:46 CST!

#取消关机操作
[root@Master-30 ~]# shutdown -c

Broadcast message from root@Master-30 (Sat 2021-01-09 22:18:12 CST):

The system shutdown has been cancelled at Sat 2021-01-09 22:19:12 CST!

例三:广播给其他用户

[root@Master-30 ~]# wall "shutdown will begin"
[root@Master-30 ~]# 
Broadcast message from root@Master-30 (pts/0) (Sat Jan  9 22:19:31 2021):

shutdown will begin

2、认识shell

Shell俗称壳,它提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行
Shell实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。
Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

问题1:什么是内部命令与外部命令?

  • 内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高
  • 外部命令:是系统软件的功能,用户需要时才从硬盘中读入内存

问题2:如何区别内外部命令?

[root@Master-30 ~]# type cd
cd 是 shell 内嵌
[root@Master-30 ~]# type cat
cat 是 /usr/bin/cat

问题3:通过shell,我们可以对linux实现哪些操作和管理?

对文件的管理(创建、删除、复制、修改)
  • 1、对用户的管理(添加、删除)
  • 2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
  • 3、对磁盘的管理(分区、raid、lvm)
  • 4、对软件的管理
  • 5、对网络的管理

问题4:shell提示符“#”与“$”的区别

[root@Master-30 ~]#
[root@Master-30 ~]# su - zhangsan
上一次登录:六 1月  9 22:16:04 CST 2021从 192.168.75.1pts/1 上
[zhangsan@Master-30 ~]$ 

#:表示root用户
$:表示普通用户

问题5:命令行提示符的结构?

[root@Master-30 ~]#
用户名--@主机名---当前所在的目录(~表示及用户)

问题6:系统中有哪些shell?

[root@Master-30 ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

#当前用户使用的是什么shell?可以在/etc/passwd文件中查看最后一个字段
[root@Master-30 ~]# cat /etc/passwd | grep "^root"
root:x:0:0:root:/root:/bin/bash

二、基本命令

在LINUX中使用一个命令,命令格式如下:
  • 命令 【选项】 【参数】
  • 命令:具体执行的命令,比如pwd,head
  • 选项:会影响到命令的一些形为操作,通常以- --实现
  • 参数:命令作用的对象

ls命令:

作用:列出目录下的文件
语法:
  • ls 【选项】 文件
选项:
  • -l:长格式显示
  • -a:列出所有的文件,包括隐藏文件、
  • -d:直接查看目录本身的信息
  • -S:文件按照大小排序
[root@Master-30 ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1896 1月   4 17:17 anaconda-ks.cfg

-:文件类型:
    d:目录
    -:文件
    l:连接文件
    b:块设备文件
    c:字符设备文件
    p:管道文件
    s:套接字文件
rw- :所有者权限
---:所属组权限
---:其他人权限
1:连接个数
root:所有者
root:所属组
1896 :文件大小
1月   4 17:17:文件上次修改的日期时间
anaconda-ks.cfg:文件名

#-a参数
[root@Master-30 ~]# ls -a
.                .bash_profile  .dbus                 .tcshrc   图片
..               .bashrc        .esd_auth             .viminfo  文档
anaconda-ks.cfg  .cache         .ICEauthority         公共      下载
.bash_history    .config        initial-setup-ks.cfg  模板      音乐
.bash_logout     .cshrc         .local                视频      桌面
以“.”开头的文件就是隐藏文件
..:代表上级目录

#-d选线
[root@Master-30 ~]# ll -d /root/
dr-xr-x---. 14 root root 4096 1月   9 21:14 /root/

#-S选项
[root@Master-30 ~]# ll -S 
总用量 8
-rw-r--r--. 1 root root 1944 1月   4 19:58 initial-setup-ks.cfg
-rw-------. 1 root root 1896 1月   4 17:17 anaconda-ks.cfg

命令别名

ll 命令和ls -l 是相等的
[root@Master-30 ~]# ll anaconda-ks.cfg 
-rw-------. 1 root root 1896 1月   4 17:17 anaconda-ks.cfg
[root@Master-30 ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1896 1月   4 17:17 anaconda-ks.cfg

别名:

#定义别名
[root@Master-30 ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
................

#设置别名
[root@Master-30 ~]# alias vimens32="vim /etc/sysconfig/network-scripts/ifcfg-ens32"
[root@Master-30 ~]# vimens32 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
............

#取消别名
[root@Master-30 ~]# unalias vimens32 

#让别名永久生效
==>当前用户:
[root@Master-30 ~]# vim /root/.bashrc
添加一行-->保存退出
alias vimens32="vim /etc/sysconfig/network-scripts/ifcfg-ens32"

[root@Master-30 ~]# source /root/.bashrc 


==>所有用户都生效
[root@Master-30 ~]# vim /etc/profile
在末行添加一行-->保存退出
alias vimens32="vim /etc/sysconfig/network-scripts/ifcfg-ens32"

cd命令

作用:切换目录
常见用法:
#回到用户的家用户
[root@Master-30 ~]# cd ~
[root@Master-30 ~]# cd

#回到用户的上级目录
[root@Master-30 ~]# cd ..

#回到上次所在的目录
[root@Master-30 /]# cd -
/root

历史命令调用

调用历史命令的技巧
  • 光标上下键:调用之前使用过的命令
  • ctrl+r :输入命令的关键字-->找到对应的命令-->按右光标键
  • !数字:执行历史命令的第几条命令
  • !字符串:执行最近一个以字符串开头的命令

Linux的快捷键

  • ctrl+c:终止当前运行的程序
  • ttrl+d:退出终端,相当于exit
  • ctrl+l:清屏,相当于clear命令
  • ctrl+u:清除光标前到行首
  • ctrl+a:光标快速跳到行首
  • ctrl+e:光标快速跳到行尾
  • ctrl+l:清除光标到行尾
  • ctrl+r:搜索历史命令
  • !$:调用上一条命令的最后一个参数
  • tab键:补全命令或者文件路径
[root@Master-30 etc]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 
[root@Master-30 etc]# vim !$
vim /etc/sysconfig/network-scripts/ifcfg-ens32

三、查看系统和BIOS硬件时间

系统时间管理

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟;系统时钟则是指kernel中 的时钟;所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作

问题1:如何查看硬件时间

[root@Master-30 etc]# hwclock 
2021年01月09日 星期六 23时02分13秒  -0.506389 秒

#使用命令hwclock

问题2:如何查看Linux的系统时间

[root@Master-30 etc]# date
2021年 01月 09日 星期六 23:03:15 CST

#时区的讲解
UTC  (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST  (China standard Time):中国标准时间

问题3:如何修改时间

#查看系统时间
[root@Master-30 etc]# date
2021年 01月 09日 星期六 23:03:15 CST

#修改时间-->-s选项
[root@Master-30 etc]# date -s "2022-08-02 17:30:45"
2022年 08月 02日 星期二 17:30:45 CST
[root@Master-30 etc]# date
2022年 08月 02日 星期二 17:30:47 CST

#常用查看时间的参数:+%F
仅仅查看年月日
[root@Master-30 etc]# date "+%F"
2022-08-02

#查看年月日时分秒
[root@Master-30 etc]# date "+%F %H:%m:%S"
2022-08-02 17:08:08

#显示字符串描述的时间,不是当前时间
[root@Master-30 etc]# date -d "+1 months" "+%F"
2022-09-02

问题5:如何同步硬软件时间

#以硬件时间为基准同步软件时间
[root@Master-30 etc]# hwclock 
2021年01月09日 星期六 23时19分10秒  -0.134355 秒
[root@Master-30 etc]# hwclock -s
[root@Master-30 etc]# date
2021年 01月 09日 星期六 23:19:19 CST

#以软件时间为基准同步硬件时间
[root@Master-30 etc]# hwclock --systohc
[root@Master-30 etc]# date
2021年 01月 09日 星期六 23:21:05 CST
[root@Master-30 etc]# hwclock 
2021年01月09日 星期六 23时21分09秒  -0.616612 秒

time命令

作用测试一个命令的运行时间
[root@Master-30 etc]# time hwclock -s

real	0m0.000s
user	0m0.001s
sys	0m0.016s


#说明:
real:实际使用时间
user:用户状态使用的时间
sys:内核状态使用的时间

四、Linux如何获得帮助

Linux下的帮助命令

man命令

man ls
[root@Master-30 etc]# man ls
LS(1)                       General Commands Manual                      LS(1)

NAME
       ls, dir, vdir - 列目录内容

提要
       ls [选项] [文件名...]
...............

--help:

ls --help
[root@Master-30 etc]# ls --help
用法:ls [选项]... [文件]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all			不隐藏任何以. 开始的项目
.................

五、开关机命令及7个启动级别

关机、重启命令

shutdown命令

作用:关机、重启、定时关机
语法:shutdown 【选项】 时间
选项
  • -h:马上关机
  • -r:重启
  • -c:取消关机命令
#十分钟后关机
[root@Master-30 etc]# shutdown -h +10

#取消关机操作命令
[root@Master-30 etc]# shutdown -c

poweroff命令

作用:硬性关机
相当于直接按关机键
[root@Master-30 etc]# poweroff 

reboot命令

作用:重启系统
[root@Master-30 etc]# reboot

系统的运行级别:

Linux 7个启动级别:

  1. 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
  2. 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
  3. 2 多用户模式,没有NFS和网络支持
  4. 3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
  5. 4 系统未使用,
  6. 5 图形化模式,登陆后进入图形GUI模式,X Window系
  7. 6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
#关机
[root@Master-30 etc]# init 0

#设置字符界面
[root@Master-30 etc]# init 3

#切换图形化界面
[root@Master-30 etc]# init 5

问题1:centos7如何设置默认的字符启动界别

centos7不再使用/etc/inittab文件进行默认的启动级别配置,而使用比sysvinit的运行级更为自由的target替代。
  • 第3运行级用multi-user.target替代。
  • 第5运行级用graphical.target替代。
#设置字符界面
[root@Master-30 etc]# systemctl set-default multi-user.target 

#设置图形界面
[root@Master-30 etc]# systemctl set-default graphical.target 

问题2:如何查看当前的开机运行级别

[root@Master-30 etc]# runlevel 
5 3
#表示从5级别切换到3级别

[root@Master-30 etc]# systemctl get-default 
multi-user.targe
 
posted @ 2021-01-27 16:42  LiangGaRy  阅读(126)  评论(0)    收藏  举报