linux命令大全(包括常用命令)个人学习笔记整理

linux命令大全(包括常用命令)个人学习笔记整理


man man 查看自身的帮助信息
echo fujieace.com
echo $SHELL
echo $HOSTNAME
date 日期时间
reboot 重启系统仅ROOT用户
——————————————————————————————————————————————
yum install elinks          elinks:纯文本界面的浏览器
elinks www.baidu.com
——————————————————————————————————————————————
ifconfig[网络设备][参数] 获取网卡配置与网络状态等信息
uname [-a] 查看系统内核版本等信息
cat /etc/redhat-release 查看系统详细版本信息
uptime 查看系统的负载情况
watch -n 1 uptime 来每秒刷新一次获得当前的系统负载情况(负载值越低越小,小于1是正常的)
free [-m/-g] 显示当前系统中内存的使用情况
free -m 以M单位显示系统中内存的使用情况
who [参数] 查看当前登入主机的用户情况
last [参数] 查看所有系统的登入记录
history [-c] 显示历史执行过的命令
history -c 默认保存1000条执行过的命令,若要修改请编辑/etc/profile 文件中的HISTSIZE值
cat ~/.bash_history 清空该用户在本机中执行过命令的右上记录(linux中“.”开头的文件均代表隐藏文件,一般会是系统文件)
soreport 收集系统配置并诊断信息后输出结论文档,格式为sosreport
——————————————————————————————————————————————
yum install lrzsz lrzsz是一款在linux里可代替ftp上传和下载的程序
rz 上传
sz 下载的文件路径
——————————————————————————————————————————————
pwd [选项] 显示当前的工作目录
pwd -P 显示真实路径(非快捷键链接的地址)
cd [目录名称] 切换工作路径,进入某个目录
cd - 切换到上一次的目录
cd ~ 切换到家目录
cd -test 切换到test用户的家目录
cd ..切换到上级目录
——————————————————————————————————————————————
ls [选项][文件] 查看目录中有哪些文件
ls -a 查看全部文件,包括隐藏文件
ls -d 仅查看目录本身
ls -h 查看易读的文件容量,如k.m.g
ls -l 显示文件的详细信息
ls -al 查看全部文件的详细信息
ls -ld /etc
——————————————————————————————————————————————
cat [选项][文件] 查看纯文件文件(较短的)
cat 文件名 -n 显示行号
cat 文件名 -b 显示行号,不包括空行
cat 文件名 -A 显示不可见的符号,如空格,tab键等
more [选项][文件] 查看纯文件文件(较长的)
more 文件名 -数字 预先显示的行数,默认为一页
more 文件名 -d 显示提示语句与报错信息
head [选项][文件] 查看纯文本文档的前N行
head -n 12 文件名 查看文本文件前12行
head -n -12 文件名 正常输出,如cat命令,但不显示最后的12行
tail [选项][文件] 查看纯文本文档的后N行
tail -n 20 文件名 查看文本文件最后20行
tail -f 文件名 持续刷新显示的内容
od [选项][文件] 查看特殊格式的文件
od -ta 文件 默认字符
od -tc ASCII字符
od -to 八进制
od -td 十进制
od -tx 十六进制
od -tf 浮点数
tr [原如字符] [目标字符] 用于转换文本文件中的字符
cat 1.txt | tr [a-z] [A-Z] 将1.txt文件的内容转换成大写
wc [参数] 文本 统计指定文本的行数
wc -l 文本 只显示行数
wc -w 只显示单词数
wc -c 只显示字节数
wc -l /etc/passwd 统计当前系统中的用户个数(此文件是一个用户一行)
cut [参数] [文本] 通过列来提取文本字符
cut -d 分隔符 文本 指定分隔符,默认为Tab
cut -f 指定显示的列数
cut -c 单位改为字符
cut -d: -f1 /etc/passwd 获取当前系统中所有用户的名称
grep ^root /etc/passwd | cut -d: -f7 获取root用户的默认SHELL解释器
diff [参数] 文件 用于比较多个文本文件的差异
diff -b 忽略空格引起的差异
diff -B 忽略空行引起的差异
diff --brief/-q 仅报告是否存在差异
diff -c 使用上下文输出格式
diff -b 1.txt 2.txt 比较1.txt与2.txt的差异
———————————————————————————————————————————————
touch [选项] 文件 创建空白文件与修改文件时间
touch test 创建一个名字为test的空白文档
touch -a 近修改“访问时间”(atime)
touch -m 近修改“更改时间”(mtime)
touch -d 同时修改atime与mtime
touch -t 要修改成的时间[YYMMDDhhMM]
touch -d "2 days ago" test 将test访问与修改时间修改为2天前,伪造了自己没有动过文件的假旬,黑客常用手法;
mkdir [选项] 目录 创建空白的文件夹
mkdir -m=MODE 默认的文件目录权限,如“-m 755"
mkdir -p 连续创建多层目录,若文件夹存在则忽略
mkdir -v 显示创建的过程
cp [选项] 源文件 目标文件 复制文件或目录
cp -p 保留原始文件的属性
cp -d 若对象为链接文件,则保留链接文件的属性
cp -r 递归持续复制,用于目录
cp -i 若目标在,刚询问是否覆盖
cp -a 相当于-p,-d,-r三个参数
mv [选项] 文件名 [目标路径|目标文件名] 移动文件或改名(重命名)
rm [选项] 文件 删除文件或目录
rm -f 忽略警告信息
rm -i 删除前先询问
rm -r 删除文件夹
rmdir 目录 删除空目录
dd [参数] 用于指定大小的拷贝的文件或指定转换文件
dd if 输入的文件名称
dd of 输出的文件名称
dd bs 设置每个“块”的大小
dd count 设置要拷贝“块”的个数
dd conv=ucase 将字母从小写转换为大写
dd conv=lcase 把字符从大写转换为小写
dd if=/dev/cdrom of=linux.centos7.iso 将光驱设置拷贝成镜像文件
———————————————————————————————————————————————
useradd [选项] 用户名 创建新的用户
useradd -d 指定用户的家目录,默认位置在/home/用户名
useradd -D 展示默认值
useradd -e 账号有效截止时期,格式:YYYY-MM-DD
useradd -g 指定一个初始用户组(组必须已存在)
useradd -G 指定一个或多个扩展用户组
useradd -N 不创建与同户同名的用户组
useradd -s 指定默认的Shell
useradd -u 指定用户的UID
useradd -d /home/test -u 6666 -s /sbin/nologin test 创建名为test的用户名,并定义家目录路径、UID以及登陆解析器(不允许登陆)
passwd [选项] [用户名] 修改用户的密码
passwd -l 锁定用户禁止其登陆
passwd -u 解除锁定,允许用户登陆
passwd --stdin 允许从标准输入修改用户密码,如(echo " new password " | passwd -stdin username )
passwd -d 使账号无密码
passwd -e 强制用户下次登陆时修改密码
passwd -S 显示用户的密码状态
userdel [选项] 用户名 删除用户所有表格
userdel -f 强制删除用户,家目录与其相关文件
userdel -r 同时删除用户,家目录与其相关文件
usermod [选项] 用户名 修改用户的属性
usermod -c 填写账号的备注信息
usermod -d -m -m与-d边用,可重新指定用户的家目录并自动将旧的数据转移过去
usermod -e 账户 到期时间,格式“YYYY-MM-DD”
usermod -g 变更所属用户组
usermod -G 变更扩展用户组
usermod -L 锁定用户禁上其登陆系统
usermod -U 解锁用户,允许其登陆系统
usermod -s 变更默认终端
usermod -u 修改用户的UID
groupadd [选项] 群组名 创建群组
———————————————————————————————————————————————
tar [选项] [文件]
tar -c 创建压缩文件
tar -x 解开压缩文件
tar -t 查看成压缩包有哪些文件
tar -z 用Gzip压缩或解压
tar -j 用bzip2压缩或解压
tar -v 显示压缩或解压的过程
tar -f 目标文件名
tar -p 保留原始的权限与属性
tar -P 使用绝对路径来压缩
tar -czvf test.tar.gz /test 打包并压缩文件为test.tar.gz
tar -xzvf test.tar.gz 解压并展开压缩包test.tar.gz
tar xzvf test.tar.gz -C /home/test 将test.tar.gz 解压到/home/test 目录中
———————————————————————————————————————————————
grep [选项] [文件] 用于对文本进行搜索
grep -b 将可执行文件当作文本文件来搜索
grep -c 公显示找到的次数
grep -i 忽略大小写
grep -n 显示行号
grep -v 反向选择,仅列出没有“关键词”的行
grep /sbin/nologin /etc/passwd 搜索在/etc/passwd中出现的“/sbin/nogogin“的行(找出系统中不允许登陆的用户)
grep abc /home/test/doc.xml >> /abc/doc 找出文件“/home/test/do.cml"中所有包含"abc"并输出到/abc/doc
find [查找路径] 寻找条件 操作 查找文件
find -name 匹配名称
find -perm 匹配权限(mode为完全匹配,-mode为包含)
find -user 匹配所有者
find -group 匹配所有组
find -mtime -n +n 匹配修改内容的时间(-n指n天以为,+n指n天以前)
find -atime -n +n 匹配访问文件的时间
find -ctime -n +n 匹配修改权限的时间
find -nouser 匹配无所有者的文件
find -nogroup 匹配无所有者的文件
find -newer f1 !f2 匹配比f1文件新的却又比f2旧的文件
find --type b/d/c/p/l/f 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件)
find --size 匹配文件的大小 (+50k 查找超过50K的文件,而-50K刚代表查找小于50k的文件)
find -prune 忽略某个目录
find --exec {} \;后面可接对搜索到结果进一步处理的命令
find / -name "host" -print 查找/目录(根目录)中所有以host开头的文件
find / -perm -4000 -print 搜索整个系统中所包含SUID的文件(因为SUID的数字表示法是4,而减号表示只要包含即可)
find / -user test -exec cp -arf {} /home/test1/ \; 找出用户test的文件并复制到/home/test1(重点是其中{}代表find命令搜索出的文件)
———————————————————————————————————————————————
echo "邮件标题" | mail -S "邮件内容" fujieace@126.com 向fujieace@126.com用户发送一封邮件
echo "rootpasswd" | passwd --stdin root 使用非交互式设置用户密码,将root用户密码修改为rootpasswd
命令 > 文件 将标准输出重定向到一个文件中,清空原有文件的数据
命令 2> 文件 将错误输出重定向到一个文件中,清空原有文件的数据
命令 >> 文件 将标准输出重定向到一个 文件中,追加到原有内容的后面
命令 2>> 文件 将错误准输出重定向到一个文件中,追加到原有内容的后面
命令 >> 文件 2>$1 将标准输出与错误输出共同写入到文件中,追加到原有内容的后面
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见"分界符"才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2
———————————————————————————————————————————————
ls /dev/tty* *匹配零个或多个字符
ls /dev/tty? ?匹配任意单个字符
ls dev/tty[0-9] 匹配范围类的数字
ls dev/tty[246] 匹配后面是2或4或6的文件
\ 转义后面单个字符
'' 转交所有的字符
"" 变量依然有效
``(反引号) 执行命令语句
———————————————————————————————————————————————
alias 别名=命令 用于设置命令的别名
unalias 别名 用于取消命令的别名
alias cp="cp -i" 如果担心复制文件时误将文件覆盖,以后执行cp命令时覆盖时都会询问用户
unalias cp 取消cp命令的别名
echo $PATH 查看当前的$PATH变量内容
PATH=$PATH:/test/bin 为变量增加新的值
env 查看环境变量有哪些
HOME 用户的主目录,家
SHELL 当前的shell是哪个程序
MAIL 邮件信箱文件
LANG 语系数据
RANDOM 随机数字
PS1 bash提示符
HISTFILESIZE history命令存储数量
PATH 在路径中的目录查找执行文件
EDITOR 默认文本编辑器
变量名称=新的值 定义变量(定义方法)
echo $变量名称 查看变量(查看方法)
export 变量名[=变量值] 将局部变量提升为全局变量
———————————————————————————————————————————————
VIM编辑器 命令模式 中常用的快捷键
dd 删除(剪切)光标所在的整行
5dd 删除剪切从光标处开始的5行
yy 复制光标所在整行
5yy 复制从光标处开始的5行
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后
/字符串 从文本中从上至下搜索该字符串
?字符串 从文本中从下至上搜索该字符串
n 显示搜索命令定位到的下一个字符串
N 显示 搜索命令定位到的上一个字符串
u 撤销上一步的操作
VIM编辑器 末行模式 中常用的快捷键
:w 保存
:q 退出
:q! 强制退出,放弃对文本修改的内容
:wq! 强制保存并退出
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
———————————————————————————————————————————————
vim /etc/hostname 配置/修改主机名称
hostname 查看当前的主机名称
vim /etc/sysconfig/network-scripts/ifcfg-eth0 网卡文件类似:ifcfg-eth0 ifcfg-eno ...... 配置/修改网卡信息
systemctl restart netword 重新启动网卡命令
vim /etc/yum.conf 默认yum配置文件
cd /etc/yum.repos.d 配置Yum 仓库 CentOS-Base.repo CentOS-Epel.repo ......
vim /etc/fstab 设置开机自动挂载
挂载步骤:
1、 fdisk -l
2、 fdisk /dev/vdb
3、 n
4、 回车...
5、 p
6、 w
7、 mkdir /45353502
8、 mount /dev/vdb1 /45353502
9、 vim /etc/fstab 开机自动挂载设置
10、 df -h
———————————————————————————————————————————————
cat /etc/shells 查看系统中所有可用的shell解释器
echo $SHELL 查看当前的shell解释器
shell接收用户的参数:$0 当前执行shell脚本的程序名
$1-9,$10... 参数的位置变量
$# 一共有多少个参数
$* 所有位置变量的值
$? 判断上一条命令是否执行成功,0为成功,非0为失败
[root@VM_141_255_centos shell]#vim test.sh
#!/bin/bash
echo "总当前脚本名称为$0"
echo "总共有$#个参数,分别是$*"
echo "第一个参数 为$1,第5个参数为$5."
 
