Linux basics

Linux内核网站:The Linux Kernel Archives

Centos下载:Index of /centos/ (163.com)阿里云开源镜像站资源目录 (aliyun.com)

分区:引导分区1G、交换分区与内存相同、根分区。

文件目录

bin:存放常用的指令

boot:系统启动时用到的文件

dev:把硬件映射成文件

etc:配置文件

home:存放普通用户的目录

lib:系统启动所需的动态连接共享库

lost+found:非法关机后产生的文件

media:识别的设备如U盘

mnt:临时挂载别的文件系统

opt:安装额外软件的存放位置,压缩包

proc:系统内存映射,获取系统信息

root:root用户的文件

sbin:管理员使用的管理命令

selinux:安全子系统,控制程序访问权限

srv:服务启动后需要的数据

sys:linux2.6内核中的文件系统sysfs

tmp:临时文件

usr:安装的应用的目录

usr/local:安装软件的目录,解压后的文件

var:存放不断扩充的文件,日志文件

连接服务器

使用Xshell软件连接服务器,使用Xftp软件上传下载服务器文件。

Xshell、Xftp:

新建连接,输入服务器主机ip,连接,接受并保存,输入用户名和密码。

文本编辑

vi:文本编辑器

vim:vi的增强版,代码补全,文字颜色。

模式

正常模式

默认,可以使用删除复制粘贴。

插入模式(编辑)

按i,I,o,O,a,A,r,R,其中一个可以进入编辑模式。

命令行模式(输命令)

按Esc,再输入冒号:,再输入wq并按回车,表示写入并退出。输入:q表示退出。输入:q!表示不保存并强制退出。

可以使用读取、存盘、替换、退出、显示行号等。

命令

拷贝当前行:yy 拷贝当前行并往下总共3行:3yy 粘贴:p

删除当前行:dd 删除当前行并往下总共3行:3dd

查找:输入正斜杠/,输入查找的内容并按回车,按下按键n查找下一个

显示行号:输入:set nu并回车 不显示行号:输入:set nonu

回到顶部首行:按下按键gg 回到尾部末行:按下按键大写的G

撤销操作:按下按键u

跳转到指定行:输入行号并按下按键大写的G

移动光标:hjkl(左下上右) 移动光标次数:输入次数并按下hjkl

上一页:Ctrl+b ,下一页:Ctrl+f ,向上半页:Ctrl+u ,向下半页:Ctrl+d

移动光标到非空格的下一列:+ ,移动光标到非空格的上一列:-

光标向后移动指定次数:输入次数并按下空格

光标移动到一行的前面:数字0 ,光标移动到一行的后面:$

光标移动到第一行的开头:H ,光标移动到屏幕中央那一行的开头:M ,光标移动到屏幕最下方那一行的开头:L ,光标移动到最后一行:G

image-20220426102234546

删除前面的字符:按下按键X ,删除后面的字符:按下按键x

image-20220426102500023

image-20220426102557571

image-20220426102611004

image-20220426102721002

关机

立刻关机:shutodown -h now 或者 halt ,1分钟后关机:shutdown -h 1 "提示信息" , 重启: shutdown -r now 或者 reboot

把内存的数据同步到磁盘:sync

用户

切换账号:su - 用户名 ,权限高的用户切换权限低用户不需要输入密码 ;注销用户:logout(运行级别3有效)

添加用户:useradd 用户名,默认该用户的目录在home/用户名 ;创建指定目录的用户:useradd -d /home/user/test 用户名

修改用户的密码:passwd 用户 ,显示当前用户所在的目录:pwd

删除用户并删除用户的目录:userdel -r xxx , 删除用户不删除用户的目录:userdel xxx

查看用户信息:id 用户名 ,查看当前登录的用户:who am i

用户组

查看文件的所有者和所在的组:ls -ahl 文件名或者ll 文件名, 修改文件的所有者:chown 用户名 文件名 ,修改文件所在的组:chgrp 组名 文件名 , 修改多级目录所在的组:chgrp -R 组名 目录名

创建组groupadd 组名 ,删除组groupdel 组名 ,添加用户时直接分配指定的组useradd -g 组名 用户名

