当今计算机技术日新月异,Linux系统越来越受到人们的欢迎。与此同时,Linux命令行也成为了掌握Linux系统的必备技能之一。无论是系统管理员、开发人员还是普通用户,学习Linux命令行都能够帮助他们更好地管理和使用Linux系统。
本篇主要介绍用户、文件、进程、包信息的相关命令。
[oscar@oscar-laptop ~]$ - 目前是以oscar这个用户登录;电脑名称为oscar-laptop - 目前位于~目录下,就是用户家目录 - 属于普通用户。$是普通用户,#是超级用户(比如root用户) [root@VM_0_11_centos home]# - 目前是以root这个用户登录;电脑名称为VM_0_11_centos - 目前位于home目录下 - 属于超级用户
bashcat /etc/passwd # 查看所用用户
whoami # 查看当前登录用户名
hostname # 查看当前主机名
useradd ccz # 添加用户名为ccz的用户
su # 切换到root用户
su ccz # 切换到用户名为ccz的用户
passwd ccz # ccz用户添加或者修改密码
userdel ccz # 删除用户名为ccz的用户
userdel -r ccz # 删除用户并且将home下面的ccz目录也一并删除
bash# groupadd 创建群组
groupadd friends # 创建一个名为friends的群组
# groupdel 删除群组
groupdel friends # 删除friends群组
# groups 查看用户对应群组
groups ccz # 查看用户ccz对应群组
# usermod 修改用户账户
# 参数:
# -l:对用户重命名。/home中的用户家目录名不改变,需要手动修改
# -g:修改用户所在群组
# -G:批量添加群组
usermod -g friends ccz # 修改ccz用户群组为friends
usermod -G friends1,friends2 ccz # 修改ccz用户为friends1,friends2
# chown 改变文件所有者和群组(只有root用户可以运行)
chown ccz file1 # 将file1文件夹的所有者更改为ccz用户
chown ccz:friends file1 # 将file1文件夹的所有者更改为ccz用户,群组更改为friends群组
chown -R ccz:friends file1 # 递归更改,更改文件夹下所有文件
# chgrp 改变文件群组(root用户,文件所有者可以运行)
chgrp friends file1 # 将file1文件夹的群组更改为friends群组
首先介绍下r、w、x
r:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名。 注意:仅仅指的是名字。
w:拥有此权限表示具有更改该目录结构列表的权限。比如,在目录下新建文件夹,删除文件夹,更改目录下文件名等。
x:拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。
备注:
drwxr-xr-x.
chmod 控制文件权限(root用户,文件所有者可以运行)
bashchmod a+r file1.txt # 将文件 file1.txt 设为所有人皆可读取
chmod ug+w,o-w file1.txt file2.txt # 将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
数字加法:
bash# 查找相关前缀文件
ls www + # 按两次tab键,列出以www开头的文件
# 反查历史命令
ctrl+R # 查找使用过的命令
# history !
!1857 # 运行history列表下的第1857条命令
# 清屏
ctrl+L # 清屏
# 退出
ctrl+D # 退出功能,如果用户已退出后,再次使用,会关闭终端
bash# ll 是 ls -l的 简写
ll -t # 根据修改时间排序列出
ll -h # 方便阅读(文件大小的返回,并没有递归查询目录,而是返回当前目录大小)
# du 显示目录包含的文件大小(不会显示具体文件大小)
du -h # 方便阅读(递归文件返回大小)
du -a # 显示目录和具体文件大小
du -s # 只返回当前目录的总大小
# cat 显示当前文本的所有内容
cat -n index.html # 显示行数
less # 显示文本的一部分内容,可以翻页
head # 显示文本的前几行,默认为10行
head -n 5 index.html # 显示文本的前5行
# tail 显示文本的后几行,默认为10行
tail -n 5 # index.html
tail -f
tail -f -s 10 index.html # 10秒钟执行一次查询
bash# grep
# 参数:
# -i:忽略大小写
# -n:显示所在行号
# -r:递归查找
# -E:使用正则表达式去检索
# 备注:指定文件夹,需要使用-r参数
grep "h1" ./index.html # 在html文件下查找h1相关的内容
grep -r bskt-test /etc/nginx/ # 在nginx文件夹下查找bskt-test相关内容
grep -r -n -E [a-z]{10} bskt-test /etc/nginx/ # 在ngix文件下查找包含英文字母十位的文件
重定向符号:
bash# >:文件不存在,则新建。文件存在,则将文件内容覆盖(标准输出)
cat file.sh > a.txt
# >>:文件不存在,则新建。文件存在,则将内容追加到文件后面(标准输出)
cat file.sh >> a.txt
# 2>:文件不存在,则新建。文件存在,则将文件内容覆盖(标准错误输出)
cat file.sh 2> a.txt
# 2>>:文件不存在,则新建。文件存在,则将内容追加到文件后面(标准错误输出)
cat file.sh 2>> a.txt
# 2>&1:将标准错误输出重定向到与标准输出相同的地方
cat file.sh > a.txt 2>&1
bash# tar 归档
tar -cvf proxy.tar proxy/ # 将proxy文件夹归档成proxy.tar文件
tar -cvf proxy.tar a b proxy # 将a,b文件,proxy文件夹归档成proxy.tar文件
tar -zcvf proxy.tar.gz proxy # 将proxy文件夹归档后直接压缩成proxy.tar.gz文件
tar -tf proxy.tar # 查看proxy.tar里面的内容
tar -rvf proxy.tar c # 将c文件追加到proxy.tar
tar -xvf proxy.tar # 解开归档
tar -zxvf proxy.tar.gz # 将压缩文件夹proxy.tar.gz先解压,然后解开归档
# gzip 压缩
gzip proxy.tar 将proxy.tar # 压缩,压缩后原文件将消失
# gunzip 解压
gunzip proxy.tar.gz # 解压proxy.tar.gz文件
# zip unzip 压缩,解压
zip -r proxy.zip proxy/ # 将proxy文件夹压缩成proxy.zip,压缩后原文件不会消失
unzip -l proxy.zip # 查看proxy.zip内的文件
unzip proxy.zip # 解压proxy.zip
bash# rsync 增量添加文件
rsync -arv Images/ backups/ # 将Images目录下的所有文件备份到backups目录下
rsync -arv --delete Images/ oscar@89.231.45.67:backups/ # 将Images目录下的所有文件备份到89.231.45.67主机的backups目录下
# 备注:同步时,默认不会删除目标目录文件。需要同步删除操作的话,需要使用--delete
bashmkdir -p one/two/three # 递归创建文件
mkdir {a1,a2,a3} mkdir a{1..3} # 两个命令相等,创建a1,a2,a3文件
# 硬链接
# 一旦文件1和文件2之间有了硬链接,那么你修改文件1或文件2,修改的是相同一块内容
# 只能创建指向文件的硬链接,不能创建指向目录的
# 原理:两个文件的inode一致(可以使用ll -i 查看inode)
ln file1 file2
# 软链接
# 文件1和文件2之间有了软链接,就类似于快捷方式,文件2仅仅只是指向文件1。如果删除文件1,文件2将找不到文件。
ln -s file1 file2
bash&符号 # 在后台运行进程
nohup # 使进程与终端分离(关闭终端进程时,不受hup信号影响)
ctrl+Z # 转到后台,并且暂停运行
bg # 使进程转到后台
SElinux的双重保险
配置模式
基础命令
bashsestatus # 查看状态
vim /etc/selinux/config # 修改配置,需重启后才能生效,慎重更改。更改完可能无法重启。建议提前备份
setenforce 0 # 临时生效,无需重启。对应permissive模式
setenforce 1 # 临时生效,无需重启。对应enforcing模式
getenforce # 查看配置
bash# 开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload # 重启后生效
# 删除指定端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload # 重启后生效
# 查看开放的端口
firewall-cmd --list-ports
bashw # 查看当前登录用户信息
whoami # 查看当前角色权限
# ps查看进程信息
# 参数:
# -ef:列出所有用户在所有终端的所有进程
# -aux:通过cpu和内存使用来过滤进程
ps -aux --sort -pmem # 根据内存消耗进行排序
ps -aux --sort -pcpu # 根据cpu消耗进行排序
netstat -antpu # 查询端口占用情况
netstat -antpu | grep nginx # 查询nginx占用端口
netstat -nap # 查询pid占用情况
netstat -nap | grep 19077 # 查询19077占用端口
top # 查看进程信息(动态更新)
kill # 关闭进程
killall # 关闭全部进程(killall nginx)
uname # 查看当前主机系统
uname -a # 查看主机系统详细信息
cat /proc/cpuinfo # 查看cpu详细信息
halt # 命令关闭系统
reboot # 命令重启系统
poweroff # 命令可以实现立即关机
whois # 查看域名注册信息(若没有,使用yum安装)
bashwhich nginx # 查看命令所在的地址
rpm -qf /usr/sbin/nginx # 查看该命令的所在包
yum info nginx # 查看包的详细信息
短参数:ls -a
长参数:ls --all
本文作者:BARM
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!