Linux常用操作命令大全
目录
8.2下载文件
一、目录及文件操作
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
更多推荐
所有评论(0)