[root@VM_141_255_centos shell]# sh test.sh one two three four five six
总当前脚本名称为b.sh
总共有6个参数,分别是one two three four five six
第一个参数 为one,第5个参数为five.
 
shell判断用户的参数:-d 测试是否为目录
-e 测试文件或否存在
-f 判断是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
[root@VM_141_255_centos shell]# [ -d /etc/fstab ]  测试此路径是否是目录
[root@VM_141_255_centos shell]# echo $?  判断上条命令是否执行成功,0为成功,非0为失败
 
逻辑测试:[ 表达式1 ] 逻辑操作符 [ 表达式2 ]
&& 逻辑与,而且的意思
|| 逻辑或,或者的意思
!逻辑否
 
[root@VM_141_255_centos shell]# [ -e /dev/vdb ] && echo 'vdb存在' 当前面命令执行成功才会执行&&后面的命令,&&=‘与’
[root@VM_141_255_centos shell]# echo $?
 
整数值比较:[ 整数1 操作符 整数2 ]
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于
[root@VM_141_255_centos shell]# [ -10 -eq 10 ]
[root@VM_141_255_centos shell]# echo $?
1
 
字符串比较:[ 字符串1 操作符 字符串2 ]
= 比较字符串内容是否相同
!= 是否不同
-Z 是否为空
———————————————————————————————————————————————
if then fi 单分支if语句
[root@VM_141_255_centos shell]# vim if.sh
#! /bin/bash
DIR='/45353502/shell/fujieace'
if [ ! -e $DIR ]
then
mkdir -p $DIR
fi
 
