Linux基础及常用命令

2023-06-04  本文已影响0人  E术家
通过Linux服务器端自带的SSH(Secure Shell)服务(默认端口 号为\color{#FF270A}{22}),客户端以SSH协议实现远程连接、登录服务器
[root@localhost ~]# 
[root@localhost Documents]# 
[snow@localhost ~]$ 

@前:当前登录的用户账号
@后:系统的主机名或ip地址
~:当前登录账号的属主目录
Documents:当前的工作路径
#:超级管理员
$:普通账号

常用命令

[root@localhost ~]# date -s "2023-06-16 09:24:00"
Fri Jun 16 09:24:00 CST 2023

date -s "日期/时间":修改日期时间
hwclock -w:将时间写入BIOS,以免重启服务器后,设置的时间丢失

[root@localhost ~]# touch snow.txt

touch:创建文件,如果文件已经存在,则更新文件的最后修改日期

[root@localhost ~]# pwd
/root
[root@localhost Desktop]# pwd
/root/Desktop

pwd:查看看当前路径地址

[root@localhost ~]# cd Desktop
[root@localhost Desktop]# cd ..
[root@localhost ~]# cd /
[root@localhost /]# cd ~

cd:跳转至某个地址
cd ..:返回上一级目录
/:根目录
~:当前登录账号的属主目录

[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  Templates
Desktop          Music                 Videos
Documents        Pictures
Downloads        Public
[root@localhost ~]# dir
anaconda-ks.cfg  initial-setup-ks.cfg  Templates
Desktop          Music                 Videos
Documents        Pictures
Downloads        Public
[root@localhost ~]# ls -l
total 8
-rw-r--r--. 1 root root    0 Jun  3 15:58 123
drwxr-xr-x. 3 root root   15 Jun  3 15:58 2333
drwxr-xr-x. 3 root root   18 Jun  3 16:13 66
-rw-------. 1 root root 1894 Mar 28  2018 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun  3 15:54 Desktop
drwxr-xr-x. 2 root root    6 Mar 28  2018 Documents
drwxr-xr-x. 2 root root    6 Mar 28  2018 Downloads
-rw-r--r--. 1 root root 1922 Mar 28  2018 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Mar 28  2018 Music
drwxr-xr-x. 2 root root    6 Mar 28  2018 Pictures
drwxr-xr-x. 2 root root    6 Mar 28  2018 Public
drwxr-xr-x. 3 root root   15 Jun  3 16:17 snow
-rw-r--r--. 1 root root    0 Jun  3 15:57 snow.txt
drwxr-xr-x. 2 root root    6 Mar 28  2018 Templates
drwxr-xr-x. 2 root root    6 Mar 28  2018 Videos
ls.png
dir.png

ls:查看目录下的文件,会显示不同类型的文件的颜色
dir:查看目录下的文件,不会根据文件类型改变颜色
-l:显示文件详细信息
\color{#FF280A}{ll:等于 ls -l}
-d:查看目录自身的信息,而不再是目录中的文件信息
-a:显示所有文件和目录,包含隐藏文件和目录,包含.(当前目录)..(上级目录)
-A:显示所有文件和目录,包含隐藏文件和目录
-t:根据时间排序

-rw-r--r--. 1 root root    0 Jun  3 15:57 snow.txt
drwxr-xr-x. 2 root root    6 Mar 28  2018 Templates
lrwxrwxrwx. 1 root root 7 Mar 28  2018 /bin -> usr/bin
分段 含义
“-”文件类型 - 普通文件 d 目录 c 字符设备 s 套接字 p 管道 b 快设备 l 连接
rw-r--r-- 文件读写权限
1 对文件:文件内容被系统记录的次数 对目录:目录中文件属性的字节数
root 文件所有人
root 文件所有组
6 文件内容大小
7 Mar 28 2018 文件最后一次修改的时间
fileName 文件名
rw- | r-- | r--

r--:100 —— 4 (只读)
-w-: 010 —— 2 (只写)
--x:001 —— 1 (只可执行)

rw- r-- r--
u(所有者的权限) g(文件组员权限) o(其他人权限)
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.30.211.162  netmask 255.255.255.0  broadcast 172.30.211.255
        inet6 fe80::f590:fd0a:4fd4:59e5  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::b766:af6a:1abe:c864  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::5f45:55a0:d616:b21c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:50:df:68  txqueuelen 1000  (Ethernet)
        RX packets 43867  bytes 8170649 (7.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 690  bytes 95246 (93.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1721  bytes 192299 (187.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1721  bytes 192299 (187.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:12:20:76  txqueuelen 1000  (Ethernet)
        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

ifconfig:获取ip地址

[root@localhost ~]# ifconfig ens33 172.20.1.233

只是暂时修改 IP地址,当服务器重启后,仍然会恢复原先的设定(读取配置文件的IP)

[root@localhost ~]# ping 172.30.211.168

ping:linux下的ping命令默认是持续长ping,用Ctrl+c可强行停止
-c num:用于指定测试次数(linux下ping命令默认是长 ping,不设置该参数时,则是持续执行,直至用 Ctrl+C 强行停止)

[root@localhost ~]# clear

clear:清屏

[root@localhost Desktop]# ls
snow.txt
[root@localhost Desktop]# rm snow.txt

rm:删除文件,不能删除文件夹

[root@localhost ~]#sudo rm -rf folder
[root@localhost ~]#sudo rm -rf ?.*

sudo:使用管理员权限
-f:强制删除
-r:用于目录删除,递归删除
\color{#FF270A}{-rf:无需用户确认直接删除,可以删除文件夹,有危险}
?:通配符,标识1个字符
*:通配符,标识0 ~ n个字符

[root@localhost ~]# tree
.
├── 123
├── 2333
│   └── 1
├── anaconda-ks.cfg
├── Desktop
├── Documents
├── Downloads
├── initial-setup-ks.cfg
├── Music
├── Pictures
├── Public
├── snow.txt
├── Templates
└── Videos

10 directories, 4 files

tree:树状展示文件夹下内容

[root@localhost ~]# mkdir snow
[root@localhost ~]# mkdir d1/d2/d3/d4 -p

mkdir:创建文件夹
-p:允许创建多级目录的标识

[root@localhost ~]# rmdir snow
[root@localhost dev1]# rmdir d1/d2/d3/d4 -p

rmdir:删除文件夹,仅允许删除空目录
-p:可以删除链路上的文件夹,仅允许删除空目录

[root@localhost ~]# alias cdd1='cd /home/dev1'
[root@localhost ~]# cdd1
[root@localhost dev1]# 
[root@localhost dev1]# unalias cdd1

alias:设置别名,快捷指令
unalias:取消别名,解绑

[root@localhost dev1]# cp snow.txt d1/sn.txt
[root@localhost dev1]# tree
.
├── d1
│   └── sn.txt
├── d2
├── d3
├── d4
│   ├── d4.1
│   ├── d4.2
│   └── d4.3
└── snow.txt

7 directories, 2 files

cp:拷贝文件
cp 源文件(或文件夹,可以多个,空格隔开) 目标地址,目标地址可以是文件夹,也可以是文件名(等于复制+改名)
复制文件夹需要加 -r
-u:会判定源文件和目标文件的最后更新时间,源文件比目标文件新才会触发指令

[root@localhost dev1]# mv snow.txt d2

mv:移动,剪切,其他和复制功能一致
移动文件夹时不需要 -r

[root@localhost dev1]# vi a.txt

vi:编辑文件,如果文件不存在,则会创建一个新文件
键盘输入i键进入编辑模式-INSERT
键盘输入R键进入编辑模式-REPLACE
命令行模式:esc键开启/关闭
:q 退出
:w 保存
:w 文件名 另存为
:wq 保存并退出
:q! 强制退出
/word 光标后关键字查询 用n查询下一个
?word 光标前关键字查询 用n查询下一个,反向的
:set nu 显示行号
:set nonu 不显示行号

[root@localhost ~]# cat snow.txt
Hello World !

cat:查看文件内容
-n:显示行号
-b:显示行号,但空行不标注行号

[root@localhost ~]# more +5 -1 initial-setup-ks.cfg 
cdrom 

more:分页查看,不支持上翻
-num:显示num行,需要加在文件名前
+num:从第num行开始,需要加在文件名前
回车 下翻一行
空格 下翻一页
q 退出
Ctrl + Z 退出

[root@localhost ~]# less -N initial-setup-ks.cfg

less:分页查看,支持上翻
-N:显示行号,需要添加在less后,加在文件后无效
回车 下翻一行
空格 下翻一页
q 退出
Ctrl + Z 退出

[root@localhost ~]# head -3 initial-setup-ks.cfg
[root@localhost ~]# tail -3 initial-setup-ks.cfg 

head:显示头部行数内容,默认10行
tail:显示尾部行数内容,默认10行
-num:显示的行数
-F:tail后可加,循环读取,只要被查看的文件有更新,会将文件最新的尾部记录,实时打印在屏幕上,按下 ctrl + Z 退出循环读取状态

[root@localhost ~]# cat -n initial-setup-ks.cfg | head -15 | more -3
     1  cdrom
     2  # Use graphical install
     3  graphical

显示文件initial-setup-ks.cfg内容并显示行号 | 从头部读取15行 | 分页显示,当前显示3行
|:管道命令

[root@localhost dev1]# find ./ -iname msg-20250301.log
./msg-20250301.log
[root@localhost dev1]# find ./ -iname '*0301.log'
./msg-20250301.log

find:查找文件或目录
-iname:-i忽略大小写 -name指定文件名(可以用通配符进行模糊查找)

[root@localhost ~]# grep -in network anaconda-ks.cfg 
16:# Network information
17:network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
18:network  --hostname=localhost.localdomain
56:@network-file-system-client
57:@networkmanager-submodules

grep:在文件中查找内容
-in:-i忽略大小写 -n显示行号
-v:反向查找,显示关键字不存在的行内容
-A num:(After)匹配到搜索行 + 下面 num 行
-B num:(Before)匹配到搜索行+上面 num 行
-C num:(Center)匹配到搜索行 + 上下各 num 行

[root@localhost ~]# tar -czvf myfile.tar.gz snow snow.txt 2333
[root@localhost myfolder]# tar -xzvf myfile.tar.gz 

tar:打包
-czvf:打包并压缩文件,结果文件名常以 .gz结尾表示(若只打包,则结果文件常以 .tar结尾表示)。用 gzip方式压缩并打包
-xzvf:解压解包文件
-c:将文件打包
-x:将文件解包
-v:打包过程中,显示被打包的文件或目录清单
-f:必须是最后一个选项,后面接要打包后的文件名
-z:用gzip算法压缩,生成 .tar.gz 文件
-j:用 bzip2算法压缩,生成 .tar.bz2 文件
tar -czvf 打包名 被打包的文件
tar -xzvf 被解压的文件
-C:(解压到的)目标路径

[root@localhost ~]$ zip snow mytar.tar
  adding: mytar.tar (deflated 97%)
[root@localhost ~]$ unzip snow.zip 

zip:压缩文件至zip归档文件中
zip 压缩后的文件名 被压缩的文件
unzip:解压缩

[root@localhost root]# chmod u=rwx,g=rwx,o=rw- anaconda-ks.cfg 

chmod:权限修改
rwx:r读-4 w写-2 x执行-1
用-标识无对应权限

也即单一组属性如果是 rwx: 111 > 4+2+1 = 7;如果是 rw-: 110 > 4+2+0 = 6;如果是 ---: 000 >0+0+0 = 0
chmod 777 ... 所有人 (u,g,o) 拥有所有权限 (rwx)
chmod 760 ... 所有者(rwx),所属组(rw-),其他人(---)

u:所有者
g:所有者所在的群组
o:其他用户
a:所有用户

[root@localhost ~]# type cd
cd is a shell builtin
[root@localhost ~]# man cd

type:显示命令存放地
man:显示命令详细信息
内部命令:显示为 ... a shell builtin
外部命令:显示该程序实际存放的地址 (/usr/bin...)

[root@localhost ~]# su snow
[snow@localhost root]$ exit
exit
[root@localhost ~]#

su:切换用户
exit:返回上一个用户账号

[root@localhost home]# id dev1
uid=888(dev1) gid=888(mygroup) groups=888(mygroup),889(mygroup2)

id:显示用户信息
id 用户名

[root@localhost home]# useradd snow

useradd:创建新用户

[root@localhost home]# userdel -r snow

userdel:删除已存在的用户
-r:将该账号的主目录以及邮件文件一并删除(不加参数-r,则仅删除账户,所以一般都需要)

[root@localhost ~]# shutdown -h 10
[root@localhost ~]# shutdown -h 12:00

shutdown:关机
-h:时间,指定时间或延时关机 + n 分钟
-c:未关机前,可以取消之前的shutdown设定
-r:重启

[root@localhost home]# poweroff 

poweroff:关机

[root@localhost home]# reboot

reboot:重启

[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 593580   2116 547120    0    0   453     9  189  330  2  2 95  0  0

vmstat:查看整个系统的资源占用情况

[root@localhost ~]# netstat

netstat:显示网络状况
-t:显示TCP协议相关信息
-lnp:用于显示网络连接状况,还可以显示PID和程序名
-an:用于显示网络连接状况
-a:显示所有连线中的scoket
-n:直接使用IP地址,而不通过域名服务器
-l:显示监控中的服务器socket
-p:显示正在使用socket的程序识别码和程序名称

[root@localhost ~]# ps -aux | head -10

ps:显示系统此刻运行中的进程信息
-aux:列出目前所有的正在内存当中的程序(可查看cpu和内存的占用百分比)
-a:所有进程
-u:显示用户
-x:列出所有tty进程,tty是当前所使用的虚拟终端
-e:所有进程,与a略有区别
-f:完整显示进程信息

[root@localhost ~]# kill 233

kill:停止或杀死进程
kill PID:杀进程慢,但安全
kill -9 PID:强制终止进程(更常用。速度快,可能导致程序异常)

[root@localhost ~]# top
top - 15:15:07 up 1 day, 20:03,  3 users,  load average: 0.02, 0.02, 0.05
Tasks: 184 total,   1 running, 183 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 s
KiB Mem :  1867024 total,    74088 free,   745004 used,  1047932 buff/cache
KiB Swap:  2097148 total,  2097024 free,      124 used.   881872 avail Mem 

top:动态实时监控进程所占系统的资源,3秒刷新一次
load average:(1, 5, 15分钟内)系统平均负载
Tasks:进程数情况
Cpu:使用情况
Mem:内存使用情况
Swap:交换分区使用情况
top -p 进程号1,进程号2,...:监控查看指定程序/命令的资源消耗情况

[root@localhost ~]# free -mt
              total        used        free      shared  buff/cache   available
Mem:           1823         727          72          18        1023         861
Swap:          2047           0        2047
Total:         3871         727        2120

free:查看整个系统内存使用情况
-mt:用MByte为单位,并显示总计数值
-b:以字节为单位
-k:以KByte为单位
-m:用MByte为单位
-t:显示 total (总计)

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  7.0G   11G  41% /
devtmpfs                 897M     0  897M   0% /dev
tmpfs                    912M     0  912M   0% /dev/shm
tmpfs                    912M   18M  895M   2% /run
tmpfs                    912M     0  912M   0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M  18% /boot
tmpfs                    183M  4.0K  183M   1% /run/user/42
tmpfs                    183M   32K  183M   1% /run/user/0
tmpfs                    183M     0  183M   0% /run/user/1000

df:查看系统磁盘空间的占用情况
-h:以易读(容量单位)的方式显示容量 (K, M, GB等)

[root@localhost ~]# yum remove tree
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be erased
--> Finished Dependency Resolution
base/7/x86_64                                                                   | 3.6 kB  00:00:00     
extras/7/x86_64                                                                 | 2.9 kB  00:00:00     
updates/7/x86_64                                                                | 2.9 kB  00:00:00     

Dependencies Resolved

=======================================================================================================
 Package              Arch                   Version                       Repository             Size
=======================================================================================================
Removing:
 tree                 x86_64                 1.6.0-10.el7                  @base                  87 k

Transaction Summary
=======================================================================================================
Remove  1 Package

Installed size: 87 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : tree-1.6.0-10.el7.x86_64                                                            1/1 
  Verifying  : tree-1.6.0-10.el7.x86_64                                                            1/1 

Removed:
  tree.x86_64 0:1.6.0-10.el7                                                                           

Complete!
[root@localhost ~]# tree
bash: tree: command not found...
[root@localhost ~]# yum install tree -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.qlu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================
 Package              Arch                   Version                        Repository            Size
=======================================================================================================
Installing:
 tree                 x86_64                 1.6.0-10.el7                   base                  46 k

Transaction Summary
=======================================================================================================
Install  1 Package

Total download size: 46 k
Installed size: 87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                                                    |  46 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : tree-1.6.0-10.el7.x86_64                                                            1/1 
  Verifying  : tree-1.6.0-10.el7.x86_64                                                            1/1 

Installed:
  tree.x86_64 0:1.6.0-10.el7                                                                           

Complete!

yum:(在线)联网安装
-y:对所有问题都回答 “yes”,不弹出是否确认安装提示框
常见的子命令
rpm:离线安装
-qa:查询当前主机所有已安装的rpm包
-ivh:安装指定的rpm包
-i:安装指定的 rpm包
-v:显示安装细节
-h:显示安装进度
-a:查看所有 rpm包
-q:使用询问的模式(遇上任何问题,rpm都会询问用户先)
-e:卸载已安装的 rpm包

[root@localhost ~]# systemctl 

systemctl:列出正在运行中的服务及其状态
systemctl start/stop/status/restart 服务名d —— 启动/停止/查看状态/重启 xxx服务

[root@localhost ~]# systemctl start firewalld

启动防火墙

[root@localhost ~]# systemctl stop firewalld

关闭防火墙

[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-06-05 18:44:20 CST; 1 day 21h ago
     Docs: man:firewalld(1)
 Main PID: 738 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─738 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Jun 05 18:44:19 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 05 18:44:20 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: ICMP type 'beyond-scope' is not sup...6.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: beyond-scope: INVALID_ICMPTYPE: No ...e.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: ICMP type 'failed-policy' is not su...6.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: failed-policy: INVALID_ICMPTYPE: No...e.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: ICMP type 'reject-route' is not sup...6.
Jun 05 18:44:20 localhost.localdomain firewalld[738]: WARNING: reject-route: INVALID_ICMPTYPE: No ...e.
Hint: Some lines were ellipsized, use -l to show in full.

查看防火墙状态

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce 

setenforce:更改工作模式 需要在root下执行
0:切换成 permissive(宽容模式),临时关闭内核防火墙,无需重启机器,重启后会重置
1:切换成 enforcing(强制模式)
getenforce:查看当前模式

[root@localhost html]# wget  -O pic.jpg https://k.sinaimg.cn/n/news/transform/310/w710h400/20230605/6dff-f00adf586b8a396bfb3ef7ddcf815435.jpg/w160h90z1l50t1q70f19de.jpg

wget http://www.xxxx.com/file:从网站下载文件到本地

上一篇下一篇

猜你喜欢

热点阅读