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主机]linux命令大全

    A+
发布日期:2017年04月20日 09:58:25  所属分类:Linux
最后更新时间:2017-06-16 17:11:31
付杰
  • ¥ 79.0元
  • 市场价:99.0元
  • ¥ 6.8元
  • 市场价:8.8元
  • ¥ 298.0元
  • 市场价:899.0元
  • ¥ 59.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  0

  1. 头像 养猪不炸怪我咯 4

    命令挺齐全的!