if then else fi 双分支if语句
[root@VM_141_255_centos shell]# vim ping.sh
#!/bin/bash
#为了减少用户的等待时间,需要为ping加一些参数;
#-c 代表发送数据包的个数
#-i 代表?.5秒发一个数据包
#-W 5秒则超时
#$1 用户输入shell的第一个参数
#$? 上一条命令的执行结果,0为真,非0为假
ping -c 3 -i 0.5 -W 5 $1 >>./ping.txt 2>$1
if [ $? -eq 0 ]
then
echo "ping $1 成功"
else
echo "ping $1 失败"
fi
 
[root@VM_141_255_centos shell]# sh ping.sh 127.0.0.1
ping 127.0.0.1 成功
 
[root@VM_141_255_centos shell]# cat ping.txt
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.034 ms
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.026/0.029/0.034/0.003 ms
 
if then elif else fi 多分支结构
read -p [提示语句] 变量名 将用户的输入参数赋值给指定的变量
[root@VM_141_255_centos shell]# vim elif.sh
#!/bin/bash
read -p '请输入0-100之间的数字:' NUMBER
if [ $NUMBER -ge 85 ] && [ $NUMBER -le 100 ]
then
echo "$NUMBER优秀"
elif [ $NUMBER -ge 70 ] && [ $NUMBER -le 84 ]
then
echo "$NUMBER良好"
elif [ $NUMBER -ge 60 ] && [ $NUMBER -le 69 ]
then
echo "$NUMBER及格"
else
echo "$NUMBER差"
fi
 
