admin管理员组文章数量:1538188
提示:掌握基础的Linux命令
文章目录
- 1、Linux目录介绍
- 2、 Linux系统优化
- 3、Linux终端命令格式
- 终端命令格式
- man查阅帮助信息
- 4、文件和目录常用命令
- echo 文字内容
- 重定向 > 和>>
- 管道符 |
- pwd 查看当前路径
- ls查看目录文件
- cd 切换工作路径
- 创建和删除操作
- touch创建文件
- mkdir新建目录
- rm删除文件或目录
- 拷贝和移动文件
- tree
- mv 移动和重命名
- cp复制
- 文件统计分析
- cat 查看文件内容,合并文件
- more 查看文件内容(分页查看)
- grep 过滤行
- less 按行阅读文档
- head 查看文件头,默认看10行
- tail 查看文件尾
- awk 过滤列
- cut 按列提取
- sort 排序
- du 统计文件大小
- uniq 去重
- wc 统计文件行数
- stat 查看文件的具体存储细节和时间信息
- diff 比较多个文件之间的差异
- tr 用于替换文本内容
- 文件查找
- which
- whereis
- locate
- find
- 5、系统状态检测命令
- 查看或配置网卡信息
- 测试网络连通性ping
- 查看系统负载信息
- 显示当前系统的内存使用量
- 查看当前登录主机的用户终端信息
- 调取主机的被访问记录
- 路由追踪
- 显示网络连接、路由表、接口状态等信息
- 显示执行过的历史命令
- 6、远程管理常用命令
- 关机/重启shutdown/init
- SSH远程登陆
- SCP复制文件
- Windows安装SSH服务
- 7、用户权限相关命令
- 用户和权限
- 超级用户
- 组管理命令
- 用户管理
- 创建用户/设置密码/删除用户
- 查看用户信息
- usermod
- 切换用户
- 修改文件权限
- 特殊 权限
- 粘滞位
- suid
- 8、系统信息相关命令
- 时间和日期
- 查看磁盘的空间
- 查看内核/操作系统/CPU信息
- 进程管理
- ps
- top
- kill
- pidof
- 9、 其他命令
- wget 终端下载网络文件
- history 查看历史命令
- 打包压缩
- 1、打包/解包
- 2、压缩和解压缩
- 软链接
- 10、软件管理
- ubuntu软件管理
- Centos7软件安装
- 源码安装
- rpm安装
- yum本地源
- yum网络源
- 11、vim编辑器
- 命令模式切换到输入模式
- 输入模式切换到命令模式
- 命令模式切换到末行模式
- 使用vim时ctrl+z把程序置于后台解决方法
1、Linux目录介绍
小技巧
- ctrl+shift+=放大终端窗口的字体显示
- ctrl+ - 缩小终端窗口的字体显示
- ctrl +u 清除光标前的内容
/ 操作系统的启动路径根路径
/bin--普通用户和管理员都可以执行的命令字
/sbin-只有管理员才能执行的命令 关机重启
/boot--引导主引导目录独立的分区启动菜单内核
/dev ---device设备设备文件存放目录
/etc-配置文件存放目录
/home --普通用户的家目录
/root --管理员的家目录
/media --光驱的挂载目录
/mnt --临时设备的挂载目录
/proc --里面的数据都在内存中,进程的所在目录
/tmp --临时文件存放目录
/usr ---软件的安装目录
/var ---常变文件存放目录
2、 Linux系统优化
#关闭防火墙 方式1
systemctl stop firewalld.serivce
systemctl disable firewalld.service
#关闭防火墙 方式2
firewall-cmd --set-default-zone=trusted
#关闭虚拟化
systemctl stop libvirtd.service
systemctl disable libvirtd.service
# 关闭selinux
gedit /etc/selinux/config
# 修改
SELINUX=disable
3、Linux终端命令格式
终端命令格式
command [-options] [parameter]
说明:
command
:命令名[-options]:
选项,可用来对命令进行控制,可以省略parameter
:传递给命令参数 ,可以是零个,一个,或者多个
[]
代表可选
ls pycharm
ls -l pycharm
- 开启多个终端
"""
1.右键新建窗口
2.ctrl + alt +t 在家目录下新建
3.ctrl + shift + n 在当前目录下新建
"""
man查阅帮助信息
说明:
- 查阅
command
命令使用手册
man command
快捷键 | 功能说明 |
---|---|
q | 退出使用手册 |
↑ | 向上翻一行 |
↓ | 向下翻一行 |
Pgup | 向上翻一页 |
Pgdn | 向下翻一页 |
4、文件和目录常用命令
echo 文字内容
echo
会在终端中显示参数指定的文字,通常会和重定向联合使用
echo hello
重定向 > 和>>
-
Linux允许将命令执行结果重定向到一个文件
-
将本应显示在终端上的内容 输出/追加到指定文件中
命令 | 描述 |
---|---|
> | 表示输出,回覆盖文件原有的内容 |
>> | 表示追加,会将内容追加到已有文件的末尾 |
ll -lh >> text.txt
#将ll -lh命令的输出追加到test.txt
echo HelloPython > a
管道符 |
- Linux允许将一个命令的输出 可以通过管道 作为另一个命令的输入
常用的管道命令有:
more
分屏显示内容grep
在命令执行结果的基础上查询指定文本
将左边的输出当做右边的输入
ls -lha ~ | more
ls -lha ~ | grep Do
pwd 查看当前路径
print work directory
ls查看目录文件
ls ------> list 查看当前文件夹下的内容
选项 | 含义 |
---|---|
-a | 显示隐藏文件 |
-l | 以列表的形式显示 |
-h | 以人性化的方式显示文件内容大小 |
-R | 递归显示子目录 |
cd 切换工作路径
change directory
绝对路径:
指的是在输入路径时,最前面是/或者~表示从 根目录/家目录开始的具体目录位置
相对路径:
指的是以当前目录开始,不以/或者 ~开头,表示不是根目录或家目录开始的目录
命令 | 含义 |
---|---|
cd | 命令可以改变相对路径和绝对路径 |
cd[路径] | 切换到指定路径 |
cd ~ | 切换到家目录 |
cd . | 切换到当前目录 |
cd … | 切换到上一级目录 |
cd - | 上一次工作目录切换 |
创建和删除操作
touch创建文件
- 创建文件或修改文件日期
- 如果文件不存在可以创建一个空白文件
- 如果文件已经存在,可修改文件的末次修改日期
touch 文件名
touch 文件名 文件名 touch 可以同时新建多个
sudo touch 文件名
mkdir新建目录
make directory
sudo mkdir PythonDir
sudo mkdir -p a/b/c/d 递归创建
rm删除文件或目录
remove
选项 | 含义 |
---|---|
-r | 递归删除目录下的内容,删除文件夹时必须加此参数 |
-f | 强制删除,忽略不存在文件,无需提示 |
拷贝和移动文件
tree
"""
Ubuntu下使用sudo apt-get intall tree;
Fedora和RedHat以及CentOS下使用 yum install tree。
"""
- 可以以树状图列出文件目录的结构
选项 | 含义 |
---|---|
-d | 只显示目录 |
mv 移动和重命名
- mv命令在同一个文件夹移动文件,即重命名功能
- 格式:
mv 原文件路径 目标路径
mv ./demo.txt test.txt
#重命名
选项 | 含义 |
---|---|
-f | 覆盖前不询问 |
-i | 覆盖前询问 |
-n | 不覆盖已经存在的文件 |
cp复制
选项 | 含义 |
---|---|
-i | 覆盖前提示 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录文件,目标文件必须为一个目录名 cp src des 如果是复制文件夹,则加上-r 选项 |
文件统计分析
cat 查看文件内容,合并文件
cat
命令可以用来查看文件内容,创建文件,文件合并,追加文件内容等cat
会一次显示所有内容,适合查看内容少的文本本件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
more 查看文件内容(分页查看)
more filename 查看filename 文件的内容
可以分屏显示文件內容,每次只显示一頁內容,適用於 查看內容較多 的文本文件
快捷键 | 功能说明 |
---|---|
q | 退出 |
f | 前滚一屏幕 |
b | 回滚一屏幕 |
空格键 | 显示下一屏 |
enter键 | 一次滚动一行 |
grep 过滤行
- Linux系统中
grep
命令是一种强大的文本搜索工具 grep
允许对文本文件进行模式查找,所谓模式查找,又被成为正则表达式,
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包括匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
-c | 统计文件或者文本中包含匹配字符串的行数 |
-o | 只显示匹配具体的内容 |
grep love demo.txt
#在demo.txt文件中搜索love
grep -n a demo.txt
#在demo.txt文件中找a,同时返回行号
强大的文本搜索工具,能使用正则搜索文本,并把匹配的行打印出来
- -E 选项使用正则表达
grep -E "[A-Z]+" filename
grep -E "[0-9a-z]" file_1 file_2 file_3...
过滤出/var/log/secure
中出现的IP地址
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|sort|uniq -c
- 常用 的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以a开头的行 |
ke$ | 行尾,搜寻以ke结束的行 |
grep a$ demo.txt
grep -n a$ demo.txt
grep ^f demo.txt
grep -n ^f demo.txt
less 按行阅读文档
more与less的区别
head 查看文件头,默认看10行
head
-n # 查看文件的前n行
tail 查看文件尾
tail
-n # 查看文件的后n行
-f # 实时跟踪文件的变化,它会在文件末尾持续监听新的内容,并将其输出到终端,不会退出命令。 按 ctrl+c 退出
-F # 文件被移除并重新创建时也能继续跟踪。
[root@zs Desktop]# tail -f /var/log/secure
#动态显示日志内容
awk 过滤列
awk -F: '{print $1}' /etc/passwd
-F 以冒号为分隔符
'{print $1}' 打印第一列
/etc/passwd 要过滤列的文件
过滤出IP地址
cut 按列提取
cut
-d # 指定字段的分隔符。
-f # 指定要提取的字段或列。
-s # 只输出包含分隔符的行。
/etc/passwd文件:系统用户配置文件,存储了系统中所有用户的基本信息,包括用户名、密码、用户 ID 和组 ID 等信息。并且所有用户都可以对此文件执行读®操作。
取出/etc/passwd文件中的用户名
sort 排序
- -u 去除重复行
- -r 降序排序,默认是升序
du 统计文件大小
-s只统计⽬录总⼤⼩,-h⼈类易读
uniq 去重
说明:用于从排序后的文本文件或标准输入中去除重复行的命令行工具。它可以识别并删除相邻或非相邻的重复行,并将去重后的结果输出到标准输出。
-c统计次数
wc 统计文件行数
-l # 只显示行数
-w # 只显示单词数
-c # 只显示字节数
统计Linux中一共有多少个用户
wc -l /etc/passwd
统计Linux中一共有多少个用户是无法登录的
cat /etc/passwd | grep nologin | wc -l # 但是过滤的不准
在/etc/passwd文件中末尾为:/sbin/nologin 表示该用户无法登录
cat /etc/passwd | grep -v /bin/bash | wc -l
说明:
- -v:表示用于反转匹配,即只输出那些不匹配指定模式的行。
stat 查看文件的具体存储细节和时间信息
diff 比较多个文件之间的差异
diff file1 file2
tr 用于替换文本内容
文件查找
which
提示:
/etc/passwd
是用于存放用户信息的文件/usr/bin/passwd
是用于修改用户密码的程序
which
命令可以查找并显示给定命令的绝对路径
which ls # /usr/bin/ls
which passwd # /usr/bin/passwd
whereis
找到命令的绝对路径
whereis ls
#gz帮助文件
locate
将所有目录里的所有文件生成一个数据库,通过搜索数据库快速定位想要查找的文件,使用这个命令前需要更新数据库命令:updatedb,更新后在根目录中使用locate查找文件
# locate [搜索关键字]
# 安装
yum -y install mlocate
find
find
-name # 匹配名称
-perm # 匹配权限
-user # 匹配所有者
-group # 匹配组
-exec...{}\; #
-type #查找的文件类型 d 目录 f 文件 l 链接
-
如果省略路径,表示在当前路径查找
-
通配符,在使用find 命令时同时可用
#搜索桌面目录下,文件名包含`1`的文件 find -name "*1*" #搜索桌面目录下,所有以`.txt`为扩展名的文件 find -name "*.txt" #搜索桌面目录下,以数字`1`开头的文件 find -name "1*"
-type
参数指定要查找的文件类型
在桌面创建passwd目录,然后进到passwd目录里面,创建一个passwd文件,里面内容是123456
[root@zs passwd]# find /root/Desktop/ -name "passwd" #显示目录和文件
[root@zs passwd]# find /root/Desktop/ -name "passwd" -type d #只显示目录
[root@zs passwd]# find /root/Desktop/ -name "passwd" -type f #只显示文件
在根目录中将所有的zs.txt文件复制到root用户的家目录下
find / -name zs*.txt -exec cp -a {} /root \;
**说明**:
- /:根目录
- *:表示匹配所有。
- -exec:表示执行命令,允许在找到每个文件后执行指定的命令。
- cp:复制命令。
- -a:表示复制的时候,尽可能保持文件的结构和属性。
- {}:表示查找到的东西。
- /root:root用户的家目录。
- \:表示结束。
find /boot -size +10M |xargs cp -r '{}' /tmp
find /tmp -size +10M |xargs rm -rf
find /boot -size +10M -exec cp -r '{}' /tmp \;
5、系统状态检测命令
查看或配置网卡信息
一台计算机i中可能会有一个或物理网卡,和多个虚拟网卡,在Linux中,物理网卡的名字通常以
ensXX
表示··
127.0.0.1
本地回环/环回地址,一般测试本机网卡是否正常
#查看网卡配置信息
ifconfig
#查看网卡对应的IP地址
ifconfig | grep inet
网卡配置
先查看网卡ip a
或者ifconfig
命令
切换到配置文件的路径
cd /etc/sysconfig/network-scripts
ls
使用vim ifcfg-ens33
查看
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ba68ee71-854f-4389-8b51-e5d61fc15d8a
DEVICE=ens33
ONBOOT=no
里面有一些多余的,可以在命令模式下光标放在首行,然后先按方向键↓ 然后2dd,在按方向键↓ 然后9dd
把多余的删掉
TYPE=Ethernet
BOOTPROTO=dhcp #动态获取IP地址,可以换成static,改为手动配置固定IP地址
DEVICE=ens33
ONBOOT=yes #network网络配置服务 改为yes,表示启动,系统启动时激活此设备
#配置静态IP地址需要加上下面几个配置
===========================================================================
GATEWAY=192.168.1.1 #默认网关
METMASK='255.255.255.0' #子网掩码
HWADDR=00:50:56:8E:47:EE #网卡物理地址
IPADDR=192.168.1.117 #静态IP地址
DNS1='192.168.1.2' #dns服务
修改完后需要重启network服务
systemctl restart network
测试网络连通性ping
ping命令 检查网络是否正常通信,Linux下默认ping不会结束,使用ctrl+c强制结束
示例 :ping www.baidu
#检测到目标主机是否连接正常
ping IP地址
#检测本地网卡工作正常
ping 127.0.0.1
col1 | col2 |
---|---|
-c | 指定ping几个数据包结束 |
-i | 指定发送数据包的间隔,单位是秒 |
-s | 指定发送数据的大小,单位字节 |
-t | 设置TTL的大小,TTL网络调数大小 |
查看系统负载信息
uptime
显示当前系统的内存使用量
free
-h # 以字节为单位显示内存的大小
查看当前登录主机的用户终端信息
who
远程登录有两个:一个是操作界面,一个是下载文件的界面。
远程登录的是pts
本机登录的是tty1
调取主机的被访问记录
last
Linux系统每次的登录信息都会被记录在日志文件中,可以通过last来查看
路由追踪
tracepath
显示网络连接、路由表、接口状态等信息
netstat
-r # 显示系统的路由表信息
-a # 显示所有网络(socket)连接
-ano # 查看监听的端口
-p # 显示正在使用的网络连接
-t # 显示tcp协议连接状态
-n # 使用ip地址,不适应域名
route
-n
显示执行过的历史命令
history
下图中的.bash_history文件也可以查看到历史命令
修改
vim /etc/profile
6、远程管理常用命令
关机/重启shutdown/init
init 0 关机
init 6 重启
poweroff 关机
选项 | 含义 |
---|---|
-r | 重新启动 |
now | 立刻关机 |
- 不指定选项和参数,默认表示1分钟后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重启系统
#重新启动操作系统,其中now 表示现在
shutdown -r now
#立即关机 其中now表示现在
shutdown now
#系统会在今天的20:25会关机
shutdown 20:25
#系统十分钟后自动关机
shutdown +10
#取消之前的指定的关机计划 cancel取消
shutdown -c
SSH远程登陆
命令 | 对应英文 | 作用 |
---|---|---|
ssh 用户名@IP | secure shell | 远程登陆 |
scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
SSH连接
在Linux中SSH是非常常用的工具,通过SSH客户端可以连接到运行了SSH服务器的远程机器上
- 默认端口号22,如果端口号默认,连接的时候可以省略
"""
数据传输是加密的,可以防止信息泄露
数据传输是压缩的,可以提高传输速度
"""
- SSH是一种网络协议,用于计算机之间的加密登录,Linux下默认开启sshd服务,只有开启sshd服务才能进行ssh连接
- 可以使用 service sshd status 查看是否开启sshd服务, active(running)表示已经开启
- 没有开启可以 sudo apt-get install openssh-server
SSH高级
提示:有关SSH配置信息都保存在用户家目录下的
.ssh
目录下
(1)免密码登陆
步骤:
- 配置公钥
- 执行
ssh-keygen
即可生成SSH钥匙,一路回车即可
- 执行
- 上传公钥到服务器
- 执行
ssh-copy-id -p port user@remote
,可以让远程服务器记住我们的公钥
- 执行
非对称加密算法:
- 使用公钥加密的数据,需要使用私钥解密
- 使用私钥加密的数据,需要使用公钥解密
(2)配置别名
~/.ssh
文件夹下创建 config
文件
~/.ssh/config
里面追加内容:
#mac 就是别名名称
Host mac
HostName ip地址
User zs
Port 22
保存之后,即可使用 ssh mac
实现远程登陆,scp 同样也可以
SCP复制文件
scp
就是secure copy
,是一个在Linux下用来进行远程拷贝文件的命令- 它的地址格式与SSH基本相同,需要注意的是,在指定端口时用的是大写的
-P
而不是小写的
#把本地01.py文件复制到远程家目录的DeskTop/01.py
scp -P port 01.py user@remote:DesekTop/01.py
#把远程家目录下的DeskTop/01.py 文件,复制本地当前目录下的01.py
scp -P port user@remote:DeskTop/01.py 01.py
#加上-r 选项可以传送文件夹
#把当前目录下的demo文件夹,复制到远程家目录下的DeskTop
scp -r demo user@remote:DeskTop
#把远程家目录下的DeskTop 复制到当前家目录下的demo文件夹
scp -r user@remote:DeskTop demo
选项 | 含义 |
---|---|
-r | 若给出的源文件是 目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程SSH服务器 的端口不是22,需要使用大写-P 选项指定端口 |
注意:
scp
这个终端命令只能在Linux
或者UNIX
系统下使用- 如果在
Windows
系统中,可以安装PUTTY
,使用pscp
命令行工具或者安装FileZilla
使用FTP
进行问加你传输FileZilla
FileZilla
在传输文件时,使用的是FTP
而不是SSH
服务,因此端口号应设置为21
Windows安装SSH服务
- 打开 PowerShell 命令行(管理员)
- 查看是否已经安装
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
- 安装OpenSSH客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
- 安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- win+R,cmd打开命令行,输入net start sshd,启动SSH
- win+R, cmd打开命令行,输入net stop sshd 关闭SSH
7、用户权限相关命令
用户和权限
- 用户是Linux系统工作中重要 的一环,用户管理包括用户与组管理
- 在Linux中,不论是由本机还是远程登录系统,每个系统都必须有一个账号,并且对于不同的系统资源拥有不同的使用权限
- 在Linux中,可以指定每一个用户针对不同的文件或者目录的不同权限
- 对文件/目录的权限包括:
权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | e | 1 |
用户组:LInux有一个组的概念,不同的用户分到一个组,那么同组下的用户可以用这个组的权限
⽤⼾学习必会的两个⽂件
/etc/passwd
记录了⽤⼾的账⼾信息
zs❌1000:1000:zs:/home/zs:/bin/bash
第⼀段:⽤⼾名
超级管理员:root⽤⼾ uid 0
普通⽤⼾:⾃⼰创建的⽤⼾,可以登录操作系统
程序⽤⼾:给予程序执⾏的时候⼀个⾝份,id号⼀般情况下1-999
第⼆段:密码占位符
第三段:⽤⼾的uid
第四段:⽤⼾的gid
第五段:⽤⼾的描述信息
第六段:⽤⼾的家⽬录
第七段:⽤⼾登录的解释器
另外一份文件vim /etc/shadow
存放了用户加密后的密码
第⼀段:⽤⼾名
第⼆段:加密后的密码
第三段:最近⼀次密码修改⽇期距离1970年到现在的天数,unix诞⽣
第四段:密码的最短有效期,3,⽤⼾三天内不能修改密码
第五段:密码的最⻓有效期,⼀般都是90天
第六段:密码过期7天前提醒
第七段:密码的不活跃期
第⼋段:账⼾的失效⽇期举例1970年1⽉1⽇的天数
man crypt
root用户不受文件权限限制
文件权限解释:
第一段:
l:链接 d:目录 c:字符型设备 b:块设备
第⼆段:⽂件的所属者权限
第三段:⽂件的所属组权限
第四段:其它⽤⼾的权限
第五段:.
代表selinux的标签
要求设定saury密码的最⻓有效期时间为90天,设定saury账⼾登录系统的时候必须修
改⾃⼰的密码,设定saury账⼾失效时间为2023 10 1⽇chage -M 90 saury 密码最⻓有效期 chage -d 0 saury ⽤⼾登录必须修改密码 chage -E 2023-10-1 saury 账⼾失效时间
超级用户
- Linux系统中
root
账户通常用于系统维护和管理,对操作系统所有资源具有所有访问权限 - 在大多数Linux版本中,都不推荐直接使用root 账户登陆系统
- 在Linux安装过程中,系统会自动创建一个用户账号,而这个默认的用户就成为标准账户
sudo:
su
表示另一个用户的身份sudo
命令用来以其他身份来执行命令,预设的身份为root
- 用户
sudo
时,必须输入密码,之后有五分钟的有效期限,超过期限必须重新输入密码
组管理命令
提示:创建组/删除组 的命令都需要通过
sudo
执行
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp -R 组名 文件/目录名 | 递归修改文件/目录的所属组 |
小提示:
- 组信息都保存在
/etc/group
中 /etc
目录是专门用来保存系统配置信息的目录
用户管理
用户管理包括:创建用户,删除用户,修改用户帐号属性,创建用户组,修改用户组属性
创建用户/删除用户/修改其他用户密码的终端命令斗需要sudo
执行.
创建用户/设置密码/删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组名 新建用户 | 添加新用户 | -m自动创建用户家目录<br />-g 指定用户所在的组,否则会建立一个和同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户 直接使用passwd修改密码 |
userdel -r 用户名 | 删除用户 | -r 自动删除用户家目录 |
cat /etc/passwd | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd文件中 |
# 添加用户的一些选项
* 命令 ;useradd 「用户名」
* 选项说明:
* -d指定新账户的主目录
* -g 指定用户的所属组
* -G指定用户附加组
* -s指定用户登录shell
* -m自动创建家目录
* -u 用户ID
* -o 强制
为⽤⼾设定密码以及查看密码状态
passwd -S saury #查看⽤⼾状态 useradd -u 0 -o -d /bin xjh &>/dev/null #创建与root同权账⼾ # -o强制uid为0,-d指定家⽬录,&>/dev/null不管正确的输出还是错误的输出,全部不显⽰ echo 456|passwd --stdin saury #⾮交互设置密码
查看用户信息
命令 | 作用 |
---|---|
id 用户名 | 查看用户UID和GID信息 |
who | 查看当前所有登陆的用户列表 |
whoami | 查看当前登陆用户的账户名 |
usermod
- usermod 用来设置用户的主组 /附加组,和登陆shell
- 主组:通常在新建用户时指定,在
/etc/passwd
的第四列GID对应的组 - 附加组:在
etc/group
中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组后,需要重新登陆才能生效
#修改用户的主组
usermod -g 组 用户名
#修改用户的附加组
usermod -G 组 用户组
#修改用户登陆shell
usermod -s /bin/bash 用户名
注意:默认使用
useradd
添加用户是没有权限使用sudo
以root
身份执行命令,可以使用下面的指令,将用户添加到sudo
附加组中
usermod -G sudo 用户名
修改帐号属性
* 命令:usermod
* -u 用户id
* -g 所属组id
* -a -G GID:不适用-a选项,会覆盖此前的附加组
* -d -m将家目录内容移动至新位置
* -l新的登录名称
* -s该用户帐号的新登录
切换用户
- su - 用户名
- 加 - 同时切换到用户的家目录,不加直接在当前目录切换到新用户
- exit 退出当前登陆的账户
修改文件权限
命令 | 作用 |
---|---|
chown | 修改拥有者 |
chgrp | 修改组 |
chmod | 修改权限 |
#修改文件|目录的拥有者
chown 用户名 文件名|目录名
#递归修改文件|目录的组
chgrp -R 组名 文件名 | 目录名
#递归修改文件的权限
chmod -R 755 文件名|目录名
-
chmod
可以修改用户/组/对文件/目录的权限 -
命令格式:
# +增加权限 -取消权限 chmod +/- rwx 文件名|目录名
-
每个文件,都有三组不同的权限,第一组文件所有者,第二组文件所属组 ,第三组是其他用户
-
- u 文件所有者修改所有者权限,
chmod u+/-/=rwx filename
- u 文件所有者修改所有者权限,
-
- g 文件所有组 修改所属组权限:
chmod g+/-/=rwx filename
- g 文件所有组 修改所属组权限:
-
- o 其他用户 修改所属组权限:
chmod o+/-/=rwx filename
- o 其他用户 修改所属组权限:
-
-
命令:
chmod 755 文件名| 目录名
指定权限修改 -
chmod
中第一个数字是代表所有者权限,第二个数字代表所属组权限,第三个数字代表其他人权限 -
八位赋权法
权限 | 八位赋权法表示 |
---|---|
r | 4 |
w | 2 |
e | 1 |
特殊 权限
粘滞位
只对⽬录⽣效,
只有⽂件的所属者才可以删除⽂件
suid
只对可执⾏⽂件⽣效
任何⽤⼾执⾏该⽂件都是以⽂件所属者⾝份运⾏的
8、系统信息相关命令
时间和日期
命令 | 作用 |
---|---|
cal | (calendar)查看日历, -y选项可查看一年的日历 |
date | 查看系统当前时间 |
例如:
date "+%Y-%m-%d %H:%M" # Y:年 m:月 d:日 H:时 M:分 S:秒
date "+%j" # 显示今天是当年的第几天
查看磁盘的空间
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间 |
du -h 目录名 | disk usage 显示目录下的文件大小 |
- df -TH 查看磁盘分区,以及挂载情况
- du -sh [目录名] 查看目录大小
- du -h [文件名] 查看文件大小
选项说明:
参数 | 含义 |
---|---|
-h | 以人性化的方式显示文件大小 |
查看内核/操作系统/CPU信息
- uname -a 查看内核/操作系统/CPU信息
- uname -i 查看硬件平台
- uname -m查看CPU
- uname -n节点名称
- uname -o操作系统
- uname -v 内核版本
- uname -r 发行版本号
进程管理
- 所谓进程,就是当前正在执行的一个程序
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
top | 动态显示运行中的进程并且排序 |
kill -9 进程代号 | 终止指定代号的进程 -9表示强行终止 |
pidof | 返回相应的进程ID |
ps
ps
默认只会显示当前用户通过终端启动的应用程序
ps
选项说明:
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包含其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
# 说明
- USER:进程所有者
- PID:进程ID号
- %CPU:运算器占用率
- %MEM:内存占用率
- VSZ:虚拟内存占用率
- RSS:占用的固定内存量
- TTV:所在的终端
- STAT:进程状态
- R:进程正在运行或在运行队列中等待执行。
- S:中断状态(进程处于休眠中,当某个条件形成后会脱离该状态)
- D:不可中断状态(进程处于不可中断睡眠状态,通常在等待某些 I/O 操作(如磁盘 I/O)完成时出现。)
- Z:僵死状态(进程已经中止,但是进程的描述符还存在,直到父进程退出后才释放)
- T:停止状态(进程被暂停执行,通常是收到停止信号(如 `SIGSTOP`)或调试信号(如 `SIGTSTP`)导致的。)
- <:高优先级进程
- N:低优先级进程
- L:被锁进内存
- s:包含子进程
- I:多线程进程
- +:位于前台的进程组
- START:进程的开始时间
- TIME:进程已经使用的CPU时间
- COMMAND:进程的命令名称和参数
top
top
查看进程实时运行情况,即系统资源实时使用情况- 退出
top
界面输入q
**说明**:
- top:系统时间
- up:运行时间
- 3 user:登录的终端数
- load average:系统的负载,<u>0.00表示一分钟内的负载,0.06表示5分钟内的负载,0.07表示15分钟内的负载</u>。这个值越高系统的负载就大,这个值越低表示系统处于空闲中。
kill
- 使用
kill
命令时,最好只终结当前用户开启的进程,不要终止root
身份开启的进程,否则导致系统崩溃
pidof
用于查找指定名称进程的进程ID
9、 其他命令
wget 终端下载网络文件
wget
-b # 后台下载模式
-P # 下载到指定目录
-t # 最大尝试次数
-c # 断点续传
-p # 下载页面里面的所有资源
-r # 递归下载
-
例如
wget -p http://www.xxx.xx/ # 后面加上下载网页路径
history 查看历史命令
命令 | 描述 |
---|---|
history | 查看历史命令 |
history -c | 删除历史命令记录 |
打包压缩
- 在不同操作系统中,常用的打包压缩方式是不同的
windows
下常用rar
Mac
下常用zip
Linux
下常用tar.gz
1、打包/解包
dd命令
读取硬盘字节内容,主要完成磁盘对拷。生成一个100M 大小的文件
/dev/zero
是一个抽象的设备文件,实际并不存在,他有无数个0组成
dd if=/dev/zero of=/root/Desktop/bigfile bs=1M count 100
#利用dd命令生成一个文件,是/dev/zero 文件名设置为bigfile 单个文件的大小为1M,一共100个
tar
是可以把无法被压缩的目录转换成特殊的包文件格式,包文件可以被压缩- tar 选项说明:
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
注意:
f
选项必须放在最后,其他选项顺序可以随意
- tar命令格式
#打包文件
tar -cvf 打包文件.tar 被打包的文件/路径、、
#解包
tar -xvf 打包文件.tar
#打包
[root@zs Desktop]# tar -cvf demo.tar ./demo/
#解包
tar -xvf python.tar
2、压缩和解压缩
(1)gzip命令
gzip
一般跟 tar
一起使用,完成打包压缩
tar只负责打包并没有做压缩,使用 -z 选项可以调用gzip压缩,完成打包压缩
使用tar打包压缩的文件名,一般命名为xxx.tay.gz区别与其他文件
压缩文件
[root@zs Desktop]# tar -zcvf demo.tar.gz demo/
解压缩文件
#解压缩文件
[root@zs Desktop]# tar -zxvf demo.tar.gz
#解压缩到指定路径
[root@zs Desktop]# tar -zxvf demo.tar.gz -C 目标路径
-C
指解压到哪里,解压的目录必须存在
(2)bzip2命令
bzip2使用方式跟gzip差不多,也是由tar去调用,使用 **-j
** 选项
bzip2压缩的文件命名采用 xxx.tar.bz2
压缩文件:
tar -jcvf py.tar.bz2 a.txt b.txt
解压缩文件:
#解压缩
tar -jxvf py.tar.ba2
#解压缩到指定路径
tar -jxvf py.tar.ba2 -C 目标目录
软链接
使用 | 说明 |
---|---|
ln -s 被链接的源文件 链接文件 | 建立文件的软链接,用通俗的话将类似于Windows下的快捷方式 |
- 注意:
- 1.没有
-s
选项建立的是一个硬链接文件- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 2.源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用
#绝对路径
ln -s /home/python/Desktop/demo/b/c/01.py 01_juedui
10、软件管理
ubuntu软件管理
- apt (Advanced Packaging Tool),是Linux下的一款安装包管理工具
- 可以在终端方便安装、卸载,更新软件包
#安装软件
sudo apt install 软件包
#卸载软件
sudo apt remove 软件名
#更新软件
sudo apt upgrade
案例演示:
sudo apt install ssh
sudo apt upgrade ssh
suod apt remove ssh
#一个小火车提示
sudo apt install sl
#一个比较漂亮的查看当前进程排名的软件
sudo apt install htop
Centos7软件安装
源码安装
源码包:C语言写的,可以在linux的不同版本上安装
以安装apache服务为例
安装源码包程序,⼀定在软件解压⽬录下操作
./configure #⽣成makefile⽂件,makefile⽂件决定编译的顺序
make #编译
make install #将编译好的程序复制粘贴到--prefix选项指定的⽬录⾥,默认是/usr/local/apache2
启动apache服务
/usr/local/apche2/bin/apachectl start
切换到安装目录下/usr/local/apache2
⽹站根⽬录,放在该⽬录下的⽂件,会被访问者看⻅
rpm安装
Centos7的系统自动的rpm软件包的路径在/run/media/root/CentOS 7 x86_64/Packages
查看操作系统安装了那些程序rpm -qa
以 FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
这个软件包为例
查看安装包的信息 rpm -qpi
#--scripts 是查看软件安装前封装的命令,和删除前封装的命令
rpm -qpi --scripts FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
查看软件安装后命令字的位置
rpm -qpl rmp软件包包
安装软件包 -i安装 -v 显示安装信息 -h井号替代进度条
卸载
rpm -e lftp
yum本地源
编辑本地yum源安装liboffice
cd /etc/yum.repos.d/
设置本地源之前需要开启一个服务
systemctl restart autofs #系统重启以后,服务会自动关闭
systemctl enable autofs #开机自启动
cd /etc/yum.repos.d/
开始配置本地源
yum网络源
下载配置网络源安装httpd服务
把刚创建的本地源移动back目录里
先配置网络源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun/repo/Centos-7.repo
# -O 指定下载路径
开始下载安装
yum install -y httpd
11、vim编辑器
vim三种模式:
- 命令模式 控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
- 插入模式 写入数据
- 末行模式 保存或退出文档,以及设置编辑环境
使用vim打开文件的时候,先进到命令模式。
此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置
命令模式切换到输入模式
a 在光标的后一位切换到输入模式
o 表示在光标的下一行开头切换到输入模式。
i 在光标的位置切换到输入模式
输入模式切换到命令模式
按ESC
键,就可以切换到命令模式
gg #跳到第一行
G #跳到最后一行
数字G #光标移动到指定行
数字 方向键右键 #表示向右移动多少字符
dd #删除光标所在的整行
5dd #删除从光标处开始的5行
15x #删除当前行的15个字符
yy #复制光标所在的整行
5yy #复制从光标处开始的5行
u #撤销
p #粘贴
ctrl+r #恢复,(反撤销)
命令模式切换到末行模式
输入:
,切换到末行模式
:wq #保存退出
:q! #强制退出
:w demo.txt /root/Desktop #另存为 另存为的名字为demo.txt 存储路径是/root/Desktop
:set nu #显示行号
:set nonu #不显示行号
:65,73 y #复制65-73⾏内容
:21,42 d #删除21-42⾏内容
:50,100 s/man/Man/g #将50-100⾏⼩写的man替换成⼤写的MAN
:s/man/Man #将当前光标所在行的第一个man换成Man
:s/man/Man/g #将当前光标所在行的所有man换成Man
:%s/man/Man/g #将全文中所有的man替换成Man
:10 #光标移动到第10行
:r /root/Desktop/man.config #读取其他文件内容
/内容 #表示搜索
使用vim时ctrl+z把程序置于后台解决方法
如果在使用vim编辑器的时候按住了Ctrl+z,把程序置于后台
可以使用jpbs命令
查看后台进程
fg 1
把后台程序恢复到前台 1指的是后台进程的 编号
版权声明:本文标题:掌握Linux基础命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725871242a1046250.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论