Linux 新手应掌握的 10 个基本命令有哪些?

本文详细介绍了Linux的基础知识,包括学习Linux的原因、用户目录结构、用户管理(如用户类型、创建、修改和删除)、文件属性、权限控制、路径操作、目录操作、文件编辑工具、文件打包压缩、系统命令、磁盘管理和软件安装方法。
摘要由CSDN通过智能技术生成

一.学习思考

1.学习linux有啥用?为啥学?

  • 因为大部分公司都在用,在这上面开发运行,你必须学。

  • 学习linux更加安全高效,能更好的防止网络攻击,可以更好的转行网络安全,嵌入式,运维等岗位。

  • 能帮你回顾以前的知识,计算机网络,计算机组成原理

2.linux的思考

二、linux基础

1.用户目录结构

#cd是切换路径
cd ..     ----------代表返回根目录
cd -      ----------代表返回

bin  -------放的是一些二进制文件
boot -------放的是启动linux系统的一些二进制文件
dev  -------外部设备连接
etc  -------系统管理所需配置文件
home -------用户目录
lib  -------动态文件共享库
media-------自动识别外部设备并提供cd挂载的文件
mnt  -------系统提供的一个外部设备临时挂载文件
opt  -------给主机安装额外软件包的放置目录
proc -------虚拟文件系统
root -------系统管理员信息存放路径
run  -------系统运行过程中产生的一些运行文件
sbin -------超级用户的二进制文件
srv  -------service,表示服务启动之后需要提取的数据
sys  -------对于进程处理所需要的文件系统
tmp  -------临时文件存储
usr  -------应用程序存放路径
var  -------不断扩展的数据,比如日志

2.liunx用户和用户组

2.1 基本用户类型

MYSQL 用户:mysql用户可能在执行sql查询语句

ROOT用户: 查看系统日志,对系统进行操作

FTP用户:ftp用户可能上传软件到服务器

2.2 用户相关命令

2.2.1 增加用户
useradd 选项 参数
-d 指定用户的家目录
-e 账户到期时间
-u 用户指定UID
-g 指定一个初始用户组
-G 指定一个或者多个拓展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认shell解释器

#创建一个uid=8888,放在/home/linux目录下的叫百战的用户
cd /home
useradd -d /home/linux -u 8888 baizhan
ll

#查看创建用户的标签
id 用户名
id baizhan

2.2.2 修改用户参数
usermod 选项 参数
-c 修改用户备注
-d 修改用户登入时的目录
-e 修改账号的有效期限
-f 修改密码过期后多少天即关闭该账号
-g 修改用户所属群组
-G 修改用户所属的附加群组
-l 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登录后使用的shell
-u 修改用户ID
-U 解除密码锁定

#修改baizhan的用户id
usermod -c '没交钱' -u 1001 baizhan

2.2.3 用户密码操作
passwd 选项 参数
-d 删除密码,仅有系统管理者才能使用
-f 强制执行
-k 设置只有在密码过期失效后,方能更新
-l 锁住密码
-s 列出密码的相关信息,仅有系统管理者才能使用
-u 解开已上锁的账号

#创建相应的密码,并删除
passwd baizhan
passwd -d baizhan

2.2.4 删除用户
userdel 选项 用户名
-f 强制删除用户
-r 同时删除用户及用户家目录

#删除baizhan用户
userdel -rf baizhan

2.3 用户组相关命令

2.3.1 添加新组
groupadd 选项 参数
-g 指定新建工作组的id
-r 创建系统工作组,系统工作组的id小于500
-K 覆盖配置文件
-o 允许添加组id号不唯一的工作组

#添加一个新的web组
groupadd -g 334 web

2.3.2 修改群组
groupmod 选项 参数
-g 设置想要使用的群组id码
-o 重复使用群组识别码
-n 设置想要使用的群组名称

#修改群组的id号和名称
groupmod -g 506 -n web java2

2.3.3 删除群组
groupdel java2

2.4 超级,伪及普通用户

2.4.1 定义:

超级用户(uid=0)管理一切权限

普通用户(uid在500-6000)

伪用户(uid在1-499)

2.4.2 切换用户权限
#root管理员目录下创建一个文件,普通用户是没有办法进行修改的,su来转换用户权限
vim a.info
su baizhan
cat a.info

#修改用户配置文件,提升用户权限,由root管理员颁发相应管理权限
su root
visudo
之后回车,找到99行,用:set nu 开启序号,方便查找,之后:set nonu 关闭序号
sudo rm -rf a.info

#设置免密登录
visudo --------------找到baizhan ALL=NOPASSWD: ALL

3. 文件的基本属性

3.1 查看文件及属性