root@VM_141_255_centos shell]# sh elif.sh
请输入0-100之间的数字:99
99优秀
[root@VM_141_255_centos shell]# sh elif.sh
请输入0-100之间的数字:77
77良好
[root@VM_141_255_centos shell]# sh elif.sh
请输入0-100之间的数字:66
66及格
[root@VM_141_255_centos shell]# sh elif.sh
请输入0-100之间的数字:55
55差
 
for 变量名 in 取值列表 do 命令序列 done  for条件语句
[root@VM_141_255_centos shell]# vim for.sh
#!/bin/bash
read -p '输入用户密码:' PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &>/dev/null
if [ $? -eq 0 ]
then
echo "用户存在,退出"
else
useradd $UNAME &>/dev/null
echo "$PASSWD" | passwd --stdin $UNAME &>/dev/null
if [ $? -eq 0 ]
then
echo "用户创建成功"
else
echo "用户创建失败"
fi
fi
done
 
[root@VM_141_255_centos shell]# vim forip.sh
#!/bin/bash
HLIST=$(cat ./ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.5 -W 3 $IP &>/dev/null
if [ $? -eq 0 ];then
echo "主机$IP成功"
else
echo "主机$IP失败"
fi
done
 
while 条件操作 do 命令序列 done while条件语句
expr 求表达式变量的值
ARG1 | ARG2
ARG1 & ARG2
ARG1 < ARG2
ARG1 <= ARG2
ARG1 = ARG2
ARG1 != ARG2
ARG1 >= ARG2
ARG1 > ARG2
ARG1 + ARG2
ARG1 - ARG2
ARG1 * ARG2
ARG1 / ARG2
ARG1 % ARG2
$RANDOM 随机变量
 
[root@VM_141_255_centos shell]# vim while.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 10)
TIMES=0
echo '商品实际价格为0~10,你能猜出是多少吗?'
while true
do
read -p '请输入你猜测的价格数值:' INT
let TIMES++
#let TIMES++ 等于 $TIMES++
if [ $INT -eq $PRICE ];then
echo "恭喜你答对了,实际价格是:$PRICE "
echo "你总共猜测了$TIMES次"
exit 0
elif [ $INT -gt $PRICE ];then
echo '太高了!'
else
echo '太低了!'
fi
done
 
case条件语句
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
.........
*)
默认命令序列
esac
 
