Linux默认解释器是/bin/bash
,一般命令格式是命令 [选项1] [选项2]… [参数1] [参数2]…
。
eg:root@money ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
格式:type [命令]
eg:[root@money /]# type pwd
pwd 是 shell 内嵌
[root@money /]# type python
python 是 /usr/bin/python
格式:which [命令]
eg:[root@money ~]# which hostname
/usr/bin/hostname
[root@money ~]# which ifconfig
/usr/sbin/ifconfig
格式:[命令] --help
eg: [root@money ~]# 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 不隐藏任何以. 开始的项目
-A, --almost-all 列出除. 及.. 以外的任何项目
=========================================================================
[root@money ~]# python --help
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser; also PYTHONDEBUG=x
-E : ignore PYTHON* environment variables (such as PYTHONPATH)
-h : print this help message and exit (also --help)
pwd:Print Working Directory,主要用途是查看当前所在路径。
eg:[root@money udev]# cd /etc/udev/
[root@money udev]# pwd ---输出当前路径
/etc/udev
cd:Change Directory ,主要用途是切换工作目录。
格式1:cd [目标文件夹位置]
eg:cd / --进入根目录
cd /opt --进入opt目录
格式2:cd 特殊符号
符号 | 说明 |
---|---|
. | 当前目录 |
… (两个点,不是三个) | 父目录(上一级目录) |
~ | 当前用户家目录 |
~用户名 | 进入指定用户目录 |
– | 进入上次目录 |
/ | 根目录 |
eg:[root@money ~]# useradd A ---创建用户A
[root@money ~]# cd ~A ---进入指定用户目录
[root@money A]# pwd
/home/A ---查看当前路径,确定进入了所在用户目录
[root@money A]# cd ~ ---进入当前登录用户目录
[root@money ~]# pwd
/root
[root@money ~]# cd .. ---返回上一级目录
[root@money /]# pwd
ls:List,查看指定目录下文件夹或文件
格式:ls -[参数] [目录或文件名]
常用命令参数(后续使用补充):
eg:[root@money udev]# ls -l /opt ---ls -l可以简写为ll
总用量 4
-rw-r--r--. 1 root root 16 4月 24 21:34 Linux.txt
drwxr-xr-x. 2 root root 48 4月 16 15:18 my_source
[root@money udev]# ll -h /opt/my_source/ ---等同于ls -lh,一般-h和其它参数一起使用
总用量 4.0K
-rw-r--r--. 1 root root 3.6K 4月 16 15:18 FinalShell-Keygen-1.0-SNAPSHOT.jar
[root@money udev]# ls -A /root ---显示隐藏文件,但.当前目录和..上级目录不显示,若要显示,可使用-a
anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .finalshellc .tcshrc .viminfo
[root@money udev]# ls -R /opt ---显示opt目录下所有文件
/opt:
Linux.txt my_source
/opt/my_source:
FinalShell-Keygen-1.0-SNAPSHOT.jar
cat:查看指定文件内容,一般用于查看内容较少的文件。
格式:cat -[参数] [文件名]
常用参数:–n,查看文件并显示行号
eg:[root@money udev]# cat /etc/centos-release ---查看当前系统版本
CentOS Linux release 7.9.2009 (Core)
[root@money udev]# cat -n /etc/shells ---显示文本内容并增加行号
1 /bin/sh
2 /bin/bash
3 /usr/bin/sh
4 /usr/bin/bash
[root@money udev]# cat -n /proc/meminfo ---查看当前内存信息并显示行号
1 MemTotal: 3861252 kB
2 MemFree: 3271256 kB
3 MemAvailable: 3334268 kB
4 Buffers: 2108 kB
5 Cached: 220748 kB
6 SwapCached: 0 kB
7 Active: 169728 kB
8 Inactive: 125516 kB
9 Active(anon): 73120 kB
10 Inactive(anon): 11148 kB
11 Active(file): 96608 kB
12 Inactive(file): 114368 kB
13 Unevictable: 0 kB
14 Mlocked: 0 kB
15 SwapTotal: 4063228 kB
16 SwapFree: 4063228 kB
17 Dirty: 4 kB
18 Writeback: 0 kB
19 AnonPages: 72452 kB
20 Mapped: 25792 kB
21 Shmem: 11880 kB
22 Slab: 172996 kB
23 SReclaimable: 113252 kB
24 SUnreclaim: 59744 kB
25 KernelStack: 4384 kB
26 PageTables: 5440 kB
27 NFS_Unstable: 0 kB
28 Bounce: 0 kB
29 WritebackTmp: 0 kB
30 CommitLimit: 5993852 kB
31 Committed_AS: 310208 kB
32 VmallocTotal: 34359738367 kB
33 VmallocUsed: 186552 kB
34 VmallocChunk: 34359310332 kB
35 Percpu: 33792 kB
36 HardwareCorrupted: 0 kB
37 AnonHugePages: 6144 kB
38 CmaTotal: 0 kB
39 CmaFree: 0 kB
40 HugePages_Total: 0
41 HugePages_Free: 0
42 HugePages_Rsvd: 0
43 HugePages_Surp: 0
44 Hugepagesize: 2048 kB
45 DirectMap4k: 110400 kB
46 DirectMap2M: 3035136 kB
47 DirectMap1G: 3145728 kB
less:查看文本文件内容,适合查看内容较多文件。
注:使用中按上、下键进行滚动,按q键进行退出
lscpu:查看当前系统CPU信息。
eg:[root@money udev]# 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
座: 2
NUMA 节点: 1
厂商 ID: AuthenticAMD
CPU 系列: 25
型号: 80
型号名称: AMD Ryzen 5 5600G with Radeon Graphics
步进: 0
CPU MHz: 3900.001
BogoMIPS: 7800.00
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 32K
L1i 缓存: 32K
L2 缓存: 512K
L3 缓存: 16384K
NUMA 节点0 CPU: 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 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext retpoline_amd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero arat umip pku ospke vaes vpclmulqdq overflow_recov succor
hostname:查看及临时设置主机名。
格式1:hostname [临时主机名]
eg:[root@money ~]# hostname ---查看主机名
money
[root@money ~]# hostname aa.bb.cc ---临时将aa.bb.cc设置为主机名,重启失效,命令行只显示第一个:前的为主机名称
[root@aa ~]# hostname
aa.bb.cc
格式2:hostnamectl set-hostname 新主机名称
eg:[root@aa~]# hostnamectl set-hostname money
[root@aa~]# hostname
money
ifconfig:查看本机IP信息,也可临时设置IP。
格式:ifconfig [参数]
注:临时设置IP:ifconfig 网卡名称(ens33/ens0) 临时IP
eg:[root@money ~]# ifconfig
ens33: flags=4163 mtu 1500 ---网卡一般为ens33或ens0
inet 192.168.133.129 netmask 255.255.255.0 broadcast 192.168.133.255
inet6 fe80::c1c6:e9af:cf1e:3456 prefixlen 64 scopeid 0x20
ether 00:0c:29:ca:07:48 txqueuelen 1000 (Ethernet)
RX packets 335092 bytes 27230302 (25.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 520185 bytes 98976762 (94.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0 ---127.0.0.1:永远代表本机
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@money ~]# ifconfig ens33 192.168.1.1 ---临时设置ens33的IP为192.168.1.1,重启恢复
[root@money ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::c1c6:e9af:cf1e:3456 prefixlen 64 scopeid 0x20
ether 00:0c:29:ca:07:48 txqueuelen 1000 (Ethernet)
RX packets 342536 bytes 27835576 (26.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 531699 bytes 101149584 (96.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tail:从最后开始查看文本文件。
格式:tail [参数] [文件名]
常用命令参数(后续使用补充):
eg:[root@money ~]# tail -3 /etc/shells ---查看最后3行内容
/usr/bin/bash
/bin/tcsh
/bin/csh
[root@money ~]# tail -f /etc/shells ---查看文件最后一行变化
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
^C ---按下CTRL和C结束
head:从头开始查看文本文件。
格式:head -n [文件名],显示文件从头开始指定行数
eg:[root@money ~]# head -3 /etc/shells ---查看shells文件前3行内容
/bin/sh
/bin/bash
/usr/bin/sh
poweroff:关机。
格式:poweroff [参数],关闭当前系统
eg:[root@money ~]# poweroff
连接断开
reboot:重启。
格式:reboot [参数],重启当前系统
eg:[root@money ~]# reboot
连接断开
连接主机...
连接主机成功
Last login: Wed Apr 27 09:49:22 2022 from 112.116.1.107
[root@money ~]#
grep:过滤只显示指定内容。
格式:grep [参数],输出包含指定字符串的行
常用命令参数(后续使用补充):
eg:[root@money ~]# grep root /etc/passwd ---只查看passwd文件中含root的行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@svr ~]# grep -v root /etc/passwd ---查看passwd文件中不含root的行
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
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syslog:x:996:994::/home/syslog:/bin/false
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
www:x:1001:1001::/home/www:/sbin/nologin
mysql:x:1002:1002::/home/mysql:/sbin/nologin
[root@svr ~]# grep Root /etc/passwd
[root@svr ~]# grep -i Root /etc/passwd ---忽略大小写显示
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
vi/vim:对文本文件进行编辑。
格式:vi/vim 文件,修改、查看文件内容
注:vi/vim无法直接创建目录
vi/vim三种模式:
eg:[root@money ~]# [root@money opt]# vi /opt/1.txt ---编辑opt目录下的1.txt文件,若无该文件则直接创建
12342414134144 ---按下i进入输入模式,输入文本内容
~
~
-- INSERT --
12342414134144 ---按下ESE进入底行命令模式
~
~
12342414134144
~
~
:wq ---按下:进入命令编辑模式,wq表示保存所修改内容并退出
mkdir:创建目录。
格式:mkdir [参数] [路径],输出包含指定字符串的行
常见参数:-p,递归创建目录
eg:[root@svr ~]# mkdir /opt/aa/bb/cc
mkdir: 无法创建目录"/opt/aa/bb/cc": 没有那个文件或目录
[root@svr ~]# mkdir -p /opt/aa/bb/cc ---递归创建,先创建aa,然后bb,最后cc
[root@svr ~]# ls -R /opt/aa
/opt/aa:
bb
/opt/aa/bb:
cc
/opt/aa/bb/cc:
touch:创建文件。
格式:touch [参数] [文件名],输出包含指定字符串的行
eg:[root@money dev]# touch /opt/rh/test.ini
[root@money dev]# ls /opt/rh/test.ini
/opt/rh/test.ini
alias:查看或设置别名,简化复杂的命令
格式1:alias [别名],查看别名表示的完整命令
eg:[root@money dev]# alias ---查看当前系统所有别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@money dev]# alias cp ---查看指定命令别名
alias cp='cp -i'
格式2:alias 别名名称= ‘实际执行的命令行’,临时自定义别名,只针对当前shell窗口生效
注: 如果想别名永久生效,只需将别名命令写到/etc/bashrc
eg:[root@money dev]# alias hs='hostname'
[root@money dev]# hs
svr.tedu.cn
[root@money dev]# alias hs
alias hs='hostname'
unalias:取消别名。
格式:unalias [别名],临时取消别名,只针对当前shell生效
eg:[root@svr ~]# hs
svr.tedu.cn
[root@svr ~]# unalias hs
[root@svr ~]# hs
-bash: hs: 未找到命令
mount: 挂载磁盘、光驱等。
格式:mount 设备路径 挂载点目录
注:
1. 挂载允许一个设备,挂载到不同的挂载点目录
2. 挂载不允许一个挂载点目录,挂载多个设备
3. 建议挂载点目录,最好自行创建
eg:[root@money /]# mkdir /mytest ---创建挂载点,一般新建指定文件夹
[root@money /]# mount /dev/cdrom /mytest ---执行挂载操作,将/dev/cdrom挂载到/mytest下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@money /]# ls /mytest/ ---可以查看到挂载目录下内容,挂载正常
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
umount: 挂载磁盘、光驱等。
格式:umount 挂载点目录
注:当前所在的路径是挂载点目录(即挂载点目录正在被使用)无法完成卸载。
eg:[root@money Packages]# umount /mytest/
umount: /mytest:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
[root@money Packages]# cd / ---退出挂载点目录
[root@money /]# umount /mytest/
[root@money /]# ls /mytest/
[root@money /]#
rm:Remove,删除指定文件/文件夹。
格式:rm [参数-rf] [文件/文件夹]
常用参数
eg:[root@svr opt]# ls
aa a.txt mellanox nsd.txt rh
[root@svr opt]# rm aa
rm: 无法删除"aa": 是一个目录
[root@svr opt]# rm a.txt
rm:是否删除普通空文件 "a.txt"?y
[root@svr opt]# rm -rf aa ---递归强制删除
[root@svr opt]# ls
mellanox nsd.txt rh
mv:move,将一文件/文件夹从一路径剪切到另一路径。
格式:mv [参数] 源路径文件/文件夹 指定路径 [重命名]
常用参数: -f,相同文件覆盖不提示
eg:[root@svr home]# mv /home/test.txt /opt/test.txt
mv:是否覆盖"/opt/test.txt"? y ---未加参数,相同文件覆盖提示
[root@svr home]# mv -f /home/test.txt /opt/test.txt ---加-f参数,相同文件强制覆盖
[root@svr aa]# mkdir -p /home/ac/bb/cc
[root@svr aa]# mv /home/ac/ /opt/bb ---把ac文件夹移动到opt目录下并重命名为bb
[root@svr aa]# ls -R /opt/bb/
/opt/bb/:
bb
/opt/bb/bb:
cc
/opt/bb/bb/cc: