# echo=' - - - ' > /sys/class/scsi_host/host0/scan这条命令是咱们在给虚拟机装了一块新的硬盘后,在不关机的前提下扫描你的硬盘,使你新装的硬盘可用。
# 显示现在只有一块200G的硬盘sda
[sun@centos7 ~]$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 3G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 50G 0 part /data
sr0 11:0 1 10.3G 0 rom /run/media/sun/CentOS 7 x86_64
# 手动添加硬盘ing
# 咱们再用lsblk命令去看,还是没有新增硬盘的。
[sun@centos7 ~]$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 3G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 50G 0 part /data
sr0 11:0 1 10.3G 0 rom /run/media/sun/CentOS 7 x86_64
# 现在执行这条长的命令echo=' - - - ' > /sys/class/scsi_host/host0/scan
# 我们再次使用lsblk命令查看,我们现在有了一块新的100G硬盘sdb
[root@centos7 ~]#echo='- - -' > /sys/class/scsi_host/host0/scan
[root@centos7 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 3G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 50G 0 part /data
sdb 8:6 0 100G 0 disk
sr0 11:0 1 10.3G 0 rom /run/media/sun/CentOS 7 x86_64
# 给你们觉得比较长且难记的命令顶一个别名,就像小时候给别人取外号一样。
列:
alias scandik="echo=' - - - ' > /sys/class/scsi_host/host0/scan"
# 定义别名NAME,其相当于执行命令VALUE
alias NAME='VALUE'
# 如果想永久有效,要定义在配置文件中
# 仅对当前用户:~/.bashrc
# 对所有用户有效:/etc/bashrc
# bc是一个相当于windows里计算器的工具
[root@centos7 ~]#bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2*3
6
quit
[root@centos7 ~]#
在Linux上采用bash作为标准,基本上它描述了对带有“.sh”扩展名的vi编辑器等文本的处理并执行。
与编程一样,它有许多函数,如变量,函数和算术处理,所以如果你是一个小程序,你可以用bash编写它。
此外,由于bash是由shell执行的,因此它也称为shell脚本
# 我们首先创建一个简单的脚本,将“Hello World !!”输出到控制台。使用vim命令创建新文件。
[root@centos7 ~]#vim hello.sh
# 打开编辑器后,按如下所示编写。
#!/usr/bin/bash
echo "Hello World!!"
exit 0
# 第一行上的“#!/ usr / bin / bash”表示它是使用bash的shell脚本。
# 第二行描述了要执行的语句。
# 最后,使用“exit 0”退出 bash。参数0表示正常结束。
# 创建文件后,使用bash命令执行shell脚本。
[root@centos7 ~]#bash hello.sh
# 执行结果
Hello World!!
# 一次显示整个文件。
[root@centos7 ~]#cat filename
# 从键盘创建一个文件。
# 只能创建新文件,不能编辑已有文件.
[root@centos7 ~]#cat > filename
# 将几个文件合并为一个文件。
[root@centos7 ~]#cat file1 file2 > file
# 跳转至home目录下
[root@centos7 ~]#cd /home
[root@centos7 home]#pwd
/home
# 返回父目录
# 注:"/"此处可省略
[root@centos7 ~]#cd ../
# echo命令基本用法,很简单,就是echo命令后面跟上要输出的文本,如下:
[root@centos7 home]#echo 123
123
[root@centos7 home]#echo magedu
magedu
[root@centos7 home]#echo sunxiaobo
sunxiaobo
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符,
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n
\n 换行
\f 换行,但是换行后的新行的开头位置接着上一行的行尾
\v 与 \f 相同
\t 转义后表示插入tab,即制表符
\r 光标移至行首,但是不换行,相当于"\r"以后的字符覆盖"\r"之前同等长度的字符
\\表示插入"\"本身
# enable命令用于临时关闭或者激活指定的shell内部命令。若要执行的文件名称与shell内建命令相同,可用enable -n来关闭shell内建命令。若不加-n选项,enable可重新启动关闭的命令。
# -n:关闭指定的内部命令
# -a:显示所有激活的内部命令
# -f:从指定文件中读取内部命令
[root@centos7 home]#enable (选项)(参数)
# exit命令用于退出目前的shell。执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。
# free 命令显示系统内存的使用情况
[root@centos7 home]#free
total used free shared buff/cache available
Mem: 1487296 823320 81604 57256 582372 447372
Swap: 3145724 264 3145460
# 如果加上 -h 选项,输出的结果会友好很多
[root@centos7 home]#free -h
total used free shared buff/cache available
Mem: 1.4G 804M 79M 55M 568M 436M
Swap: 3.0G 264K 3.0G
# 下面先解释一下输出的内容:
Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。
total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。
我想只有在理解了一些基本概念之后,上面的输出才能帮助我们了解系统的内存状况
# gedit是Linux里的一个图形界面的文本编辑工具
# 当下Linux下面最流行的文本编辑器是vi,所以建议你使用vi
# linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从$PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去$PATH路径下寻找。
# 输入hash或hash -l 可以查看hash表的内容
# 我们执行hash,结果如下
[root@centos7 home]#hash
hits command
2 /usr/bin/pwd
3 /usr/bin/bash
1 /usr/bin/echo
1 /usr/bin/cat
2 /usr/bin/vim
1 /usr/bin/sh
1 /usr/bin/man
2 /usr/bin/free
# 我们执行hash -l,加参数-l既可以看到hash表命令的路径,也可以看到它的名字,说不定会有别名哦!
[root@centos7 home]#hash -l
builtin hash -p /usr/bin/pwd pwd
builtin hash -p /usr/bin/bash bash
builtin hash -p /usr/bin/echo echo
builtin hash -p /usr/bin/cat cat
builtin hash -p /usr/bin/vim vim
builtin hash -p /usr/bin/sh sh
builtin hash -p /usr/bin/man man
builtin hash -p /usr/bin/free free
# 我们执行hash -t cat,加参数-t再加某条命令就可以查看这条命令在hash表中命令的路径
[root@centos7 home]#hash -t cat
/usr/bin/cat
# 我们执行hash -d cat,加参数-d再加某条命令就可以清除这条命令在hash表中命令的路径
centos7 home]#hash -d cat
[root@centos7 home]#hash -l
builtin hash -p /usr/bin/pwd pwd
builtin hash -p /usr/bin/bash bash
builtin hash -p /usr/bin/echo echo
builtin hash -p /usr/bin/vim vim
builtin hash -p /usr/bin/sh sh
builtin hash -p /usr/bin/man man
builtin hash -p /usr/bin/free free
# 我们执行hash -r,加参数-r是清除在hash表中所有命令的路径
[root@centos7 home]#hash -r
[root@centos7 home]#hash
hash: hash table empty
# hostname用以显示或设置系统的主机名称。
[root@centos7 home]#hostname
centos7.magedu.sun.com
# 参数选项
-s: --short 短主机名
-a: --alias 别名
-i: --ip-address IP地址
-f: --fqdn, --long 长主机名
-d: --domain DNS域名
-y: --yp, --nis NIS/YP域名
-v: 运行时,显示详细的处理过程
-F: --filename 读取指定文件
-h: --help 帮助信息
-V: --version 版本信息
# halt 在Linux里为关闭系统的命令
# 参数选项
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作
# 关机
[root@centos7 ~]#init 0
# 切换到命令行模式
[root@centos7 ~]#init 3
# 切换至图形化页面
[root@centos7 ~]#init 5
# 重启
[root@centos7 ~]#init 6
# 在linux系统可以查看ip地址信息的命令
# 其余的我还没学到,但是问了度娘后,感觉我太难了
# 下文中!<---ip地址在这里!,是我后期加的。
[root@centos7 home]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:79:c6:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.111.129!<---ip地址在这!/24 brd 192.168.111.255 scope global noprefixroute dynamic ens33
valid_lft 1389sec preferred_lft 1389sec
inet6 fe80::e1d3:b8aa:accf:bf34/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c1:d7:80 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:c1:d7:80 brd ff:ff:ff:ff:ff:ff
# id命令用于显示用户的ID,以及所属群组的ID。
# id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
[root@centos7 home]#id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
# 参数选项
-g: --group 显示用户所属群组的ID。
-G: --groups 显示用户所属附加群组的ID。
-n: --name 显示用户,所属群组或附加群组的名称。
-r: --real 显示实际ID。
-u: --user 显示用户ID。
-help 显示帮助。
-version 显示版本信息。
# lsb_release -a 是用来查看linux版本信息的
# 如果是用不了,可以通过yum -y stall redhat-lsb安装这个命令的软件包,就可以正常使用了。
[root@centos7 home]#lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.7.1908 (Core)
Release: 7.7.1908
Codename: Core
# ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
[root@centos7 /]#ls
bin boot data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
# 参数选项
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出
# lscpu命令可以显示CPU的详细信息
[root@centos7 /]#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 158
Model name: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz
Stepping: 10
CPU MHz: 2400.001
BogoMIPS: 4800.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0,1
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
# lsblk命令默认情况下将以树状列出所有块设备
[root@centos7 /]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 3G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 50G 0 part /data
sdb 8:16 0 100G 0 disk
sr0 11:0 1 10.3G 0 rom /run/media/root/CentOS 7 x86_64
# 解析方便理解
NAME :这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE : 本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT :本栏指出设备挂载的挂载点。
# logout指令让用户退出系统,其功能和login指令相互对应
[root@centos7 /]#logout
# mv命令用来为文件或目录改名、或将文件或目录移入其它位置。
# 将源文件名改为目标文件名
[root@centos7 ~]#mv file1 file2
# 将文件移动到目标目录
[root@centos7 ~]#mv file1 /data
# 目标目录已存在,将源目录
移动到目标目录
[root@centos7 data]#ll
total 0
drwxr-xr-x. 2 root root 6 Sep 21 13:40 sun
drwxr-xr-x. 2 root root 6 Sep 21 13:39 sun1
[root@centos7 /]#mv /data/sun /data/sun1
[root@centos7 /]#cd /data
[root@centos7 data]#ll
total 0
drwxr-xr-x. 3 root root 17 Sep 21 13:41 sun1
[root@centos7 data]#ll sun1
total 0
drwxr-xr-x. 2 root root 6 Sep 21 13:40 sun
# 目标目录不存在则改名
[root@centos7 data]#mkdir sun
[root@centos7 data]#mv /data/sun /data/sun2
[root@centos7 data]#ll
total 0
drwxr-xr-x. 3 root root 17 Sep 21 13:41 sun1
drwxr-xr-x. 2 root root 6 Sep 21 13:42 sun2
# nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。
[root@centos7 ~]#nano -w .bashrc
# poweroff在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应。
[root@centos7 ~]#poweroff
# pwd是Print Working Directory的缩写,其功能是显示当前所在工作目录的全路径。主要用在当不确定当前所在位置时,通过pwd来查看当前目录的绝对路径。
[root@centos7 ~]#pwd
/root
# 参数选项
-L:--logical, 显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式)
-p:--physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件。 当包含多层连接文件时,显示连接文件最终指向的文件。
--help: 显示帮助信息。
--version: 显示版本信息。
# quit命令是起到从容退出的
# runlevel命令是显示上次所处的以及目前的用户模式
[root@centos7 ~]#runlevel
N 5
# reboot命令用于用来重新启动计算机
[root@centos7 ~]#reboot
# 参数选项
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
# sudo可以使其他用户临时拥有固定用户的权限
# 并且sudo需要你输入的是当前用户的密码,而并不是根密码
[root@centos7 ~]#reboot
reboot:must be superuser
[root@centos7 ~]#sudo reboot
[sudo] password for rudy:
# tty命令用于显示终端机连接标准输入设备的文件名称
[sun@centos7 ~]$tty
/dev/pts/0
# 一般命令的类型可以是如下几种:
alias 别名
keyword 关键字,Shell保留字
function 函数,Shell函数
builtin 内建命令,Shell内建命令
file 文件,磁盘文件,外部命令
unfound 没有找到
# type命令用来显示指定命令的类型
[sun@centos7 ~]$type echo
echo is a shell builtin
# 参数选项
type -a 可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令。
type -p 只返回外部命令的信息,相当于which命令。
type -f 返回shell函数的信息。
type -t 只返回指定类型的信息。
# unalias命令用于删除别名。
# unalias为shell内建指令,可删除别名设置
unalias [-a] name [name ...]
-a 取消所有别名
# 如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand
# who命令显示关于当前在本地系统上的所有用户的信息
[sun@centos7 ~]$who
sun :0 2019-09-21 14:31 (:0)
sun pts/0 2019-09-21 14:31 (:0)
# whoami命令用于显示自身用户名称。
显示自身的用户名称,本指令相当于执行"id -un"指令
[sun@centos7 ~]$whoami
sun
# who am i显示的是“登录用户”的用户名(用户登录时用过的id)
[sun@centos7 ~]$who am i
sun pts/0 2019-09-21 14:31 (:0)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章