目录

一、目录及文件操作

1.1创建目录

1.2删除目录或文件

1.3重命名目录或文件名称

1.5目录及文件列表查看

1.6复制目录或文件

1.7剪切目录或文件

1.8搜索目录或文件

1.9创建文件

1.10查看及修改文件内容信息

1.11查看文件内容信息(仅支持查看)

1.12终止当前操作

1.13重定向功能

二、文件打包和压缩及解压操作

2.1文件打包和压缩

2.2文件解压

三、查找操作命令

四、处理文本文件命令

4.1awk

4.2sed

五、用户及权限操作命令

5.1创建用户

5.2删除用户

5.3切换登录用户

5.4权限赋予

六、系统操作命令

七、挂载盘操作命令

7.1先查看查看磁盘状况

7.2进入需要挂载的磁盘中

 7.3格式化分区

7.4加载挂载盘

7.5设置永久挂载(开机自动挂载)

八、连接ftp或sftp命令

8.1连接ftp服务器

8.2下载文件 ​​​​​​​

 8.3上传文件

九、ssh远程登录命令

十、Linux对现有分区进行扩容(LVM 分区扩容)


一、目录及文件操作

1.1创建目录

命令:mkdir --创建目录命令

mkdir    abc            在当前目录下创建一个名为abc的文件夹
mkdir    /usr/abc       在指定目录下创建一个名为abc的文件夹

1.2删除目录或文件

命令:rm [-rf] 目录/文件

删除目录