[root@VM_141_255_centos shell]# vim case.sh
#!/bin/bash
read -p '请输入一个字符,并按回车键确认:' KEY
case "$KEY" in
[a-z] | [A-Z])
echo '你输入的是字母'
;;
[0-9])
echo '你输入的是数字'
;;
*)
echo '你输入的是其它字符'
esac
———————————————————————————————————————————————
at 计划任务服务(一次性任务)
at <时间> 安排一次性任务
atq 或at -l 查看任务列表
at -c 序号 预览任务与设置环境
atrm 序号 删除任务
[root@VM_141_255_centos shell]# at 23:30
at> systemctl start httpd
at> (crtl+d 保存)
 
cron 计划任务服务(长期可循环的任务)
crontab -e [-u 用户名] 创建、编辑计划任务
crontab -l [-u 用户名] 查看计划任务
crontab -r [-u 用户名] 删除计划任务
注意:创建编辑计划任务固定格式: 分钟 小时 日期 月份 星期 命令
[root@VM_141_255_centos shell]# crontab -e
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /45343502/shell 每周星期1 3 5 将/45353502/shell 目录打包为backup.tar.gz
———————————————————————————————————————————————
/etc/passwd 用户名与UID 超级用户UID:默认0 系统用户UID:1-999 普通用户UID:1000-
/etc/shadow 用户名与密码
/etc/group 用户组名称与GID
———————————————————————————————————————————————
SUID:让执行者临时拥有属主的权限(仅对拥有执行权限二进制程序有效)
SGID:让执行者临时拥有属组的权限(仅对拥有执行权限二进制程序有效)
SBIT:只可管理自己的数据而不能删除他人文件(仅对目录有效)
设置和查看SUID/SGID/SBIT权限的方法:
SUID是4 SGID是2 SBIT是1
chmod 4755 filename
第一个4代表的就是这三个特殊命令,后面的755是普通权限。上面的命令把filename这个文件加入了SUID权限。
查看特殊权限的方法就是普通的ls命令:
SUID会在所属用户权限本应是x的地方显示s
SGID会在所属用户组权限本应是x的地方显示s
SBIT在其它用户权限本应是x的地方显示t
 
读 写 执行 SUID SGID SBIT
r      w     x        s        s      t
4      2     1        4       2      1
u: 所有者(属主)
g: 所有组(属组)
o: 既不是属主,也不是属组的其它人
 
文件类型:-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
———————————————————————————————————————————————
chmod [参数] 权限 文件或目录名称
chmod -R 755 45353502 将45353502目录属主权限:读写执行,所有组权限读执行,其它人权限读执行并递归
chmod u+x 45353502 将45353502所有者权限增加执行,u-x代表减少执行权限
chown [参数] 所属主:所属组 文件或目录名称 修改文件或目录的所属主与所属组(推荐)
chown 新主人 某文件 修改文件的所属主
chgrep 新组 某文件 修改文件的所属组
———————————————————————————————————————————————
chattr [参数] 文件 设置文件的隐藏权限
chattr i 将无法对文件进行修改,若对目录设置后则仅能修改予文件而不能新建或删除
chattr a 仅允许补充(追加)内容,无法覆盖/删除
chattr S 文件内容变更后立即同步到硬盘
chattr s 彻底从硬盘中删除,不可恢复(用o填充原文件所在硬盘区域)
chattr A 不再修改这个文件的最后访问时间
chattr b 不再修改文件或目录的存取时间
chattr D 检查压缩文件中的错误
chattr d 当使用dump命令备份时忽略本文件/目录
chattr c 默认将文件或目录进行压缩
chattr u 当删除此文件后依然保留其在硬盘中的数据,方便日后恢复
chattr t 让文件系统支持尾部合并
chattr X 可以直接访问压缩文件的内容
lsattr [参数] 文件 显示文件的隐藏权限
lsattr a 显示所有文件和目录
lsattr l 显示隐藏属性的全称(默认简写成一个字母)
lsattr R 递归处理,将指定目录下的所有文件及子目录一并处理
lsattr d 若目标文件为目录,请加此参数
[root@VM_141_255_centos shell]# chattr +a test.txt
给test.txt增加隐藏权限a,仅允许补充(追加)内容,无法覆盖/删除
 
