Linux

Linux基础命令

  • 查看Linux解释器
  • 查看命令是内置还是外置
  • 查看命令对应的程序/路径
  • 查看命令如何使用
  • 常用命令(使用中补充)
    • pwd
    • cd
    • ls
    • cat
    • less
    • lscpu
    • hostname
    • ifconfig
    • tail
    • head
    • poweroff
    • reboot
    • grep
    • vi/vim
    • mkdir
    • touch
    • alias
    • unalias
    • mount
    • umount
    • rm
    • mv

查看Linux解释器

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

pwd:Print Working Directory,主要用途是查看当前所在路径。

	eg:[root@money udev]# cd /etc/udev/
        [root@money udev]# pwd            ---输出当前路径
        /etc/udev

cd

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

ls:List,查看指定目录下文件夹或文件
格式:ls -[参数] [目录或文件名]
常用命令参数(后续使用补充):

  • -l:以长格式显示,显示详细信息
  • -h:提供易读的容量单位(K、M等)
  • -A:显示所有内容包含隐藏数据
  • -R:递归显示内容(目录本身以及子目录内容)
	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:查看指定文件内容,一般用于查看内容较少的文件。
格式: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

less:查看文本文件内容,适合查看内容较多文件。
注:使用中按上、下键进行滚动,按q键进行退出

lscpu

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

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

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:从最后开始查看文本文件。
格式:tail [参数] [文件名]
常用命令参数(后续使用补充):

  1. -n:表示具体显示多少行内容,默认10
  2. -f:实时显示文件内容,CTRL和C结束
	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:从头开始查看文本文件。
格式:head -n [文件名],显示文件从头开始指定行数

	eg:[root@money ~]# head -3 /etc/shells     ---查看shells文件前3行内容
		/bin/sh
		/bin/bash
		/usr/bin/sh

poweroff

poweroff:关机。
格式:poweroff [参数],关闭当前系统

	eg:[root@money ~]# poweroff

		连接断开

reboot

reboot:重启。
格式:reboot [参数],重启当前系统

	eg:[root@money ~]# reboot

		连接断开
		连接主机...
		连接主机成功
		Last login: Wed Apr 27 09:49:22 2022 from 112.116.1.107
		[root@money ~]# 

grep

grep:过滤只显示指定内容。
格式:grep [参数],输出包含指定字符串的行
常用命令参数(后续使用补充):

  1. -v:取反匹配,显示不包含指定字符串的行
  2. -i:忽略字母大小写进行匹配
	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无法直接创建目录
vi/vim三种模式:

  1. 命令模式:用户刚刚启动 vi/vim,便进入了命令模式。按i进入输入模式,按:进入底线命令模式
  2. 输入模式:按i进入输入模式,按ESC退出输入模式,切换到命令模式。
  3. 底线命令模式:在命令模式下按下:就进入了底线命令模式。基本的命令有q退出程序,w保存文件,ESC键可随时退出底线命令模式。
	eg:[root@money ~]# [root@money opt]# vi /opt/1.txt      ---编辑opt目录下的1.txt文件,若无该文件则直接创建
		12342414134144                                       ---按下i进入输入模式,输入文本内容
		~                                                                                                                                                                       
		~                                                                                                                                                                                                                                                                                                                                          
		-- INSERT --
		12342414134144                                       ---按下ESE进入底行命令模式
		~                                                                                                                                                                       
		~
		12342414134144                                       
		~                                                                                                                                                                       
		~                                                                                                                                                                                                                                                                                                                                          
		:wq                                                             ---按下:进入命令编辑模式,wq表示保存所修改内容并退出

mkdir

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:创建文件。
格式:touch [参数] [文件名],输出包含指定字符串的行

	eg:[root@money dev]# touch /opt/rh/test.ini
	    [root@money dev]# ls /opt/rh/test.ini
	    /opt/rh/test.ini

alias

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:取消别名。
格式:unalias [别名],临时取消别名,只针对当前shell生效

	eg:[root@svr ~]# hs
		svr.tedu.cn
		[root@svr ~]# unalias hs
		[root@svr ~]# hs
		-bash: hs: 未找到命令

mount

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: 挂载磁盘、光驱等。
格式: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

rm:Remove,删除指定文件/文件夹。
格式:rm [参数-rf] [文件/文件夹]
常用参数

  1. -f:强制删除不提示
  2. -r:递归删除,包括某一文件夹下的子文件
	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

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:

你可能感兴趣的:(小白学习Linux,linux)