修改用户的组usermod -g 组名 用户名 , 修改用户登录的初始目录:usermod -d 目录名 用户名

image-20220426114007763

实用命令

根据名称匹配显示目录下的文件:ls -l *sh,查看以sh结尾的文件;

显示目录的详细信息文件大小用M显示:ls -lh

显示当前的日历信息:cal

创建一个空文件:touch 文件名

查看ip:ifconfig

运行级别

centos7之前运行级别在/etc/inittab文件中,

0:关机,1:单用户(找回丢失的密码),2:多用户状态没有网络服务,3:多用户状态有网络服务, 4:系统未使用 保留给用户,5:图形界面,6:系统重启

切换指定的运行级别:init 运行级别 ,查看当前的运行级别:systemctl get-default , 设置开机默认的运行级别3为多用户:systemctl set-default multi-user.target ,运行级别5图形界面:systemctl set-default graphical.target

单用户级别找回root密码,

帮助指令

man获得帮助信息:man ls , 查看ls命令的帮助信息;

help获得shell内置命令的帮助信息:help cd ,查看cd命令的帮助信息;

文件目录

查看当前目录的绝对路径:pwd

显示当前目录所有的文件和目录包括隐藏的:ls -a ,以列表的方式显示信息:ls -l ,可以组合使用ls -la

回到当前用户的家目录:cd ~ ,root用户的家目录在/root ,其他用户的家目录在/home/用户名 ;回到上一级目录:cd ..

创建目录:mkdir /目录名,创建多级目录:mkdir -p /目录名/目录名 , 删除空的目录:rmdir /目录名 , 删除非空的目录:rm -rf /目录名 ,创建一个空文件:touch 文件名

拷贝文件到指定目录:cp 文件名 指定目录 ,递归复制整个文件夹到目标目录:cp -r 目录 目标目录 ,递归复制整个文件夹到目标目录并强制覆盖:\cp -r 目录 目标目录

删除文件或目录:rm 文件名 , 递归删除整个文件夹:rm -r 文件夹 , 强制删除不提示:rm -f 文件夹

重命名:mv 旧名字 新名字 ,移动文件:mv 文件名 目标目录 ,移动目录:mv 目录 目标目录

查看文件的内容:cat 文件名 , 显示行号:cat -n 文件名 ;使用管道命令查看:cat 文件名 | more

管道命令:把结果交给下一个命令处理;使用more查看指定的文件:more 文件名 ,more指令查看时的快捷键:空格表示向下翻一页,回车表示向下翻一行,q表示离开more,Ctrl+f表示向下滚动一屏,Ctrl+b表示返回上一屏,=表示输出当前的行号,:f表示输出文件名和当前的行号。

根据显示需要加载内容:less 文件名 , 适合查看大型文件;less指令的快捷键:空格表示向下翻一页,pagedown向下翻一页,pageup向上翻一页,/字符串 表示向下查找字符串 按n向下查找 按N向上查找,?字符串 表示向上查找字符串 … ,q表示离开less。

输出内容到控制台:echo 内容 , 输出环境变量的值:echo $PATH,$HOSTNAME

显示文件的前几行,默认10行:head 文件名 , 显示文件的前5行:head -n 5 文件名 , 显示文件末尾的5行:tail -n 5 文件名 ,实时追踪文件的所有更新:tail -f 文件名

输出重定向>:echo "abc" > a.txt , 将原本要输出在控制台的内容输出到a.txt文件中(覆盖a.txt文件)。追加到a.txt文件中:ls -l >> a.txt ,将列表的目录信息内容追加到a.txt文件的末尾(追加到a.txt文件)。如果a.txt文件不存在则会自动创建。

创建软链接也叫符号链接:ln -s 原文件或目录 软链接名 , 与win系统的快捷方式类似;删除软链接:rm 软链接名

查看已经执行过的历史命令:history ,查看最近10条历史命令:history 10 ,执行历史命令对应编号的指令:!编号

时间日期

显示当前的时间:date ,显示当前年份:date +%Y , 显示当前月份:date +%m , 显示当前是哪一天:date %d ,显示年月时分秒:date "+%Y-%m-%d %H:%M:%S"