[root@VM_141_255_centos shell]# rm -f test2
rm: cannot remove 'test2': Operation not permitted
 
[root@VM_141_255_centos shell]# lsattr test.txt
-----a-------e-- test.txt
 
[root@VM_141_255_centos shell]# chattr -a test.txt
———————————————————————————————————————————————
su [-] 用户名 变更用户者的身份(切换用户名)
su cart 切换到cart用户 (普通用户切换需要输入密码,root用户切换不需要输入密码)
su - duke 切换到duke用户,并将环境变量修改为duke用户的
sudo [参数] 命令名称 用于给普通用户提供额外权利来完成原来超级用户才能完成的任务
sudo -h 列出帮助信息
sudo -l 列出当前用户可执行的命令
sudo -u 用户名或UID 以指定的用户身份执行命令
sudo -k 清空安全时间,下次执行sudo里需要再次密码验证
sudo -b 在后台执行指定的命令
sudo -p 更改询问密码的提示语
 
sudo特色功能有:
1、限制用户执行指定的命令
2、记录用户执行的每一条命令
3、配置文件(/etc/sudoers)提供集中的管理用户、权限与主机等参数。
4、验证密码后5分钟(默认值)内无须再让用户验证密码,更加的方便。
 
visudo e键修改正内容,x键直接退出不保存,Q键强制保存退出
vim /etc/sudoers 98行
格式:允许使用sudo服务的主机 以谁的身份执行命令 具体可执行命令的列表
fujie ALL=(ALL) ALL 允许fujie用户执行所有的命令
fujie ALL=(root) /bin/cat 允许fujie用户以root用户身份执行cat命令
fujie ALL=(ALL) NOPASSWD: ALL 允许fujie用户以任意身份执行命令,且每次都不需要密码验证,108行
———————————————————————————————————————————————
ACL就是设置指定的特定用户或用户组对某个文件的操作权限。
并且如果对某个目录调协了访问控制策略,那么子文件则继承其访问策略,而若对文件设置了“文件访问控制策略(acl)则不再继承上级目录的控制策略。
setfacl [参数] 文件 用于增加或者修改ACL规则
setfacl -R 递归,对目录使用
setfacl -m 设置文件的acl规则
setfacl -b 删除acl规则
getfacl 文件 显示文件的ACL规则
setfacl -Rm u:fujie:rwx /home/shell 设置fujie对/home/shell拥有rwx权限;
———————————————————————————————————————————————
主要常见的目录定义:
/boot 开机所需文件(内核,开机菜单及所需配置文件等)
/dev 任何设备与接口都以文件形式存放在此目录
/etc 配置文件
/home 用户主目录
/bin 单用户维护模式下还能够被操作的命令
/lib 开机时用到的函数库及/bin与/sbin下面命令要调用的函数
/sbin 开机过程中需要的
/media 一般挂载或删除的设备
/opt 放置第三方的软件
/root 系统管理员的主文件夹
/srv 一些网络服务的数据目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核,进程,外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin 非系统开机时需要的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化 的文件,如日志
/lost+found 当生错误时,将一些丢失的文件片段存放在这里
———————————————————————————————————————————————
硬件设备:
/dev/hd[a-d] IDE设备(现在IDE设备很少了)
/dev/sd[a-p] SCSI/SATA/U盘
/dev/fd[0-1] 软驱
/dev/lp[0-15] 打印机
/dev/cdrom 光驱
/dev/mouse 鼠标
/dev/stO或/dev/htO(IDE设备) 磁带机
 
分区一般是3个主分区加1个扩展分区,扩展分区能够创建无限个逻辑分区;现在IDE设备很少,一般硬盘调协都是以:/dev/sd开头的;
而一台主机上可以有多块硬盘,系统会用a-p来代表16块不同的硬盘,(默认从a)开始
主分区编号从1开始至4结束,按顺序(也可指定分配数字)
逻辑分区从编号5开始按顺序,(也可指定分配数字)
 
