Linux基本命令操作和文件管理
二、Linux基本命令操作
2.1、Linux终端介绍、Shell提示符、Bash 基本语法
2.1.1 登录LINUX终端
两种终端仿真器
1、GNOME桌面的GNOME Terminal ; 2、KDE桌面的Konsole Terminal
远程连接终端工具: Xshell , CRT 。
例1:通过 tty命令看到当前所属的虚拟终端
[root@Hengji ~]# tty
/dev/pts/0
注:在图形化界面,ctrl+shift+T 快速打开一个终端; shift+ctrl+加号 终端字体放大 ; 终端字体缩小:ctrl+减
号
例2:不同虚拟终端之间通讯
同时打开两终端,第一个终端执行:
[root@Hengji ~]# tty
/dev/pts/0
[root@Hengji ~]# echo hengji
hengji
[root@Hengji ~]# echo hengji > /dev/pts/1
在第二个终端查看:有 hengji 输出
[root@Hengji ~]# tty
/dev/pts/1
[root@Hengji ~]# hengji
例3:对所有终端广播消息:
系统 10分钟后关机。
[root@Hengji ~]# shutdown +10 #执行此命令后,在其他终端都会收到关机的消息。
Shutdown scheduled for Sat 2020-07-25 14:09:29 CST, use 'shutdown -c' to cancel.
[root@Hengji ~]# shutdown -c #取消关机
2.1.2 认识SHELL
Shell 俗称壳,它提供了用户不内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行 。Shell 实际上是一个命令解释器,它通过解释用户输入的命令并把它传输给系统内核去执行。
Shell 有自己的编程语言,它允讲用户编写由 shell命令组成的程序。Shell编程语言具有普通编程语 言的很多特点,比如它也有循环结构和分支控制结构等。
内部命令:在系统启动时就调入内存,是常驻内存的,所以执行效率高
外部命令:是系统软件的功能,用户需要时才从硬盘中读入内存
区内外部命令:
使用type命令,语法 : type 要检测的命令
[root@Hengji ~]# type cat
cat 是 /usr/bin/cat
[root@Hengji ~]# type pwd
pwd 是 shell 内建
通过 SHELL,我们可以对 LINUX实现哪些操作或管理:
例如: 对文件的管理(创建、删除、复制、修改)
1、对用户的管理(添加、删除)
2、相关权限的管理(授权用户对相关文件的管理,比如增删改查)
3、对磁盘的管理(分区、raid、lvm)
4、对软件的管理
5、对网络的管理
2.1.3 shell提示符“#”号与“$”号的区别
[root@Hengji ~]# #表示是root 用户登录,管理员账号登陆
[root@Hengji ~]# su - hengji #切换到hengji普通用户
[hengji@Hengji ~]$ cd /etc/ #表示普通用户登录
[hengji@Hengji etc]$ su - root
密码:
[root@Hengji ~]#
[root @ hengji ~ ]#
用户名—@---主机名—当前所在目录(~表示当前用户的家目录)—(# root/$普通用户)
2.1.4 认识Bash Shell
查看所有 shell 类型
[root@Hengji ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
例:通过查看/etc/passwd文件的每一行的最后一个字段,确认用户使用的 shell类型
[root@Hengji ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
2.2、基本命令操作
在LINUX中使用一个命令,命令格式如下:
命令 【选项】 【参数】
命令:具体执行的命令,比如 pwd,head
选项:会影响到命令的一些参数
参数:命令作用的对象
2.2.1 基本命令–ls
作用:查看当前目录下有哪些文件(list)
语法:ls 目录/文件 ,如果什么也不加,那举查看的是当前目录下的内容
常用选项:
命令后面不加任何选项
[root@Hengji ~]# ls
公共 视频 文档 音乐 anaconda-ks.cfg
模板 图片 下载 桌面 initial-setup-ks.cfg
[root@Hengji ~]# ls -l #ls -l = ll
总用量 8
drwxr-xr-x. 2 root root 6 7月 21 21:45 公共
drwxr-xr-x. 2 root root 6 7月 21 21:45 模板
drwxr-xr-x. 2 root root 6 7月 21 21:45 视频
drwxr-xr-x. 2 root root 6 7月 21 21:45 图片
drwxr-xr-x. 2 root root 6 7月 21 21:45 文档
drwxr-xr-x. 2 root root 6 7月 21 21:45 下载
drwxr-xr-x. 2 root root 6 7月 21 21:45 音乐
drwxr-xr-x. 2 root root 6 7月 21 21:45 桌面
-rw-------. 1 root root 1452 7月 21 21:38 anaconda-ks.cfg
-rw-r--r--. 1 root root 1562 7月 21 21:42 initial-setup-ks.cfg
以上网络图片
第一个字符文件类型中:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
linux系统中不同的颜色代表了不同的文件类型:
例:查看/dev目录下的文件
[root@hengji ~]# ls /dev/
参数-a : 列出目录下所有的文件,包括以“.“开头的隐藏文件(linux下隐藏文件是以 . 开头的, 如果存在2个点代表存在着父目录,1 个点表示当前目录)
[root@Hengji ~]# ls -a
. 图片 anaconda-ks.cfg .cache .ICEauthority .tcshrc
.. 文档 .bash_history .config initial-setup-ks.cfg
公共 下载 .bash_logout .cshrc .local
模板 音乐 .bash_profile .dbus .mozilla
视频 桌面 .bashrc .esd_auth .pki
-d 查看目录(不查看里面的内容)
[root@Hengji ~]# ll -d /root
dr-xr-x---. 16 root root 4096 7月 25 13:53 /root
-S 以文件的大小进行排序
[root@Hengji ~]# ll -s /root
总用量 8
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 公共
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 模板
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 视频
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 图片
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 文档
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 下载
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 音乐
0 drwxr-xr-x. 2 root root 6 7月 21 21:45 桌面
4 -rw-------. 1 root root 1452 7月 21 21:38 anaconda-ks.cfg
4 -rw-r--r--. 1 root root 1562 7月 21 21:42 initial-setup-ks.cfg
ls -l 和 ll 这两个命令是等价的
[root@Hengji ~]# type ll
ll 是 `ls -l --color=auto' 的别名
2.2.2 别名的使用
定义/删除一个别名:
[root@Hengji ~]# vim /etc/sysconfig/network-scripts/ifcfg-配置_1
[root@Hengji ~]# alias vimens='vim /etc/sysconfig/network-scripts/ifcfg-配置_1' --定义
[root@Hengji ~]# vimens
[root@Hengji ~]# unalias vimens --删除
设置别名永久生效:
对当前用户设置永远别名
[root@Hengji ~]# vim /root/.bashrc #在文件最后,插入以一下内容:
alias vimens="vim /etc/sysconfig/network-scripts/ifcfg-配置_1"
[root@Hengji ~]# source /root/.bashrc
[root@Hengji ~]# vimens
对当全局用户设置永远别名,就是让任何人,都可以使用你创建的别名
[root@Hengji ~]# vim /etc/bashrc #在文件最后插入
alias vimens="vim /etc/sysconfig/network-scripts/ifcfg-配置_1"
[root@Hengji ~]# su - hengji
[hengji@Hengji ~]$ vimens
2.2.3 基本命令–cd
作用:切换目录(change directory)
语法:cd 目录
例1:直接输入 cd 回到当前用户的宿主(家)目录
[root@Hengji ~]# cd /etc/sysconfig/network-scripts/
[root@Hengji network-scripts]# cd #回到当前用户的宿主(家)目录
[root@Hengji ~]# cd ~ #回到当前用户的宿主(家)目录
[root@Hengji ~]# pwd
/root
[root@Hengji ~]# cd .. #表示返回到上级目录位置,也就是父目录
[root@Hengji /]# pwd
/
[root@Hengji /]# cd . #表示进入到当前目录
[root@Hengji /]# cd /etc/sysconfig/network-scripts/
[root@Hengji network-scripts]# cd - #表示返回切换前的目录
/
2.2.4 历史命令–history
命令:history
4个快速查找Linux历史命令的技巧:
方法1: 光标上下键
方法2: ctrl+r -》输入某条命令的关键字-》找出来对应的命令,按右光标键
方法3: !数字 //执行历史命令中第N条命令
方法4: !字符串 //搜索历史命令中最近一个以 xxxx 字符开头的命令,例如!vim
[root@Hengji /]# history
1 ping baidu.com
2 init 0
3 ifconfig
4 ping baidu.com
5 ping www.baidu.com
6 cat /etc/sysconfig/network
7 ping baidu.xom
8 ping baidu.com
9 ping 8.8.8.8
10 init 0
11 ping baidu.com
12 clear
13 ttty
14 clear
15 tty
16 echo hengji
17 echo hengji > /dev/pts/1
18 init 0
19 ls
20 ls -l
21 ls /dev
22 ls -a
23 ll -d /root
24 ll -s /root
25 ls -ls /root
26 type ll
27 cat /etc/sysconfig/network-scripts/ifcfg-配置_1
28 vim /etc/sysconfig/network-scripts/ifcfg-配置_1
29 alias vimens='vim /etc/sysconfig/network-scripts/ifcfg-配置_1'
30 vimens
31 unalias vimens
32 cd /etc/sysconfig/network-scripts/
33 cd
34 cd~
35 cd ~
36 pwd
37 cd ..
38 pwd
39 cd.
40 cd .
41 cd /etc/sysconfig/network-scripts/
42 cd -
43 history
[root@Hengji /]# pwd
/
[root@Hengji /]# !38
pwd
/
[root@Hengji /]# !pwd
pwd
/
2.2.5 Linux下快捷键
都是用 Ctrl+下面的单词, ^表示 Ctrl
Ctrl+C #终止前台运行的程序 , 如:ping g.cn 后,想停止按下 Ctrl+C
Ctrl+D #退出 等价 exit
Ctrl+L #清屏与执行 clear命令功能一样
Ctrl+R #搜索历史命令,可以利用好关键词
!$ 引用上一个命令的最后一个参数
[root@Hengji /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@Hengji /]# cat !$
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2.3、系统时间管理
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在 BIOS画面设定的时钟;系统时钟则是指kernel 中的时钟;所有Linux相关指令与函数都是读取系统时钟的设定
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作
2.3.1 两种时间
查看硬件时间:
[root@Hengji /]# hwclock
2020-07-25 16:17:07.960602+08:00
查看系统时间:
[root@Hengji /]# date
2020年 07月 25日 星期六 16:17:17 CST
时区:
UTC (Universal Time Coordinated):世界标准时间
GMT (Greenwich Mean Time):格林尼治时间
CST (China standard Time):中国标准时间
2.3.2 如何修改时间
date命令相关参数:
date --help
-s, --set=STRING 把时间设为字符串所描述的时间
[root@Hengji ~]# date -s "2019-11-2 22:30"
2019 年 11 月 02 日 星期五 22:30:00 CST
%F 完整日期格式,等价于 %Y-%m-%d
[root@Hengji ~]# date "+%F"
2019-11-02
%y 年份最后两位数位 (00-99)
%Y 年份
%m month (01…12)
%d 按月计的日期(例如:01)
%M minute (00…59)
%H 小时(00-23)
%S 秒(00-60)
[root@Hengji ~]# date "+%Y%m%d"
20191102
[root@Hengji ~]# date "+%Y-%m-%d %H:%M:%S" #在年月日之前可以添加自己想要的符号
2019-11-02 22:34:27
[root@Hengji ~]# date "+%Y/%m/%d %H:%M:%S"
2019/11/02 22:34:38
[root@Hengji ~]# date "+%Y%m%d %H:%M:%S"
20191102 22:35:03
-d, --date=STRING #显示由字符串描述的时间,而不是“当前时间”
[root@Hengji ~]# date -d "+1 months" +%F
2020-08-25
2.3.3 使用time命令测试一个命令运行的时间
time 作用:一般用来测量一个命令的运行时间
使用方法:time 在后面直接跟上命令和参数
[root@Hengji ~]# time ll /etc/
real 0m0.304s
user 0m0.002s
sys 0m0.035s
说明:
real:实际使用时间
user:用户状态使用的时间
sys:内核状态使用的时间
2.4、帮助命令使用
遇到命令不知道添加哪个参数,可以使用命令帮助查看相关介绍,常用的查看帮助信息命令有如下几
个
2.4.1 man 命令
查看手册页或命令描述
[root@Hengj ~]# man find
man 命令查看帮助时,它支持上翻下翻,搜索(直接输入斜线),退出用 q
2.4.2 使用–help查看命令选项
[root@Hengji ~]# find -h #不可以执行
find: 未知的断言“-h”
[root@Hengji ~]# find --help
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
2.5、 开关机命令及 7 个启动级别
常用的几个关机,重启命令
shutdown
init
reboot
poweroff
2.5.1 关机命令–shutdown
作用:关机、重启、定时关机
语法:shutdown [选项]
参数:
-r > 重新启动计算机
-h > 关机
-h +时间 > 定时关机
[root@Hengji ~]# shutdown -h +10 #10分钟后关机
[root@Hengji ~]# shutdown -h 23:30 #指定具体的时间点进行关机
[root@Hengji ~]#shutdown -r 22:22 #22:22重启
[root@Hengji ~]# shutdown -h now #立即关机
2.5.2 7个启动级别
作用:切换系统运行级别
语法:init 0-6
Linux 7个启动级别:
0 系统停机模式,系统默认运行级别不能设置为 0,否则不能正常启动,机器关的
1 单用户模式,root 权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户模式,没有NFS和网络支持
3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 图形化模式,登陆后进入图形GUI模式,X Window系
6 重启模式,默认运行级别不能设为 6,否则不能正常启动。运行init 6机器就会重启
[root@localhost ~]# init 0 #关机
[root@localhost ~]# init 3 #进入3级别字符界面
[root@localhost ~]# init 5 #进入5级别图形界面
2.5.3 设置默认的运行界别
centos8不再使用/etc/inittab文件进行默认的启动级别配置,而使用比 sysvinit 的运行级更为自由的target替代。
第3运行级用multi-user.target替代。
第5运行级用graphical.target替代。
查看当前默认启动级别:
[root@Hengji ~]# systemctl get-default
graphical.target
[root@Hengji ~]# systemctl isolate multi-user.target #切换级别为字符界面
[root@Hengji ~]# systemctl set-default multi-user.target #设置默认第三启动级别
[root@Hengji ~]# systemctl set-default graphical.target #设置默认第五启动级别
[root@Hengji ~]# systemctl isolate graphical.target #切换级别为图形界面
[root@Hengji ~]# runlevel 3 5 #表示从3级别切换到了5级别