#01-----------------查看目录下所有文件
ls 参数
-a 显示所有文件及目录
-l 除文件名外,把文件形态,权限,拥有者,文件大小等
-r 讲文件以相反次序显示(按照英文字母依次列出)
-t 将文件依照建立时间先后次序列出
-A 同a,但是不列出当前目录及父目录
-F 在列出的文件名加一符号,比如 *,/
-R 若目录下有文件,则以下文件都按照序列列出

#例子
ls -a
ll
ls -l


#02-----------------正倒序查看文件内容
#正序查看文件 cat 文件名
cat -A 可列出一些特殊字符而不是空白而已
cat -b 列出行号,仅针对非空白行做行号显示
cat -E 将结尾的断行字节$显示出来
cat -n 列印出行号,连同空白行也会有相应的行号
cat -T 将tab按键以^|显示出来
cat -v 列出一些看不出来的特殊字符
例子:cat a.info



#倒序查看文件 tac 文件名
例子:tac a.info



#查看文件并显示相应行号 nl 文件名 
- b 指定行号的指定方式,有如下两种
-ba  无论是否空行,都列出相应序号
-bt  如果有空行,空行的哪一行不列出来
-n 列出行号表示的方法有如下三种
-n ln  行号在荧幕的最左方显示
-n rn  行号在自己栏位的最右方显示,且不加0
-n rz  行号在自己栏位的最右方显示,且加0

例子:nl a.info



#分页查看文件内容  more 文件路径
空格键为下一页
enter 为下一行
/ 字符串 搜索字符串
:f  显示文档名及目前的行数
q 代表立即离开more,不再显示该文件内容
b 代表往回翻页

例子:more a.info



#搜索功能的分页查看 less 文件名
空白键   向下翻动一页
pgdn     向下翻动一页
pgup     向上翻动一页
/ 字符串 向下搜寻字符串
? 字符串向上搜寻字符串
q  离开当前程序
n  重复前一个搜寻
N  反向重复前一个搜寻

#查看文件的头部几行  head  -n 3 a.info
#查看文件的尾部几行  tail  -n 3 a.info

3.2 文件基本类型

普通文件 -开头 数据程序等信息文件

目录文件 d开头 目录文件

链接文件 i开头 在不同文件系统中建立链接联系

设备文件 c开头 设备挂载文件

管道文件 p开头 进程间传递数据的

rw-r--r--代表文件权限(有9位,3个为一组,1-3代表所属创建者的权限,3-6代表文件所属组有何权限,6-9代表其他用户能操作的权限,r代表读,w代表写,x代表执行,-代表没有),除了第一位-

cd /opt
ll

3.3 linux 权限字与权限操作

对于文件的不同层级的权限,都是可以更改的,下面来学习一下,主要对应的是创建者权限(0-3),组内权限(3-6),其他普通用户权限(6-9)

chgrp:改变文件所属组-------命令:chgrp -R 所属组名 改的文件名

#想要改变文件所属组,想要把a.info的用户组从baizhan改成java
-rw-rw-r--. 1 baizhan baizhan 9 Aug 10 04:57 a.info

chgrp -R java a.info

chown:改变文件所有者

改变文件拥有者命令:chown -R 属性名:所属组 文件名

把baizhan的文件改成baizhan2所属

sudo chown -R baizhan2 a.info

chmod:改变文件的属性

chmod u(创建用户)或者g(组)或者o(普通用户) +或者-或者= r,w,x 文件目录

#想要改变java这个组在a.info的权限
加减法
chmod g+w a.info
ll

数字法
r:4 w:2 x:1
比如要改成 rw- rwx rw-
rw-=4+2+0=6
rwx=4+2+1=7
rw-=4+2+0=6

chmod 676 a.info

+-=来改变文件的属性权限

4.linux路径

4.1绝对路径

以/进行分割

cd /usr/local/
cd ./test.info

4.2 相对路径

以. .. ~来进行分割

cd .        当前用户所在目录
cd ..       上一级目录
cd ~        返回根目录
 cd -       返上次目录
cd ../..    返回上两级目录

5.目录相关操作

5.1 显示当前目录(特别详细)

显示当前目录的详细绝对路径
pwd -P

5.2 创建新目录

mkdir -m -p 目录名称

-m 配置文件的权限,直接配置

-p 帮助你直接将所需目录递归创建,能帮你创建原先没有的a/b/c/d目录形式的文件

mkdir -p  a/b/c/d  

5.3 删除空目录

rmdir -p a/b/c/d

5.4 复制目录

cp 复制的文件 复制文件到的目标路径

-r代表递归复制,带目录的

cp a.info a/b/c/d

cp -r ./a.info a/b/c/d

5.5 删除目录

rm -r -f 文件或者目录

-r 递归删除,适用于目录

-f 强制删除

rm -rf ./a.info

5.6 移动或者重命名目录

mv -i -f -u 文件 移动到目标文件路径

-f 强制移动