mount 文件系统 挂载目录 挂载文件系统
mount -a 挂载所有在/etc/fstab中定义的文件系统
mount -t 指定文件系统的类型
mount /dev/vdb1 /45353502 将设备/dev/vdb1挂载到/45353502目录
 
[root@VM_141_255_centos 45353502]# vim /etc/fstab
/dev/vdb1 /45353502 ext4 defaults,nofail 0 0 开机自动挂载
 
umount [挂载点/设备文件] 用于撤销已经挂载的设备文件
umount /dev/vdb1 取消对/dev/vdb1设备文件的挂载
 
1:增加一块磁盘
 
2:fdisk [磁盘名称] 管理磁盘分区
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区表信息
w 保存并退出
q 不保存直接退出
fdisk /dev/vdb
 
3:mkfs.文件类型名称 格式化文件系统
文件类型有:cramfs,ext2,ext3,ext4,fat,msdos,xfs,btrfs,minix,vfat
mkfs.ext3 /dev/vdb1
 
4:将硬盘设备挂载到指定的目录
mkdir /45353502
mount /dev/vdb1 /45353502
 
5:设置系统启动后自动挂载该硬盘设备
vim /etc/fstab
/dev/vdb1 /45353502 ext3 defaults 0 0
 
6:查看硬盘文件系统的使用情况
df [选项] [文件] 查看挂载点信息与磁盘使用量
df -a 显示出所有的文件系统(包括虚拟的)
df --total 展出出总体使用量
df -h 更易读的容易格式如1K,234M,600G.....
df -i 展示出lnode的信息(默认是磁盘使用信息)
df -T 显示出文件系统的类型
df
 
du [选项] [文件] 查看磁盘的使用量
du -a 评估每个文件而非目录整体占用量
du -c 评估每个文件并计算出总占用量总和
du -h 更易读的容易格式如1k,234M,800G......
du -s 仅显示占用量总和
du ./shell
———————————————————————————————————————————————
必须要在挂载磁盘 分区 保存(w)退出后再执行以下两个命令:
partprobe 让内核同步分区信息(此步骤仅在没有找到分区设备的情况下才需要执行,非必要动作)
mkswap /dev/vdb1 将vdb1分区设备格式化为swap类型(mkswap 添加交换分区)
swapon /dev/vdb1 将vdb1的swap分区启用
vim /etc/fstab 设置开机后自动挂载swap分区设备
/dev/vdb1 swap swap defaults 0 0
———————————————————————————————————————————————
mdadm [模式] <RAID设备名称> [选项] [成员设备名称] 用于管理系统软件RAID硬盘阵列
mdadm阵列动作:
Assemble 将设备加入到以前定义的阵列
Build 创建一个没有超级块的阵列
Create 创建一个新的阵列,每个设备具有超级块
Manage 管理阵列(如添加和删除)
Misc 允许单独对阵列中的某个设备进行操作(如停止阵列)
Follow or Monitor 监控状态
Grow 改变阵列的容量或设备数目
mdadm阵列参数:
-a 检测设备名称
-n 指定设备数量
-l 指定raid级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-a 添加设备
-Q 查看摘要信息
-S 停止阵列
———————————————————————————————————————————————
quota服务 磁盘窠配额
dmesg | grep quota 查看内核是否支持quota功能
rpm -q quota 查看quota程序包是否已经安装
mount | grep 45353502 查看45353502目录是否支持quota功能(noquota表示暂时不支持)
[root@VM_141_255_centos ~]# vim /etc/fstab 让45353502目录支持quota功能
/dev/vdb1 /45353502 ext4 defaults,uquota 0 1
 
[root@VM_141_255_centos ~]# reboot 重启生效
 