设置系统当前时间:date -s "2020-01-01 01:01:01" , 查看当前日历:cal , 查看2000年的日历:cal 2000

查找

根据文件名查找文件:find 查找目录 -name 文件名 , 根据文件归属者查找:find 查找目录 -user 用户名 , 根据文件大小查找大于10M的文件:find 查找目录 -size +10M ;文件大小表示:+10M大于,-10M小于,10M等于;单位:k,M,G。

快速定位文件位置:首先执行updatedb指令创建locate数据库,然后使用locate指令自动从数据库中查找:locate 文件名

查看某个指令在哪个目录下:which ls , 查看ls指令在哪个目录。

查找文件中的字符:grep 字符串 文件名 , 查找匹配后显示行号:grep -n 字符串 文件名 ,查找匹配忽略大小写:grep -i 字符串 文件名 , 使用管道符查找:cat 文件名 | grep 字符串

压缩

压缩文件:gzip 文件 , 解压文件:gunzip 文件 ,压缩为.gz文件,

递归压缩文件夹或者文件:zip -r 压缩后的文件名.zip 压缩的文件夹 , 解压文件:unzip -d 解压后的目录 压缩文件名.zip

打包文件:tar -zcvf 打包后文件名.tar.gz 打包的文件1 打包的文件2 ,解压文件:tar -zxvf 文件名.tar.gz , 解压到指定的目录:tar -zxvf 文件名.tar.gz -C 解压后的目录 ; -选项:-c表示产生.tar打包文件,-v表示显示详细信息,-f表示指定压缩后的文件名,-z表示打包同时压缩,-x表示解包.tar文件。

权限

image-20220426172225408

最前面0-9位表示的含义说明:第0位表示文件的类型(-:普通文件,l:链接文件,d:目录,c:字符设备文件如鼠标键盘,b:块设备如硬盘),第1-3位表示所有者的权限(r:读,w:写,x:执行),第4-6位表示所属组的权限,第7-9位表示其他用户的权限。

(421)rwx:r表示可以读取、查看r文件,可以读取查看r目录内容;w表示可以修改w文件但是不能删除,删除w文件必须要文件所在w目录的权限,可以重命名w目录名字,创建、删除w目录内文件;x表示可以执行x文件,可以进入x目录修改x目录内的文件。

后面的1或者2表示文件的个数或者目录中文件的个数 , 第一个root为文件的所有者,第二个root为文件的所在组 ,后面的14表示文件的大小 , 后面表示最后修改的日期 , 最后面是文件名。

u:所有者,g:所有组,o:其他人,a:所有人(u,g,o)

修改权限:chmod u=rwx,g=rwx,o=rx 文件名或目录名 , 添加权限:chmod o+w 文件名或目录名 , 删除权限:chmod a-x 文件名或目录名 ,第二种方式使用数字修改权限:chmod 777 文件名或目录名

所有者

修改文件的所有者:chown 用户名 文件名或目录名 , 修改文件的所有者和所在组:chown 用户名:组名 文件名或目录名 , 修改多级目录的所有者:chown -R 用户名 目录名

定时任务

网络配置

设置静态ip

修改文件/etc/sysconfig/network-scripts/ifcfg-ens33 , 修改内容:

DEVICE=eth0 # 接口名(设备、网卡)
HWADDR=00:0C:2x:6x:0x:xx #MAC地址
TYPE="Ethernet" # 网络类型(通常是Ethernet)
UUID=098908-8900-sd90-9fds09 #随机id
#系统启动的时候网路接口是否有效(yes/no)
ONBOOT=yes
#IP的配置方法[none|static|abootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
BOOTPROTO=static
#ip地址
IPADDR=192.168.200.110
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2

生效:service network restart或者重启reboot

设置主机名

查看主机名:hostname , 修改主机名文件:/etc/hostname ,修改好后重启

主机名映射ip

修改windows文件C:\Windows\System32\drivers\etc , 添加192.168.xx.xx 主机名 ,访问主机名时会访问对应的IP。

查看DNS域名解析缓存:ipconfig /displaydns

手动清理DNS缓存:ipconfig /flushdns

Snipaste_2022-05-02_23-29-33.png

rpm