-i 文件存在,询问是否覆盖

-u 更新文件

mv -if bashrc mvtest

6. 文件编辑工具

vim基本编辑模式

6.1 命令模式

vim 文件名 
vi 文件名
vi和vim区别在于vim支持shell这种脚本语言
不能进行编辑
有快捷键能进行一些操作
dd    删除(剪切)光标所在的整行
5dd  删除(剪切)光标处开始的5行
yy    复制光标所在的整行
5yy  复制从光标处开始的5行
n     显示搜索命令定位到下一个字符串
N    显示搜索命令定位到上一个字符串
u     撤销上一步操作
p     将之前删除d或者复制yy过的数据粘贴到光标之后
G    文本最后面
gg   文本开始
shift+^  移动到行头
shift+$  移动到行尾
x            删除字符

6.2 输入模式

i a o 任意键可进入输入模式

6.3 底线命令模式

:
进入底线命令模式
:wq 保存退出
:w 保存
:q 退出
:q! 强制退出
:wq!强制保存退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two
: s/one/two/g 将当前光标所在行的所有one替换成two
: %s/one/two/g 将全文中的所有one替换成two
?搜索字符 搜索相应字符
/ 搜索字符 搜索相应字符

7.打包压缩与搜索命令

7.1 文件打包压缩

tar 选项 文件
-c  产生.tar打包文件
-v  显示详细信息
-f   指定压缩后的文件名
-z  打包同时压缩Gzip
-x 解包.tar文件

例子:打包a.info ,baizhan, error.log这三个文件成test.tar.gz
tar -zcvf  test.tar.gz a.info baizhan error.log

#解压缩,并且用-C 文件路径 来把文件解压到目标路径
tar -zxvf  test.tar.gz -C /usr/local/

#对小文件进行压缩和解压
gzip a.info
gunzip a.info.gz

7.2 搜索文件

搜索文件的内容

grep 参数 查找内容 源文件
-b  将可执行文件当作文本文件来搜索
-c  仅显示找到的行数
-i  忽略大小写
-n  显示行号
-v  反向选择--仅仅列出没有关键词的行
-E 开启拓展的正则表达式

#搜索文件里面是否有a的行
grep "a" a.info


#搜索相应的文件,所属用户者,组等
find 查找路径 寻找条件 操作
-name   匹配名称
-perm   匹配权限
-user   匹配所有者
-group  匹配所有组
-mtime  匹配修改内容的时间

find ./ -name *.info
find / -name*.info

8.系统工作命令

8.1 重启,关机,下载

关于计算机系统处理的相关命令

reboot 重启系统,仅管理员来执行

poweroff 关机,仅管理员来执行

grep 参数 查找内容 源文件
-b  将可执行文件当作文本文件来搜索
-c  仅显示找到的行数
-i  忽略大小写
-n  显示行号
-v  反向选择--仅仅列出没有关键词的行
-E 开启拓展的正则表达式

#搜索文件里面是否有a的行
grep "a" a.info


#搜索相应的文件,所属用户者,组等
find 查找路径 寻找条件 操作
-name   匹配名称
-perm   匹配权限
-user   匹配所有者
-group  匹配所有组
-mtime  匹配修改内容的时间

find ./ -name *.info
find / -name*.info

8.2 系统运行状态检测

查看系统网卡
ip addr 
系统内核版本
uname -a
cat /etc/redhat-release

查看系统内存使用情况
free-h
查看系统的登录记录
last 参数

显示历史执行命令
history
查看系统负载信息
uptime
load average后面三个数值的含义是最近1分钟、最近5分钟、最近15分钟系统的负载值。这个值的意义是,单位时间段内CPU活动进程数。如果你的机器为单核,那么只要这几个值均<1,代表系统就没有负载压力,如果你的机器为N核,那么必须是这几个值均<N才可认为系统没有负载压力。

9.linux管道符,重定向,环境变量

9.1 重定向

touch baizhan 输出百战用户的详细信息

9.1.1 输入重定向
命令 < 文件         讲文件作为命令的标准输入
命令 <<分节符       从标准输入中读入,直到遇见分界符才停止
命令<文件1>文件2    将文件1作为命令的标准输入,并将标准输出到文件2

9.1.2 输出重定向
命令>文件 将标准输出重定向到一个文件中(清空原有文件的数据)
命令2>文件 将错误输出重定向到一个文件夹中(清空原有文件的数据)
命令>>文件 将标准输出重定向到一个文件夹中(追加到原有内容后面)
命令2>>文件 将错误输出重定向到一个文件夹中(追加到原有内容后面)
命令>>文件2 将标准输出与错误输出共同重定向到一个文件夹中(追加到原有内容后面)

9.2 管道符

用来连接两条命令的,以'|'作为分割,通过管道符把grep "sbin/nologin" /etc/passwd 的输出内容转入到wc-l作为输入内容