quota [参数] 配额 文件系统 xfs_quota命令用于管理XFS文件quota硬盘配额
quota -c 以交换式或参数的形式设置要执行的命令
quota -P 设置提示或报错信息的程序名称,默认为xfs_quota
quota -x 专家模式,能够对quota做更多复杂的配置
[root@VM_141_255_centos ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 fujie' /boot
使用xsf_quota命令设置对fujie用户在/boot目录的磁盘配额;
使用quota专家模式限制磁盘软限制为3m\磁盘硬限制为6m\文件软限制为3个且文件硬限制为6个。
 
[root@VM_141_255_centos ~]# xfs_quota -x -c report /boot
获取/boot目录上的quota配额限制
 
dd if=/dev/zero of=/boot/tom bs=8M count=1 创建一个8m的文件
 
edquota [参数] [用户] 用于超级用户编辑其它用户的quota配额限制
edquota -u 编辑用户的配额限制
edquota -g 编辑用户组的配额限制
edquota -r 通过prc协议编辑远程的配额
———————————————————————————————————————————————
虚拟文件系统:VFS,virtual file system
vfs:ext3、 ext4、 xfs、 ntfs、 dos fs 、minix
———————————————————————————————————————————————
ln [选项] 目标 创建软硬链接
ln 文件名 链接名 创建硬链接
ln -S 文件名 链接名 创建软链接
ln -S 创建符号链接(不写,默认是硬链接)
ln -f 强制创建文件或目录的链接
ln -i 覆盖前先询问
ln -v 显示创建链接的过程
ln -s /45353502/shell /shell 对/45353502/shell做一个名为/shell的软链接
———————————————————————————————————————————————
ps [参数] 查看系统中的进程状态
ps -a 显示所有的进程,包括其它用户的
ps -u 用户以及其他详细信息
ps -X 显示没有控制终端的进程
top 用于监视进程的活动与系统负载
pidof [参数] [程序名称] 查询特定程序的进程PID值
pidof sshd 查看sshd进程的PID值
kill [参数] [进程PID号] 终止某个特定PID号的进程
kill -9 强制终止
kill -l 查看全部
kill -9 4674 强制终止PID号为4674的进程;
killall [参数] [进程名称]
killall php 终止名称为php的进程
———————————————————————————————————————————————
ss 查看本机的端口连接状态
ss -a 显示所有的套接字
ss -l 显示所有连接状态的套接字
ss -e 显示详细的套接字信息
ss -m 显示套接字的内存使用情况
ss -p 显示套接字的进程信息
ss -4 显示ipv4的套接字信息
ss -6 显示ipv6的套接字信息
ss -t 仅显示tcp的套接字信息
ss -u 仅显示udp的套接字信息
ss -n 不解析主机名(提升速度)
ss -s 查看概
ss -ntl 查看监听状态的套接字
ss -s 查看进程名和PID号码
———————————————————————————————————————————————
tracepath 目标地址(域名或IP) 查看IP数据包从本机到另外一台电脑经过的路由信息
tracepath www.fujieace.com
vim /etc/ssh/sshd_config sshd服务的配置文件
systemctl start sshd 启动sshd
systemctl enable sshd 将主机sshd服务加入到开机启动项
———————————————————————————————————————————————
ssh [参数] 主机 用于远程管理linux主机
ssh -p 指定连接端口(默认22)
ssh -v 显示连接过程的详细信息
ssh 192.168.10.20
ssh-keygen ssh密钥安全验证生成
———————————————————————————————————————————————
scp [参数] 本地文件 远程账户@f远程IP地址:远程目录 用于在网络中安全的传输文件
scp -v 显示详细的连接进度
scp -P 指定远程主机的sshd端口
scp -r 传送文件夹时请加此参数
scp -6 使用ipv6协议
scp /home/shell/a.txt 192.168.11.22:/home 将本地文件/home/shell/a.txt传送到远程主机/home目录
scp -r /home/shell test@192.168.11.22:/home 传送/home/shell文件夹并指定远程用户
scp [参数] 远程用户@远程IP地址:远程文件 本地目录 将远程主机文件传输到本地
scp test@192.168.11.22:/home /home/test 将远程主机的/home文件下载到本地的/home/test并指定用户
———————————————————————————————————————————————
yum install screen
screen 会话恢复,多窗口,会话共享服务
screen -A 让所有视窗自动调整适应当前终端机的大小
screen -d<会话名称> 将指定的screen会话离线
screen -r<会话名称> 将指定的scren会话恢复
screen -h<行数> 指定视窗的缓冲区行数
screen -S<会话名称> 指定screen会话的名称
screen -x 恢复所有离线的会话
screen -ls或-list 显示当前的screen会话
screen --wipe 自动将无法使用的screen会话删除
1、screen -S test 创建一个名称为test的会话
2、screen -ls 查看当前已经存在的会话
3、screen vim test.txt
4、screen -S ceshi
5、screen -ls
6、screen -r test 回到test会话中
7、screen -d test 将test会话离线
8、screen -d -r ceshi 将当前会话离线并回到ceshi会话中
screen会话共享功能
将两台主机均连入同一个服务器:
screen -S one 在主机A的终端上执行创建会话的操作
screen -x 在主机B的终端同步会话信息,此时A的终端和B的终端做任何操作,都可以实时同步到对方的屏幕上。、
———————————————————————————————————————————————
vsftpd服务程序
yum install vsftpd -y
ftp服务
yum install ftp -y
ftp [参数] [ftp主机]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值