1.rm -r 目录1     递归删除当前目录下的指定目录1
2.rm -rf 目录2    递归删除当前目录下的指定目录2(不询问)
3.rm -rf *        将当前目录下的所有目录和文件全部删除
4.rm -rf /*      【自杀行为命令!谨慎使用!】将会把根目录下的所有目录及文件全部删除

删除文件

1.rm    文件名称        删除当前目录下的指定文件
2.rm -f 文件文件        删除当前目录下的指定文件(不询问)

1.3重命名目录或文件名称

命令:mv 当前目录/文件  需改成的目录/文件名称

1.mv aaa bbb              将目录aaa改为bbb(重命名)
2.mv aaa.text bbb.text    将文件aaa改为bbb(重命名)

1.4目录切换

命令:cd --切换目录

1.cd /           切换到根目录
2.cd /root       切换到根目录下的root目录
3.cd ..          切换到上一级目录 
4.cd ~           切换到home目录
5.cd -           切换到上次访问的目录

1.5目录及文件列表查看

命令:ls [-al]或ll

1.ls                查看当前目录下的所有目录和文件
2.ls -a             查看当前目录下的所有目录和文件(包括隐藏的文件)
3.ls -l 或 ll       查看当前目录下的所有目录和文件(以列表方式显示查看,显示更多信息)
4.ls /data          查看指定目录下的所有目录和文件(如:ls /data)

1.6复制目录或文件

命令:cp -r/cp 目录/文件名称 目录/文件拷贝的目标位置   -r代表递归(仅只复制文件不需要加-r,如果复制目录必须加此-r选项,加上后则会拷贝文件夹——包括下一级的子文件夹,以及子文件夹中的子文件夹,以此类推。)

1.将/data/a目录下的aaa目录复制到 /usr目录下面     cp -r /data/a/aaa  /usr
2.将/data/a目录下的aaa.text文件复制到 /usr目录下面     cp /data/a/aaa.text  /usr
3.将/data/a目录下的aaa.text文件备份到 /data/a目录下面bbb.text     cp /data/a/aaa.text  /data/a/aaa.text(当前目录下的文件复制则备份文件名称不能跟原来一致)

1.7剪切目录或文件

命令:mv 目录/文件名称 目录/文件的新位置

1.将/data/a目录下的aaa目录剪切到 /usr目录下面          mv /data/a/aaa /usr
2.将/data/a目录下的aaa.text文件剪切到 /usr目录下面     mv /data/a/aaa.text /usr

1.8搜索目录或文件

命令:find -name 目录/文件 参数 文件名称

1.find /data/tmp -name 'a*'    查找/usr/tmp目录下的所有以a开头的目录或文件
2.find -name 'a*'              查找当前目录下的所有以a开头的目录或文件

1.9创建文件

命令:touch 文件名

1.在当前目录创建一个名为aa.txt的文件        touch  aa.tx

1.10查看及修改文件内容信息

命令 vi或vim  文件名

1.打开文件
vim test.txt       进入一般模式
注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式。
可以控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及点击键盘i/a/o进入编辑模式
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,j
【2】删除当前行:dd 
【3】查找:/字符
【4】进入编辑模式:i o a
【5】进入底行模式::
2.编辑文件
i(按键):在光标所在字符前开始插入
a(按键):在光标所在字符后开始插入
o(按键):在光标所在行的下面另起一新行插入       
3.ESC(按键)      退出编辑模式,将文件保存或退出vi
:wq             (shift+:调起输入框)(保存退出)
:wq!            (shift+:调起输入框)(表示强制保存退出)
:x              (shift+:调起输入框)(表示保存退出,写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间)
:q!            (shift+:调起输入框)(强制退出,内容不保存)
:q                (shift+:调起输入框)(如果内容修改则会提示是否保存)

1.11查看文件内容信息(仅支持查看)

命令:cat/more/less/tail/head 

cat:看最后一屏

1.cat /data/aa.txt 文件,只能显示最后一页内容

more:百分比显示

1.more /data/aa.txt文件		可以显示百分比,从第一页开始查看aa.txt文件内容,按回车键一行一行进行查看回车可以向下一行,空格可以向下一页,q可以退出查看

less:翻页查看

1.less /data/aa.txt		从第一页开始查看aa.txt文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和PageUp翻页,q结束查看

tail:指定行数或者动态查看(实时查看日志)

1.tail -10 /data/aa.log         查看aa.log文件的后10行,Ctrl+C结束。 
2.tail -f /data/aa.log			查看aa.log文件的后10行内容,Ctrl+C结束。
3.tail -n 7 /data/aa.log		查看aa.log文件的后7行内容,Ctrl+C结束。
4.head /data/aa.log				查看aa.log文件的前10行内容,Ctrl+C结束。
5.head -n 7 /data/aa.log		查看aa.log文件的前7行内容,Ctrl+C结束。

1.12终止当前操作

命令:Ctrl+c和Ctrl+z都是中断命令,作用不一样。

Ctrl+Z将任务中断,但是此任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,bg命令把被中断的任务放在后台执行,fg命令重新启动前台被中断的任务。
Ctrl+C是强制中断程序的执行。

1.13重定向功能

可以使用 > 或 < 将命令的输出的命令重定向到aa.txt文件中(如果没有这个文件则创建一个)

命令:echo [选项] [输出内容]

选项:
-e:支持反斜线控制的字符转换
-n:取消输出后行末的换行符号(内容输出后不换行)

1.echo 'Hello World' > /root/test.txt      将字符串“Hello World” 写入到test.txt文件中
2.echo "c.biancheng.net"                   echo后面的内容就会打印到屏幕上

在 echo 命令中如果使用了"-e"选项,则可以支持控制字符,如下所示。

控制字符        作 用
\\                输出\本身
\a                输出警告音
\b                退格键,也就是向左删除键
\c                取消输出行末的换行符。和“-n”选项一致
\e                Esc键
\f                换页符
\n                换行符
\r                回车键
\t                制表符,也就是Tab键
\v                垂直制表符
\Onnn            按照八进制 ASCII 码表输出字符。其中 0 为数字 0,nnn 是三位八进制数
\xhh            按照十六进制 ASCH 码表输出字符。其中 hh 是两位十六进制数

1.echo -e "\\ \a"                                        输出 \,同时会在系统音响中输出一声警告音
2.echo -e "ab\bc"                                        输出 ac 在这个输出中,在 b 的左侧有"\b",所以输出时只有 ac
3.echo -e "a\tb\tc\nd\te\tf"  
因为加入了制表符"\t"和换行符"\n",所以会按照格式输出
a b c
d e f
4.echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"     会按照制ASCII码输出的如141 这个八制数在 ASCII码中代表小写的"a",其他的以此类推
a b c
d e f
5.echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"           会按照十六进制ASCII码同样可以输出
a b c
d e f
6.echo -e "e[1;31m abed \e[0m"                           会把 abcd 按照红色输出。\e[1 是标准格式,代表颜色输出开始,\e[0m 代表颜色输出结束,31m 定义字体颜色是红色;echo 命令能够识别的颜色代码如下:30m代表黑色,31m代表红色,32m代表绿色,33m代表黄色,34m代表蓝色,35m代表洋红,36m代表青色,37m代表白色。
7.echo -e "e[1;42m abed \e[0m"                           会给 abcd 加入一个绿色的背景。echo 命令可以使用的背景颜色如下:40m=黑色,41m=红色,42m=绿色,43m=黄色,44m=蓝色,45m=洋红,46m=青色,47m=白色。

在 echo 命令中如果使用了"-n"选项,则表示在输出内容结束后,不会换行,直接显示新行的提示符。

1.echo -n "c.biancheng.net"     回车则屏幕显示:c.biancheng.net[root@localhost ~]#

二、文件打包和压缩及解压操作

2.1文件打包和压缩

命令:tar/unzip/zip

1.命令:tar -zcvf 打包压缩后的文件名 要打包的文件可以多个

linux中的打包文件格式:.tar      
linux中的压缩文件格式:.gz    
linux中打包并压缩的文件格式:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
 

其中:z:调用gzip压缩命令进行压缩
  c:打包文件
  v:显示运行过程
  f:指定文件名

1.cd /data/aa                           如aa目录下有1.txt 2.txt两个文件进行打包压缩
2.tar -cvf ab.tar 1.txt 2.txt		        将当前目录下1.txt 2.txt打包
3.tar -cvf ab.tar ./*					    将当前目录下的所有文件打包压缩成ab.tar文件      
4..tar -zcvf ab.tar.gz 1.txt 2.txt       打包并压缩/data/aa目录下的1.txt 2.txt文件 压缩后的压缩包指定名称为ab.tar.gz
5..tar -zcvf ab.tar.gz  *                打包并压缩/data/aa目录下的所有文件 压缩后的压缩包指定名称为ab.tar.gz

2.命令:unzip/zip

压缩(zip)

1.zip a.zip 1.txt							 将单个文件压缩(a.zip)
2.zip -r a.zip a/							 将目录进行压缩(a.zip)
3.zip -r a.zip 1.tx 2.txt		             将多个文件压缩为zip文件(a.zip)	

2.2文件解压

命令:tar [-zxvf] 压缩文件    
其中:x:代表解压

1.tar -xvf(-zxvf) a.tar				   解压a.tar压缩包,到当前文件夹下;
2.tar -xvf a.tar -C data/local 	       解压a.tar压缩包,到/data/local目录下(C为大写,中间无空格,C代表指定解压的位置)
3.tar -zxvf a.tar.gz				   解压a.tar.gz压缩包,到当前文件夹下
4.tar -zxvf a.tar.gz -C usr/local      解压a.tar.gz压缩包,到/data/local目录下(C为大写,中间无空格,C代表指定解压的位置)
5.tar xf a.tar.xz                      解压a.tar.xz压缩包,到当前文件夹下

解压缩(unzip)

1.unzip a.zip  								解压一个zip格式压缩包
2.unzip -d /data/app/a.zip			        将a.zip包,解压到指定/data/app/目录下

三、查找操作命令

 命令:grep

1.grep abc test.txt			             在test.txt文件中搜索abc字符串,大小写敏感且显示行;
2.grep -n abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行及行号;
3.grep -v abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示没搜索到的行;
4.grep -i abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行;
5.grep -ni abc test.txt		             在test.txt文件中搜索abc字符串,大小写敏感且显示行及行号;
6.ps -ef | grep nginx                    查找指定nginx服务进程 
7.ps -ef | grep nginx | grep -v grep     查找指定服务进程,排除gerp身 
8.ps -ef | grep nginx -c                 查找指定进程个数 

四、处理文本文件命令

4.1awk

awk是一种处理文本文件的语言,简单来说awk就是把文件逐行读入
awk [选项参数] 'script' var=value file(s)或awk [选项参数] -F scriptfile var=value file(s)
-F 定义字段分割符号;-v 定义变量并赋值

实例:

1.awk -F: '{print $0}' /data/test                                                                                   打印文件所有内容
2.awk -F: '{print NR, $0}' /etc/passwd /etc/hosts                                                                   打印文件所有内容,并包括行号
3.awk -F: '{print FNR,$0}' /etc/passwd /etc/hosts 
4.awk -F: '{print $0,NF}' /data/test                                                                                保留记录的字段数
5.awk 'BEGIN{FS=":"}{print $1,$3}' /data/test                                                                       输入字段分隔符,默认为空格
6.awk '{print $1,$4}' testlog.txt                                                                                   每行按空格或TAB分割,输出文本中的1、4项
7.awk '{printf "%-8s %-10s\n",$1,$4}' testlog.txt                                                                   每行按空格或TAB分割,输出文本中的1、4项(格式化输出)
8.awk -F, '{print $1,$2}' testlog.txt (awk 'BEGIN{FS=","} {print $1,$2}' testlog.txt)                               使用","分割
9.awk -F '[ ,]'  '{print $1,$2,$5}'   testlog.txt                                                                   使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
10.echo "this is a test" | awk '{ print $0 }'     输出为:this is a test                                              为打印一个或多个字段或所有字段,使用print命令。这是一个awk动作
11.echo "this is a test" | awk '{ print $1 }'     输出为:this is a test   
12.echo "this is a test" | awk '{ print $1, $2 }' 输出为:this is a test   
13.awk '$1>2' testlog.txt                                                                                           过滤第一列字符串大于2的行
14.awk '$1==2 {print $1,$3}' testlog.txt                                                                            过滤第一列字符串等于2的行
15.awk '$1>2 && $2=="Are" {print $1,$2,$3}' testlog.txt                                                             过滤第一列字符串大于2并且第二列等于'Are'的行
16.awk '{print NR,FNR,$1,$2,$3}' testlog.txt                                                                        输出顺序号 NR, 匹配文本行号
17.awk '{print $1,$2,$5}' OFS=" $ "  testlog.txt                                                                    指定输出分割符
18.awk '$2 ~ /th/ {print $2,$4}' testlog.txt                                                                        输出第二列包含 "th",并打印第二列与第四列
19.awk '/re/ ' testlog.txt                                                                                          输出包含 "re" 的行
20.awk 'BEGIN{IGNORECASE=1} /re/' testlog.txt                                                                       输出包含 "re" 的行忽略大小写
21.$ awk '$2 !~ /th/ {print $2,$4}' log.txt(awk '!/th/ {print $2,$4}' log.txt)                                      输出第二列不包含 "th",并打印第二列与第四列
22.ls -l *.txt | awk '{sum+=$5} END {print sum}'                                                                    计算文件大小
23.awk 'length>80' log.txt                                                                                          从文件中找出长度大于 80 的行
24.seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'        打印九九乘法表
25.awk -F : '{ print $1 }' /etc/passwd                                                                              打印第一个":"前内容
26.awk -F ':' 'BEGIN {print "start1,start7"} {print $1 "," $7} END {print "end1,end7"}' /etc/passwd  显示/etc/passwd的第1列和第7列,用逗号分隔显示,所有行开始前添加列名start1,start7,最后一行添加,end1,end7(BEGIN语句在所有文本处理动作执行之前被执行,END在所有文本处理动作执行之后被执行)
27.awk -F : '{ print NR "  " NF "  " $0 }' /etc/passwd                                                              统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
28.awk 'BEGIN { print length("this is a text") }'                                                                   输出字符串的长度
29.awk -F ':' '{ print toupper($1) }' /etc/passwd                                                                   将/etc/passwd的第一个":"前内容变成大写输出

4.2sed

sed 命令是利用脚本来处理文本文件
sed的命令格式:sed [options] 'command' file(s);
sed的脚本格式:sed [options] -f scriptfile file(s);
选项说明:

-e :直接在命令行模式上进行sed动作编辑,此为默认选项;
-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;
-i :直接修改文件内容;
-n :只打印模式匹配的行;
-r :支持扩展表达式;
-h或--help:显示帮助;
-V或--version:显示版本信息。

参数说明:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行);
c :取代, c 的后面可以接字串,这些字串可以把选定的行改为新的文本;
d :删除, 删除选择的行, d 后面通常不接任何东东;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(在当前行上面插入文本);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;
s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g ;
l :列表不能打印字符的清单;
n :读取下一个输入行,用下一个命令处理新的行而不是用第一个命令;
N :追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码;
q :退出Sed;
w :表示把行写入一个文件;
= :打印当前行号;
y :表示把一个字符翻译为另外的字符(但是不用于正则表达式);

实例:

1.sed -e 4a\newLine test                                     在test文件的第四行后添加一行内容"newline",并将结果输出到标准输出
2.sed -e '4 a newline\nnewline2' test                        在test文件的第四行后添加二行内容"newline",并将结果输出到标准输出
3.sed -e '4 a newline\nnewline2\n' test                      在test文件的第四行后添加二行内容"newline"和 1 行空行,并将结果输出到标准输出
4.sed -e '4 a \ ' testfile                                   在test文件的第四行之后追加 1 行空行
5.nl /data/test | sed '2a drink tea'                         在test文件第二行后(亦即是加在第三行)加上"drink tea"内容
6.nl /data/test | sed '2i drink tea'                         在test文件第二行前加上"drink tea"内容
7.nl /data/test | sed '2a Drink tea or\drink beer 2'         在test文件在第二行后面加入两行字,例如 Drink tea or与 drink beer2,每一行之间都必须要以反斜杠"\"来进行新行的添加
8.sed -n '/test/w file' example                              在example中所有包含test的行都被写入file里(w命令)
9.sed 's/book/books/' test                                   替换文本中的字符串把book替换为books
10.sed -n 's/test/TEST/p' test                               -n选项和p命令一起使用表示只打印那些发生替换的行:
11.sed -i 's/book/books/g' test                              直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books
12.sed -i '5i\this is a test line' test.conf                 在test.conf文件第5行之前插入this is a test line:
13.sed '/^test/i\this is a test line' file                   i\命令 将 this is a test line 追加到以test开头的行前面:
14.sed -i '2a\this is a test line' test.conf                 在 test.conf 文件第2行之后插入 this is a test line
15.sed '/^test/a\this is a test line' file                   将 this is a test line 追加到 以test 开头的行后面:
16.sed 's/book/books/g' test                                 使用后缀 /g 标记会替换每一行中的所有匹配:
17.nl /data/test | sed '2,5c No 2-5 number'                  将第2-5行的内容取代成为(No 2-5 number)
18.echo sksksksksksk | sed 's/sk/SK/2g'                      当需要从第N处匹配开始替换时,可以使用 /Ng:
输出:skSKSKSKSKSK
echo sksksksksksk | sed 's/sk/SK/3g'
输出:skskSKSKSKSK  
echo sksksksksksk | sed 's/sk/SK/4g'
输出:skskskSKSKSK 
19.nl /data/test | sed -n '5,7p'                              仅列出 /data/test 文件内的第 5-7 行
20.nl /data/test | sed '2,5d'                                 将 /data/test 的内容列出并且列印行号,同时,请将第 2~5 行删除;sed 的动作为 '2,5d' ,那个 d 就是删除!因为 2-5 行给他删除了,所以显示的数据就没有2-5行,注意一下,sed 后面接的动作,请务必以 '' 两个单引号括住.
21.nl /data/test | sed '2d'                                   只要删除第 2 行
22.sed '2d' test                                              删除test文件的第2行
23..nl /data/test | sed '3,$d'                                要删test文件的除第 3 到最后一行
24.sed '3,$d' test                                            删除test文件的第3行到末尾所有行
25.sed '$d' file                                              删除文件最后一行:
26.sed '/^$/d' test                                           删除test文件空白行
27.nl /etc/passwd | sed  '/root/d'                            删除/data/test所有包含root的行,其他行输出
28.nl /data/test | sed '/root/p'                              搜索/data/test有root关键字的行并打印,如果root找到,除了输出所有行,还会输出匹配行
29.nl /data/test | sed -n '/root/p'                           搜索/data/test有root关键字的行并打印,如果root找到,只会输出匹配行,使用-n的时候将只打印包含模板的行。
30.nl /data/test | sed -n '/root/{s/bash/bash2/;p;q}'         搜索/data/test,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为bash2,再输出这行
31.nl /data/test | sed -e '3,$d' -e 's/bash/bash2/'           删除/data/test第三行到末尾的数据,并把bash替换为bash2
32.sed '1,10y/abcde/ABCDE/' test                              把1~10行内所有abcde转变为大写,注意,正则表达式元字符不能使用这个命令(y命令)
33.sed -n 'p;n' test.txt(sed -n '1~2p' test.txt)              打印奇数行
34.sed -n 'n;p' test.txt(sed -n '2~2p' test.txt)              打印偶数行 

五、用户及权限操作命令

5.1创建用户

命令:useradd或adduser(需要超级用户)

格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

(添加用户)useradd 【参数】 用户名

账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,是保存在/etc/passwd文本文件中。

-g 属组,指定用户所属的群组
-u 设置uid,该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
-m 创建家目录
-M 没有家目录
-G 指定属于多个组
-s 指定登录shell
-d 指定家目录,替换系统默认值/home/<用户名>
-c 注释
-D 改变它默认的属性
-e 指定的日期是帐号失效的日期(日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效)
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。

(修改密码)passwd 参数 用户名
-l:锁定已经命名的账户名称
-u:解开账户锁定状态
-x, --maximum=DAYS:密码使用最大时间(天)
-n, --minimum=DAYS:密码使用最小时间(天)
-d:删除使用者的密码
-S:检查指定使用者的密码认证种类
--stdin:非交互式修改/设置密码,弊端是操作日志能查密码,用history -c 干掉。

1.useradd wly                                    建立一个新用户账户wly无关联组等
2.useradd -u 544 -d /usr/wly  -g users -m  wly   建立一个新用户账户wly,并设置UID为544,主目录为/usr/wly,属于users组: 加-m 如果主目录不存在则自动创建
3.passwd wly                                     修改密码

(修改账号信息)usermod 参数 用户名
-c:修改用户帐号的注释。
-d:修改用户登入时的目录。
-e:修改帐号的有效期限。
-f: 修改在密码过期后多少天即关闭该帐号。
-g:修改用户所属的群组。
-G:修改用户所属的附加群组。
-l:修改用户帐号名称。
-L:锁定用户密码,使密码无效。
-s:修改用户登入后所使用的shell。
-u:修改用户ID。
-U:解除密码锁定。
常用的参数包括-c, -d, -m, -g, -G, -s, -u以及-o等,与useradd命令中的选项一样,可以为用户指定新的资源值。

1.usermod -c "贵宾"  wly        将wly用户备注改为“贵宾”

5.2删除用户

命令:userdel 参数 用户名

1.1.userdel wly              只删除用户wly用户所长的家目录不删除
2.userdel -r wly             删除用户wly常用的选项是-r,它的作用是把用户的家目录一起删除

5.3切换登录用户

命令:su

作用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

1.su wly:切换到wly用户,但是路径还是/root目录
2.su - wly : 切换到wly用户,路径变成了/home/wly
3.su : 切换到root用户,但是路径还是原来的路径
4.su - : 切换到root用户,并且路径是/root
5.exit:退出返回之前的用户

5.4权限赋予

命令:sudo

普通用户能使用root权限的权利。只需输入自己账户的密码即可。

六、系统操作命令

1关机和重启命令

命令:shutdown(关闭计算机)

shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:

-h:停止系统服务并关机 ;-r: 停止系统服务后重启

关机
    shutdown -h now        立刻关机
	shutdown -h 15:30      到15:30关机,如果该时间小于当前时间,则到隔天关机
    shutdown -h 5        5分钟后关机
    poweroff            立刻关机
重启
    shutdown -r now        立刻重启
    shutdown -r 5        5分钟后重启
    reboot                立刻重启

2查找帮助命令

命令:--help;man命令(命令说明书)

1.shutdown --help:
2.ifconfig  --help:     查看网卡信息
3.man shutdown           注意:man shutdown打开命令说明书之后,使用按键q退出

3.查看历史使用命令:history
4.过滤与es相关命令:history | grep es
5.查看占用资源情况
        1).ps -au        占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等
        2).top            实时占用的资源;

6.查看当前目录所占存储情况
        1).du -lh                        查看当前文件下各文件夹占用存储空间
        2).du -sh                        查看当前文件夹所占存储空间
        3).du --max-depth=<目录层数>     超过指定层数的目录后,予以忽略。
        4).du --max-depth=1                 只查看当前目录下文件占用的存储空间7.管道命令:根据项目查看进程,更加PID查看项目,以及项目路径
        1).ps -ef                         查看所有的进程
        2).ps -ef | grep nginx            查看nginx相关的进程
8.查看机器间是否网络连通:ping 192.168.xx.xx 
9.查看当前系统端口:
1).命令:netstat -an  查看全部端口
2).命令:netstat -an | grep 8080 搜索指定端口
10.检查远程机器或本地机器上某端口是否打开: telnet www.baidu.com 80
11.查看IP信息:ifconfig 或 ifconfig | more
12.查看Linux 系统上的文件系统磁盘使用情况统计查看:df -h 
13.用于显示目录或文件的大小:du -h 目录路径    查看指定目录
14.查看当前目录:pwd
15.杀死进程(根据PID):命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号
16.配置网络:命令:setup 命令会开启一个图形化的配置工具
17.重启网络命令:service network restart
18.清屏命令:ctrl + l
19.查看liunx内核:(uname -a)/(cat /proc/version)/(uname -r)
20.查看linux版本:cat /etc/redhat-release
21.查看LINUX是多少位:getconf LONG_BIT
22.查看时区:date -R
23.关闭防火墙
        1).service iptables stop      临时关闭防火墙
        2).chkconfig iptables off     防火墙开启不启动
        3).service iptables status    查看防火墙状态
24.开机启动选项
        1)msconfig                    查看开机启动选项
        2)chkconfig                    查看开机启动服务列表
25.修改文件权限命令:chmod

 文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

rwx:r-代表可读,w-代表可写,x-代表该文件是一个可执行文件,如rwx任意位置变为-则代表不可读或不可写或不可执行文件。

其他参数:

X-特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行,s-当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限,t-设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位,-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

示例1:给test.txt文件权限改为可执行文件权限,test.txt文件的权限是chmod -rw------- test.txt

第一位:-就代表是文件,d代表是文件夹
第一段(2 ~ 4 个字符3位):代表拥有者的权限
第二段(5 ~ 7 个字符3位):代表拥有者所在的组,组员的权限
第三段(8 ~ 10个字符最后3位):代表的是其他用户的权限
示例2:chmod -rw-r--r--  test.txt
前三位代表当前用户对文件权限:可以读/可以写/不能执行
中间三位代表当前组的其他用户对当前文件的操作权限:可以读/不能写/不能执行
后三位其他用户对当前文件权限:可以读/不能写/不能执行

chmod命令也可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

例如, 755 将这样解释:

所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
用户组的权限用数字表达:属组的那个权限位数字的相加的总和。    如 r-x ,也就是 4+0+1 ,应该是 5。
其它用户的权限数字表达:其它用户权限位的数字相加的总和。      如 r-x ,也就是 4+0+1 ,应该是 5。

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:

示例1:将文件 test.txt 设为所有人皆可读取 :
chmod ugo+r        test.txt
chmod a+r          test.txt
chmod r--r--r--    test.txt
chmod 444          test.txt
chmod 100100100    test.txt
示例1:将文件 test1.txt 与 test2.txt 两个文件设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w test1.txt test2.txt
示例2:为 test.jar 文件拥有者增加可执行权限:
chmod u+x test.jar
示例3:将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *

示例4:设为该文件拥有者,与其所属同一个群体者可读写执,但其他以外的人则只能执行 :
chmod ug=rwx,o=x file
chmod 771 file
示例5:
chmod u+x test.txt (---x------)        为文件拥有者(user)添加执行权限;
chmod g+x test.txt (------x---)        为文件拥有者所在组(group)添加执行权限;
chmod 111 test.txt  (---x--x--x)        为所有用户分类,添加可执行权限;
chmod 222 test.txt(--w--w--w-)        为所有用户分类,添加可写入权限;    
chmod 444 test.txt (-r--r--r--)        为所有用户分类,添加可读取权限;

26.liunx开放指定端口及删除指定端口:
1、centos7以下
1)开放指定端口这里以开放的8080端口为例
方法一:直接编辑/etc/sysconfig/iptables文件
1、vi /etc/sysconfig/iptables
2、-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
3、service iptables restart或(systemctl restart iptables.service)(修改完保存退出,重启网卡服务)
4、service iptables status或netstat -nalp|grep 80(查看端口开放信息)
方法二:命令行方式
1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
2.保存:/etc/rc.d/init.d/iptables save
3.重启服务:/etc/init.d/iptables restart
4.查看端口是否开放:/sbin/iptables -L -n

2)关闭指定端口以8080端口为例
方法一:。
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 8080 -j DROP"
方法二:关掉对应的应用程序,则端口就自然关闭了
"kill -9 PID"(PID:进程号)
如:通过"netstat -anp | grep ssh"
有显示: tcp 0 127.0.0.1:2121 0.0.0.0:*LISTEN 7555/ssh
则:"kill -9 7555"

2、centos7
因为centos7默认的防火墙是firewalld防火墙,不是使用iptables,使用默认的firewalld防火墙。
这里以开放的8080端口为例
1)对外开放指定端口(8080)
#添加指定需要开放的端口(8080),设置成功输出:success:
firewall-cmd --add-port=8080/tcp --permanent或firewall-cmd --zone=public --add-port=28080/tcp --permanent
参数解释:
zone=public 作用域
add-port=8080/tcp 添加的端口,格式为:端口/通讯协议
permanent 永久生效,没有此参数则重启后失效
#重载入添加的端口:
firewall-cmd --reload
#查询3306端口是否开启成功,开启成功输出:yes,未开启:no:
firewall-cmd --query-port=8080/tcp
2)对外关闭指定端口(移除8080端口)
firewall-cmd --permanent --remove-port=8080/tcp或firewall-cmd --zone= public --remove-port=80/tcp (public可以不加)
#重载入添加的端口:
firewall-cmd --reload或firewall-cmd --complete-reload
(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务)
3)其他命令:
查看防火墙状态相关
#查看防火墙状态:systemctl status firewalld或者 firewall-cmd --state
#开启防火墙:systemctl start firewalld或service firewalld start 
#关闭防火墙:systemctl stop firewalld
#设置开机启动:systemctl enable firewalld
#停止并禁用开机启动:sytemctl disable firewalld
#查询已开放的端口:netstat  -ntulp | grep 80
#若遇到无法开启
#先用:
systemctl unmask firewalld.service 
#然后:
systemctl start firewalld.service

27.查看本机网卡:ip -brief address show

七、挂载盘操作命令

7.1先查看查看磁盘状况

命令:fdisk

1.fdisk -l   查看磁盘情况

7.2进入需要挂载的磁盘中

命令:fdisk  xxx 磁盘路径

1.fdisk /dev/vdb                              //对/dev/vdb 进行分区
2.Command (m for help):n                      //然后输入n新建分区
Command action
     e    extended                          //输入e为创建扩展分区
     p    primary partition (1-4)           //输入p为创建逻辑分区
输入p
3.Partion number(1-4):1                      //在这里输入l,就进入划分逻辑分区阶段了;
4.First cylinder (51-125, default 51):        //注:这个就是分区的Start 值;这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费;
Using default value 51
5.Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M 注:这个是定义分区大小的,自己计算大小,然后输入
6.Command (m for help): w                     //最后输入w回车保存 
7.d                                           //如果要删除已保存分区则输出d然后删除指定分区

再次输入命令:fdisk -l

可以看到/dev/vdb1分区刚才所建分区

 7.3格式化分区

命令:mkfs----指将分区格式化成不同的文件系统

文件系统:指操作系统用于明确存储设备或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法。

Linux下的文件类型有ext2、ext3、ext4、xfs等等

1.mkfs -t ext2 /dev/vdb1或 mkfs.ext2 /dev/vdb1     (ext2 格式)两者命令皆可
2.mkfs -t ext3 /dev/vdb1或 mkfs.ext3 /dev/vdb1     (ext3 格式)两者命令皆可
3.mkfs -t ext4 /dev/vdb1或 mkfs.ext4 /dev/vdb1     (ext4 格式)两者命令皆可
4.mkfs -t xfs/dev/vdb1或 mkfs.xfs/dev/vdb1         (xfs  格式)两者命令皆可

格式化好后,我们就可以用mount命令 加载这个分区,然后使用这个文件系统;

7.4加载挂载盘

命令:mount

1.mkdir /data                                    新增data数据目录
2.mount /dev/vdb1 /data                          将 /dev/vdb1 挂载到 data目录中。
3.umount  /dev/vdb1 或者是 umount  /data          将挂载的 vdb1 给卸载掉。注意卸载时一定要退出目录,不然无法进行卸载

7.5设置永久挂载(开机自动挂载)

因为mount挂载在重启服务器后会失效,所以需要将分区信息写到/etc/fstab文件中让它永久挂载

命令:vi(vim) /etc/fstab

在最后面增加:/dev/vdb1(磁盘分区)  /data(挂载目录) xfs(文件格式)defaults  0  0

重启系统

命令:df -h --查看自动挂载成功

八、连接ftp或sftp命令

8.1连接ftp服务器

命令:格式:ftp [hostname| ip-address]

1.在linux命令行下输入:ftp xxx.xxx.xxx.xxx(ip地址)
2.服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。

8.2下载文件 

命令:下载文件通常用get和mget这两条命令。

a) get--单个文件下载

格式:get [remote-file] [local-file]
将文件从远端主机中下载至本地主机中.
如要获取服务器上/Z848/node/20220101/11.txt文件下载到本地/data/ftp/20220126下

1.mkdir /data/ftp20220126        新增文件夹
2.ftp xxx.xxx.xxx.xxx(ip地址)    服务器询问你用户名和口令,分别输入用户名和相应密码,待认证通过即可。
3.cd /Z848/node/20220101         进入ftp服务器下载目录下
4.lcd /data/ftp20220126         使用这个命令改变本地服务器当前目录为/data/ftp20220126
5.get 11.txt                    下载11.txt这个文件

 b) mget--批量下载

格式:mget [remote-files]

1.ftp> mget *.* (回车)

 8.3上传文件

a) put--单个文件上传
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中.
如要把本地的/data/ftp20200126/1.bmp传送到远端主机/Z848/node/20220101/目录下,并改名为333.bmp

1.ftp> put 1.bmp /Z848/node/20220101/333.bmp (回车)      先进入/data/ftp20200126/目录下,在此目录下运行的ftp命令进行连接登录,然后执行这个命令进行文件上传

b) mput--批量文件上传
格式:mput local-files
将本地主机中一批文件传送至远端主机.
如要把本地当前/data/ftp20200126目录下所有bmp文件上传到远端服务器/Z848/node/20220101/目录下 下

1.cd /data/ftp20200126                     先进入/data/ftp20200126/目录下,在此目录下运行的ftp命令进行连接登录
2.ftp> cd /Z848/node/20220101 (回车)     进入ftp远程/Z848/node/20220101目录下
3.ftp> mput *.bmp (回车)                批量文件上传

九、ssh远程登录命令

远程登录命令:ssh

1.ssh 192.168.1.100                                     默认利用当前宿主用户的用户名登录
2.ssh root@192.168.1.100                                利用远程机的用户登录
3.ssh root@192.168.1.100  -o stricthostkeychecking=no   首次登陆免输yes登录
4.ssh root@192.168.1.100 "ls /home/root"                当前服务器A远程登录服务器B后执行某个命令
5.ssh root@192.168.1.100 -t "sh /home/root/ftl.sh"      当前服务器A远程登录服务器B后执行某个脚本

十、Linux对现有分区进行扩容(LVM 分区扩容)

1)首先查询磁盘使用情况,对/dev/mapper/rootvg-var 进行扩容,目前只有2G容量将扩容到3G

[root@localhost ~]# df -h

2)查看 VG现有卷组

[root@localhost ~]# vgdisplay

可以看出只有一个卷组,卷组剩余可用11.41G

3)搜索已存在的物理卷

[root@localhost ~]# pvscan(搜索已存在的物理卷

可以看出只有一个卷组物理卷,卷组总大小:48.41G,剩余可用11.41G 

4)对/dev/mapper/rootvg-var进行扩容增加1G容量

[root@localhost ~]# lvresize -l +1G /dev/mapper/rootvg-var

这个时候,lv大小虽然变大了,但是/dev/mapper/rootvg-var文件系统并没有变大,我们还需要使用xfs_growfs (针对xfs文件系统)或resize2fs (针对ext文件系统)来处理下。

[root@localhost ~]# xfs_growfs /dev/mapper/rootvg-var​​​​​​​ 

再次查看已成功扩容

[root@localhost ~]# df -h 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