grep "sbin/nologin" /etc/passwd | wc-l

用管道符实现分页操作

ls -l /etc/ | more

可以无限加入相应的管道符来衔接命令

9.3 通配符

模糊搜索内容

*代表所有
ls -l /dev/sda*             匹配/dev/sda后面的所有字符
ls-l /dev/sda?               匹配/dev/sda后面的任意单个字符
ls -l /dev/sda[0-9]        范围在4-9内的文件
ls -l /dev/sda[^4-9]      范围不在4-9内的文件

9.4 环境变量

9.4.1 查找软件安装目录
whereis  软件名称
whereis  jdj1.8
9.4.2 查看PATH
#echo $PATH -------显示PATH设置。
#env        -------显示当前用户变量。
9.4.3 设置环境变量------登录的所有用户

打开系统环境变量编辑窗口

#打开系统环境变量编辑窗口
vim /etc/profile


#在最后插入相应系统级别环境变量

export JAVA_HOME=/usr/local/jdk1.8

export path=$path:$JAVA_HOME/bin/


#生效系统级环境变量,可以重启来实现,或者通过如下命令

source /etc/profile

echo $path

设置用户自己的环境变量---仅针对用户自己

#通过修改.profile文件:

vim ~/.profile


#添加相应系统路径
//在最后一行添上:

export PATH=/usr/local/mongodb/bin:$PATH


#使其生效

1、关闭当前终端窗口,重新打开一个新终端窗口就能生效

2、输入“source ~/.profile”命令,立即生效

有效期限:永久有效

用户局限:仅对当前用户

10.磁盘管理

磁盘用来存储文件的,linux的磁盘可以添加很多个分区来防止一坏全坏的现象,同时经常需要观察磁盘的使用情况,防止某个磁盘满了导致文件报错,有如下方式查看和添加分区。

10.1 查看与创建磁盘分区

fdisk 必要参数 选择参数

-m 查看全部可用参数
-n 添加新的分区
-d 删除某个分区信息
-l 列出所有可用的分区类型
-t 改变某个分区的类型
-p 查看分区信息
-w  保存并退出
-q   不报存直接退出

10.2 添加一个磁盘分区

先查看磁盘情况

fdisk -l

例子:给/dev/mapper/centos-root磁盘添加一个分区

fdisk  /dev/mapper/centos-root                         ------转到该磁盘下
n                                                      ------添加新的分区
p                                                      ------添加
1                                                      ------编号
+2G                                                    ------内存大小
w                                                      -----保存退出

10.3 显示磁盘容量

df 选项 目录或文件名

-a    显示所有文件系统信息
-m   以MB为单位显示容量
-k    以KB为单位显示容量
-h    使用人民习惯的容量显示方式显示容量
-T    显示该分区的文件系统名称
-i     未使用的磁盘容量来显示,与h相反

10.4 设置链接文件

链接分为硬链接和软连接

硬链接:类似于指针,既使原文件删除,依旧能获取到文件信息

软链接:类似于快捷方式,原文件删除,快捷方式失效

ln 命令

 
ln 选项 目标
选项如下:
-s    创建符号链接,不带参数默认创建硬链接
-f    强制创建文件或目录链接
-i    覆盖前先询问
-v   显示创建链接文件
例子:
cat a.info
ln -s a.info b.info
cat b.info
rm -rf a.info
cat b.info

11.软件安装

11.1 源码安装

比较繁琐,需要配置操作系统,编译参数等,不推荐

11.2 rpm安装

rpm安装软件:一个安装管理软件,帮助我们更快安装的

rpm基本安装命令格式
rpm -ivh filename.rpm          安装软件命令格式,i代表安装,v代表查看详细安装信息,h以安装信息栏显示安装进度
rpm -Uvh filename.rpm          升级软件的命令格式
rpm -e filename.rpm            卸载软件的命令格式
rpm -qpi filename.rpm          查询软件描述信息
rpm -qpl filename.rpm          列出软件文件信息
rpm -qf filename.rpm           查询文件属于那个rpm

11.3 yum 安装

基于rpm的一个在线软件管理工具,能一站式服务到位

  • 配置yum安装本地源,yum是国外网站,本地访问不方便

#找到yum源
vim /etc/yum.repos.d/CenOS-Base.repo
#备份
mv CenOS-Base.repo CenOS-Base.repo.bak
#下载阿里云源文件
wget -o CenOS-Base.repo
http://mirrors.aliyun.com/repo/CenOS-7.repo
#加载yum源
yum clean all
yum makecache
#检查是否是阿里的
cat /etc/yum.repos.d/CenOS-Base.repo
#参考yum安装手册进行相应安装操作

基础内容就到这里啦,想学习更多内容,可以进入高级篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值