查询已安装的rpm列表:rpm -qa , 管道过滤查询已安装的包名:rpm -qa | grep 包名

名字中属性的含义:i686或i386表示32位系统,x86_64表示64位系统,noarch表示通用。

查询是否安装了某个软件包:rpm -q 软件包名

1. 文件与文件夹操作

1.1 创建文件夹

mkdir 命令, 必须目标文件夹的父文件夹都存在, 否则执行不成功.

mkdir /zichen
[root@MyCentOs7 /]# mkdir /zichen2/1
mkdir: cannot create directory ‘/zichen2/1’: No such file or directory

mkdir -p 命令, 强制创建.

mkdir -p /zichen2/1

1.2 创建文件

touch、vi、echo命令用于创建文件.

touch /zichen/1.txt

批量创建文件: 第1个数表示起始, 第2个数表示结束, 第3个数表示步长.

[root@MyCentOs7 zichen]# touch /zichen/{1..4..1}.mp3
[root@MyCentOs7 zichen]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 31 16:13 1.txt
-rw-r--r-- 1 root root 0 Aug 31 16:14 2.mp3
-rw-r--r-- 1 root root 0 Aug 31 16:14 3.mp3
-rw-r--r-- 1 root root 0 Aug 31 16:14 4.mp3

vi 和 vim 命令打开一个不存在的文件, 就会创建该文件.

vi 命令, :wq 保存并退出.

[root@MyCentOs7 zichen]# vi 3.mp4

echo 命令在屏幕上打印信息, 结合 > 和 >> 就会创建文件.

echo 命令, >表示覆盖, >> 表示追加.

[root@MyCentOs7 zichen]# echo Hello World!
Hello World!
[root@MyCentOs7 zichen]# echo Hello World! > 2.txt

1.3 删除文件夹

rm 命令, 参数 -r 表示递归删除, 参数 -f 表示强制删除不会提示是否删除, 禁止使用: rm -rf /* 表示删除系统所有文件.

[root@MyCentOs7 /]# rm -r /zichen2/
rm: descend into directory ‘/zichen2/’? y
rm: remove directory ‘/zichen2/1’? y
rm: remove directory ‘/zichen2/’? y

1.4 删除文件

[root@MyCentOs7 /]# rm /zichen/1.txt 
rm: remove regular empty file ‘/zichen/1.txt’? y

1.5 切换目录

cd 命令,

进入当前目录下的 zichen 目录;

返回上一级目录;

进入根目录下的 zichen 目录, zichen 目录下的 1 目录;

返回上一级目录, 再返回上一级目录.

[root@MyCentOs7 /]# cd zichen
[root@MyCentOs7 zichen]# cd ..
[root@MyCentOs7 /]# cd /zichen/1
[root@MyCentOs7 1]# cd ../../
[root@MyCentOs7 /]# 

1.6 复制粘贴文件夹

cp 命令.

[root@MyCentOs7 b]# cp -a /zichen/b /zichen2/

1.7 复制粘贴文件

cp 命令, 复制根目录下的 zichen 文件夹中的文件 1.txt , 粘贴到根目录下的 zichen2 文件夹中.

[root@MyCentOs7 zichen]# cp /zichen/1.txt /zichen2/
[root@MyCentOs7 zichen]# ll /zichen2
total 0
-rw-r--r-- 1 root root 0 Aug 31 16:45 1.txt
[root@MyCentOs7 zichen]# 

复制文件并重命名文件名, 复制根目录下的 zichen 文件夹中的文件 2.txt , 粘贴到根目录下的 zichen2 文件夹中, 并重命名为 new.txt 文件.

[root@MyCentOs7 zichen]# cp /zichen/2.txt /zichen2/new.txt
[root@MyCentOs7 zichen]# ll /zichen2/
total 4
-rw-r--r-- 1 root root  0 Aug 31 16:45 1.txt
-rw-r--r-- 1 root root 46 Aug 31 17:17 new.txt
[root@MyCentOs7 zichen]# 

将目录下所有文件复制到其他目录下, 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

[root@MyCentOs7 3]# cp -r /zichen/* /zichen2/3/

1.8 查看当前工作目录

pwd 命令.