工作中常用的linux命令整理
文章目录
- 1、单引号和双引号的区别:
- 2、关机:shutdown -h now | init 0 | poweroff
- 3、重启:shutdown -r now | reboot
- 4、用户信息文件:/etc/passwd
- 5、用户密码文件(包括密码过期时间):/etc/shadow
- 6、用户组信息文件:/etc/group
- 7、更改语言:LANG=en_US
- 8、带属性复制:cp -rp | -ra
- 9、给文件或者目录设置特殊权限,可以增加文件或者目录的安全性:chattr [+|- a] | [+|- i] 文件或者目录,
- 10、权限对应关系:r[4]:读 w[2]:写 r[1]:执行,『 -rwxr-xr-- 』= [4+2+1] [4+0+1] [4+0+0] = 754
- 11、计算器:bc
- 12、日历:cal [月份] [年份]
- 13、时间日期:date [+%Y-%m-%d-%H:%M]
- 14、查询指令帮助:man [指令]
- 15、查询进程:ps -aux
- 16、获取文档名:basename [目录]
- 17、获取文档目录:dirname [目录]
- 18、查看系统版本信息:lsb_release -a
- 19、查看内核版本:uname -r
- 20、按照时间排序列出:ls -lthr
- 21、带行号查看:cat -n | -b [文件]
- 22、更改文件或者目录时间:touch [-d "2021-01-01 14:55:00"] | [-t 1663655853320] 文件或者目录
- 23、查看root用户信息:id root
- 24、查找文件或者目录:
- 25、查看文件或者目录:df -aTh
- 26、查看文件或者目录容量:du -ah,-a :列出所有的文件目录,-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
- 27、创建软连接,相当于windows上的快捷方式:ln -s 来源文件 目标文件
- 28、格式化磁盘:mkfs -t ext4 /dev/hdc6
- 29、检查磁盘:fsck -C -f -t ext3 /dev/hdc6
- 30、磁盘挂载:mount /dev/vda1 /var/log,
- 31、挂载系统镜像:mount -o loop /root/centos5.2_x86_64.iso /madia
- 32、查看系统内存情况:free
- 33、创建快捷键别名:alias 别名='命令',例如,alias lm='ls -al',直接执行lm就相当于执行ls -al命令。
- 34、删除快捷键别名:unalias 别名
- 35、获取系统目前的语言情况:locale
- 36、获取键盘输入: read [-pt] variable,
- 37、变量声明:declare [-aixr] variable
- 38、查看历史命令:history
- 39、自定义环境变量文件:在/etc/profile.d/目录下,创建自定义文件xxx.sh,写入用户自定义环境变量,可以避免由于直接更改系统环境文件而导致的问题,系统在启动的时候,就会加载/etc/profile.d/下的所有的以.sh结尾的文件。比如可以将tomcat、java等软件的环境变量配置在自定义的文件中,效果和直接更改系统环境文件是一样的。
- 40、字符串操作:
- 41、格式化打印:printf '打印格式' 实际内容
- 41、条件判断:
- 42、function 功能,创建函数:
- 43、循环:
- 44、定时任务:
- 45、动态观察系统变化: top [-d 数字] | top [-bnp]
- 46、网络追踪: netstat -[atunlp]
- 47、软件管理:
- 48、账号:
- 49、Shell script :
- 50、备份大型目录数据:dd if=/dev/vda1 of=/home/bak bs=1M count=512,dd 就好像在迭砖块一样,将 512 块,每块 1MB 的砖块堆栈成为一个大档案 (/home/bak) , 最终就会出现一个 512MB 的档案。
- 51、备份数据:
- 52、恢复数据:
- 53、解压缩:
- 54、vim编辑器:
- 55、Linux下磁盘分区:
- 56、忘记root密码操作步骤:
1、单引号和双引号的区别:
- 单引号:' t o d a t e ′ ,无法得到 t o d a t e 变量的值,直接打印 to_date',无法得到to_date变量的值,直接打印 todate′,无法得到todate变量的值,直接打印to_date,就相当于是字符串。
- 双引号:“$to_date”,能得到to_date变量的值,打印的是o_date变量的值。
- 嵌套使用:‘“ t o d a t e " ′ ,单引号在外面,直接打印 " to_date"',单引号在外面,直接打印" todate"′,单引号在外面,直接打印"to_date”,就相当于是字符串打印。"’$to_date’",单引号在里面,打印的就是to_date的值,但是值上加了单引号。
$> to_date=123
$> echo '$to_date'
$to_date
$> echo "$to_date"
123
$> echo '"$to_date"'
"$to_date"
$> echo "'$to_date'"
'123'
$>
2、关机:shutdown -h now | init 0 | poweroff
3、重启:shutdown -r now | reboot
4、用户信息文件:/etc/passwd
5、用户密码文件(包括密码过期时间):/etc/shadow
6、用户组信息文件:/etc/group
7、更改语言:LANG=en_US
8、带属性复制:cp -rp | -ra
9、给文件或者目录设置特殊权限,可以增加文件或者目录的安全性:chattr [+|- a] | [+|- i] 文件或者目录,
- +a:只能增加数据,而不能删除也不能修改数据,
- +i:不能增加、删除、修改数据
10、权限对应关系:r[4]:读 w[2]:写 r[1]:执行,『 -rwxr-xr-- 』= [4+2+1] [4+0+1] [4+0+0] = 754
11、计算器:bc
huanzi@hp-pc:~ # bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
12、日历:cal [月份] [年份]
huanzi@hp-pc:~ # cal 9 2022
September 2022
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
huanzi@hp-pc:~ #
13、时间日期:date [+%Y-%m-%d-%H:%M]
huanzi@hp-pc:~ # date +%Y-%m-%d-%H:%M
2022-09-27-09:15
huanzi@hp-pc:~ #
14、查询指令帮助:man [指令]
huanzi@hp-pc:~ # man cat
Man: find all matching manual pages (set MAN_POSIXLY_CORRECT to avoid this)
* cat (1)
cat (1p)
Man: What manual page do you want?
Man: 1
huanzi@hp-pc:~ #
15、查询进程:ps -aux
huanzi@hp-pc:~ # ps aux | grep tomcat
root 20896 0.0 0.0 38792 3900 pts/1 S+ 09:21 0:00 grep --color=auto tomcat
huanzi@hp-pc:~ #
16、获取文档名:basename [目录]
huanzi@hp-pc:~ # basename /root/risk_push.txt
risk_push.txt
huanzi@hp-pc:~ #
17、获取文档目录:dirname [目录]
huanzi@hp-pc:~ # dirname /root/risk_push.txt
/root
huanzi@hp-pc:~ #
18、查看系统版本信息:lsb_release -a
huanzi@hp-pc:~ # lsb_release -a
LSB Version: n/a
Distributor ID: SUSE
Description: SUSE Linux Enterprise Server 12 SP4
Release: 12.4
Codename: n/a
huanzi@hp-pc:~ #
19、查看内核版本:uname -r
huanzi@hp-pc:~ # uname -a
Linux huanzi@hp-pc 4.12.14-94.41-default #1 SMP Wed Oct 31 12:25:04 UTC 2018 (3090901) x86_64 x86_64 x86_64 GNU/Linux
huanzi@hp-pc:~ #
20、按照时间排序列出:ls -lthr
huanzi@hp-pc:~ # ls -lthr
total 99M
drwxr-xr-x 4 root root 4.0K Jan 11 2019 inst-sys
drwx------ 3 root root 4.0K Jan 11 2019 .dbus
drwx------ 3 root root 4.0K Jan 11 2019 .cache
drwxr-xr-x 2 root root 4.0K Jan 11 2019 Videos
drwxr-xr-x 2 root root 4.0K Jan 11 2019 Templates
drwxr-xr-x 2 root root 4.0K Jan 11 2019 Public
21、带行号查看:cat -n | -b [文件]
huanzi@hp-pc:~ # cat -n ./test.txt
1 test
2 test
3 test
4 test
5 test
huanzi@hp-pc:~ #
22、更改文件或者目录时间:touch [-d “2021-01-01 14:55:00”] | [-t 1663655853320] 文件或者目录
huanzi@hp-pc:~ # touch -d '2021-12-02 14:14:14' ./test.txt
huanzi@hp-pc:~ # ll
-rw-r--r-- 1 root root 25 Dec 2 2021 test.txt
23、查看root用户信息:id root
huanzi@hp-pc:~ # id root
uid=0(root) gid=0(root) groups=0(root)
huanzi@hp-pc:~ #
24、查找文件或者目录:
-
find ./ -name test.txt:在当前目录下查找name为test的文件或者目录
huanzi@hp-pc:~ # find ./ -name test.txt ./test.txt huanzi@hp-pc:~ #
-
find / -mtime [+|-] [4|0]:在/目录下查找文件或者目录,+4:查找大于时间5的 -4:查找时间为4天内的 4:查找第4天开始算24小时内的 0:查找从当前时间算24小时内的
huanzi@hp-pc:~ # find ./ -mtime 0 ./test.txt
-
find ./ -size +25k -a -size -30k -exec ls -lh {} ;:找出 当前目录下,文件大小介于 30K 到25K 之间文件,并且将权限完整的列出 (-exec ls -lh {} 😉,注意那么;不能省略,-a就是and的意思,-o就是or的意思。
huanzi@hp-pc:~ # find ./ -size +25k -a -size -30k -exec ls -lh {} \; -rw-r--r-- 1 root root 28K Mar 11 2022 ./data_251.log
-
find /etc -size +50k -a ! -user root -exec ls -ld {} ;:找出 /etc 底下,文件大小大于 50K 但是不属于root用户的文件,并且将权限完整的列出 (-exec ls -ld {} 😉,注意那么;不能省略,-a就是and的意思,-o就是or的意思,!代表不满足后边的条件。
huanzi@hp-pc:~ # find ./ -size +25k -a -size -30k -a ! -user root -exec ls -lh {} \; huanzi@hp-pc:~ #
-
find /etc -newer /etc/test:找出比test文件时间更新的文件
huanzi@hp-pc:~ # find ./ -newer ./test.txt -exec ls -lh {} \; -rw-r--r-- 1 root root 25 Sep 27 00:00 test.txt -rw------- 1 root root 13K Sep 27 09:56 ./.viminfo
-
whereis test:这个查找的是系统数据库,只有系统数据库同步之后才能查找到。
huanzi@hp-pc:~ # whereis test.txt test: /usr/bin/test /usr/share/man/man1p/test.1p.gz /usr/share/man/man1/test.1.gz huanzi@hp-pc:~ #
25、查看文件或者目录:df -aTh
- -a :列出所有的文件系统。
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示。
- -T:列出对应的文件系统。
huanzi@hp-pc:~ # df -aTh
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda2 ext3 88G 11G 75G 13% /
/dev/vdb2 ext3 295G 94G 186G 34% /var/log
/dev/vdb1 ext3 295G 21G 260G 8% /opt
/dev/vdb3 ext3 1.4T 357G 996G 27% /srv/BigData
huanzi@hp-pc:~ #
26、查看文件或者目录容量:du -ah,-a :列出所有的文件目录,-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
huanzi@hp-pc:~ # du -ah
4.0K ./Documents
4.0K ./Public
4.0K ./.ssh/authorized_keys
4.0K ./.ssh/known_hosts
27、创建软连接,相当于windows上的快捷方式:ln -s 来源文件 目标文件
huanzi@hp-pc:~ # ln -s ./text.json ./test.txt1
lrwxrwxrwx 1 root root 11 Sep 27 13:50 test.txt1 -> ./text.json
28、格式化磁盘:mkfs -t ext4 /dev/hdc6
29、检查磁盘:fsck -C -f -t ext3 /dev/hdc6
- -C :可以在检验的过程当中,使用一个直方图来显示目前的进度。
- -f :强制检查。
- -t:指定磁盘格式,可以省略,系统会自动检测。
30、磁盘挂载:mount /dev/vda1 /var/log,
- -l:列出所有的挂载点。
- -a:依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来。
huanzi@hp-pc:~ # mount -l
/dev/vdb2 on /var/log type ext3 (rw,noatime,errors=panic,data=ordered)
/dev/vdb1 on /opt type ext3 (rw,noatime,errors=panic,data=ordered)
/dev/vdb3 on /srv/BigData type ext3 (rw,noatime,data=ordered)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
huanzi@hp-pc:~ #
31、挂载系统镜像:mount -o loop /root/centos5.2_x86_64.iso /madia
32、查看系统内存情况:free
huanzi@hp-pc:~ # free
total used free shared buffers cached
Mem: 65718136 24792992 40925144 1631084 1298812 8242732
-/+ buffers/cache: 15251448 50466688
Swap: 0 0 0
huanzi@hp-pc:~ #
33、创建快捷键别名:alias 别名=‘命令’,例如,alias lm=‘ls -al’,直接执行lm就相当于执行ls -al命令。
huanzi@hp-pc:~ # alias
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'
huanzi@hp-pc:~ #
34、删除快捷键别名:unalias 别名
35、获取系统目前的语言情况:locale
huanzi@hp-pc:~ # locale
LANG=POSIX
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
huanzi@hp-pc:~ #
36、获取键盘输入: read [-pt] variable,
- -p:后面跟提示信息,
- -t:表示等待用户输入时的时长,
- variable:是指你的输入的内容会被设置成指定的变量名。
huanzi@hp-pc:~ # read -p '请输入用户名:' -t 10 name
请输入用户名:测试
huanzi@hp-pc:~ # echo $name
测试
huanzi@hp-pc:~ #
37、变量声明:declare [-aixr] variable
- -a :将后面名为 variable 的发量定义成为数组 (array) 类型
- -i :将后面名为 variable 的发量定义成为整数数字 (integer) 类型
- -x :用法和 export 一样,就是将后面的 variable 设置成环境发量;
- -r :将变量设定成readonly 类型,该发量不可被更改内容,也不能 unset
huanzi@hp-pc:~ # declare -ax name='这是测试'
huanzi@hp-pc:~ # echo $name
这是测试
huanzi@hp-pc:~ #
38、查看历史命令:history
- n :数字,意思是要列出最近的 n 笔命令行
- -c :将目前的 shell 中的所有 history 内容全部消除
- -a :将目前新增的 history 命令新增入 histfiles 中
- -r :将 histfiles 中的内容读取目前这个 shell 的 history 记忆中
- -w :将目前的 history 记忆内容写入 histfiles 中
注意:使用history列出来命令之后,使用 [!序号] 可以执行对应的命令,[!al] 执行所有以al开头的命令。
huanzi@hp-pc:~ # history 10
1139 2022-09-28 09:06:02 declare -a name='这是测试'
1140 2022-09-28 09:06:04 echo $name
1141 2022-09-28 09:06:16 declare -ax name='这是测试'
1142 2022-09-28 09:06:18 echo $name
1143 2022-09-28 09:09:25 history -n 2
1144 2022-09-28 09:09:30 history
1148 2022-09-28 09:09
39、自定义环境变量文件:在/etc/profile.d/目录下,创建自定义文件xxx.sh,写入用户自定义环境变量,可以避免由于直接更改系统环境文件而导致的问题,系统在启动的时候,就会加载/etc/profile.d/下的所有的以.sh结尾的文件。比如可以将tomcat、java等软件的环境变量配置在自定义的文件中,效果和直接更改系统环境文件是一样的。
40、字符串操作:
-
切割字符串:cut -d ‘分隔字符’ -f fields 文件名
- -d :后面接分隔字符。和 -f 一起使用;
- -f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思;
- -c :以字符 (characters) 的单位取出固定字符区间;
huanzi@hp-pc:~ # cat ./test.txt test:pp test:pp test:pp test:pp huanzi@hp-pc:~ # cut -d ':' -f 2 ./test.txt pp pp pp pp huanzi@hp-pc:~ #
-
过滤字符串:grep [-acinv] [–color=auto] ‘搜寻字符串’ filename
- -a :将 binary 档案以 text 档案的方式搜寻数据
- -c :计算找到 ‘搜寻字符串’ 的次数
- -i :忽略大小写,所以大小写规为相同
- -n :顺便输出行号
- -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
- –color=auto :可以将找刡的关键词部分加上颜色的显示喔!
- -A :后面可加数字,为 after 的意思,除了列出该行外,后续的 n 行也列出来;
- -B :后面可加数字,为 befer 的意思,除了列出该行外,前面的 n 行也列出 来;
huanzi@hp-pc:~ # grep -an 'pp' ./test.txt 1:test:pp 2:test:pp 3:test:pp 4:test:pp huanzi@hp-pc:~ #
-
排序: sort [-fbMnrtuk] [file or stdin]
- -f :忽略大小写
- -b :忽略最前面的空格符部分;
- -M :以月份名称排序,例如 JAN, DEC 等等的排序方法;
- -n :使用『纯数字』进行排序
- -r :反向排序;
- -u :就是 uniq ,相同的数据中,仅出现一行
- -t :分隔符,预设使用 [tab] 键分隔
- -k :以哪列 (field) 进行排序,后边跟数字,代表第几列
huanzi@hp-pc:~ # ll | sort -k 4 total 100600 -rw------- 1 root root 0 Oct 27 2020 .history -rw-r--r-- 1 root root 0 Sep 27 13:50 text.json lrwxrwxrwx 1 root root 11 Sep 27 13:50 test.txt1 -> ./text.json -rw------- 1 root root 16 Jan 11 2019 .esd_auth -rw-r--r-- 1 root root 21 Sep 27 17:29 hbase_recorve.sh
-
去重: uniq [-ic]
- -i :忽略大小写
- -c :进行行计数
huanzi@hp-pc:~ # cat ./test.txt | uniq -ci 4 test:pp 4 test huanzi@hp-pc:~ #
-
统计文件字数:wc [-lwm]
-
-l :仅列出行;
-
-w :仅列出多少字(英文单字);
-
-m :多少字符;
注意:输出的三个数字中,分删代表: 『行、字数、字符数』
huanzi@hp-pc:~ # wc ./test.txt 8 8 52 ./test.txt huanzi@hp-pc:~ #
-
-
内容输出到文件并在屏幕上显示:tee [-a] file
- -a :以累加 (append) 的方式,将数据加入 file 当中!
huanzi@hp-pc:~ # tee -a ./tee.txt 这是地第一次输入 这是地刺第一次输入 这是第二次输入 这是第二次输入 这是第三次输入 这是第三次输入 ^C huanzi@hp-pc:~ # cat ./tee.txt 这是地刺第一次输入 这是第二次输入 这是第三次输入 huanzi@hp-pc:~ #
-
删除文件或者替换文件:tr [-ds] SET1 …
- -d :删除除信息当中的的SET1 这个字符串;
- -s :取代掉重复的字符!
huanzi@hp-pc:~ # echo '1234' | tr -d '3' 124 huanzi@hp-pc:~ # echo '1234' | tr -s '3' '9' 1294 huanzi@hp-pc:~ #
-
字符转化:col [-xb]
- -x :将 tab 键转换成对等的空格键
- -b :在文字内有反斜杠 (/) 时,仅保留反斜杠最后接的那个字符
huanzi@hp-pc:~ # echo -e "123\t456" | col -x 123 456 huanzi@hp-pc:~ #
-
两个文件当中,有 “相同数据” 的那一行,拼接在一起:join [-ti12] file1 file2
- -t :join 默认以空格符分隔数据,并且比对『第一个字段』的数据, 如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!
- -i :忽略大小写
- -1 :这个是数字1 ,代表『第一个档案要用那个字段来分析』的意思;
- -2 :代表『第二个档案要用那个字段来分析』的意思。
huanzi@hp-pc:~ # cat ./student.txt lala 20 daiad 23 huahu 99 huanzi@hp-pc:~ # cat ./student1.txt lala 66 daiad 88 huahu 99 huanzi@hp-pc:~ # join ./student.txt ./student1.txt lala 20 66 daiad 23 88 huahu 99 99
-
将两行数据连接在一起,并以tab键分隔:paste [-d] file1 file2
- -d :后面可以接分隔字符。预设是以 [tab] 分隔
- -:如果 file 部分写成 - ,表示来自 standard input 的资料的意思。
huanzi@hp-pc:~ # paste ./student.txt ./student1.txt lala 20 lala 66 daiad 23 daiad 88 huahu 99 huahu 99 huanzi@hp-pc:~ # paste -d '=' ./student.txt ./student1.txt lala 20=lala 66 daiad 23=daiad 88 huahu 99=huahu 99 huanzi@hp-pc:~ #
-
在将 [tab] 键转成空格键:expand [-t] file
- -t :后面可以接数字。一般来说,一个 tab 键可以用 8 个空格键替代。
huanzi@hp-pc:~ # cat ./tab.txt 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ # expand -t 1 ./tab.txt 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ # expand -t 4 ./tab.txt 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ #
-
将大文件切分成小文件: split [-bl] file PREFIX
- -b :后面可接欲分割成的文件大小,可加单位,例如 b, k, m 等;
- -l :以行数来进行分割。
- PREFIX :代表前导符的意思,可作为分割档案的前导文字。
huanzi@hp-pc:~ # split -l 1 ./tab.txt spilt huanzi@hp-pc:~ # ll | grep spilt -rw-r--r-- 1 root root 41 Sep 28 14:02 spiltaa -rw-r--r-- 1 root root 44 Sep 28 14:02 spiltab huanzi@hp-pc:~ # huanzi@hp-pc:~ # cat ./spiltaa 这是在测试tab键 链▒两个tab键 huanzi@hp-pc:~ # cat ./spiltab 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ #
-
参数替换:xargs [-0epn] command
- -0 :如果输入的 stdin 中有特殊字符,例如 `, , 空格键等等字符时,这个 -0 参 数 可以将他还原成一般字符。这个参数可以用于特殊状态喔!
- -e :这个是 EOF (end of file) 的意思。后面可以接一个字符串,当 xargs 分析 有这个字符串时,就会停止继续工作!
- -p :在执行每个命令的 argument 时,都会询问使用者的意思;
- -n :后面接次数,每次 command 命令执行时,要使用几个参数的意思。
huanzi@hp-pc:~ # cat ./tab.txt | xargs 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ # cat ./tab.txt | xargs -n 2 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ # cat ./tab.txt | xargs -n 3 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 huanzi@hp-pc:~ # cat ./tab.txt | xargs -p echo 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键 ?...y 这是在测试tab键 链▒两个tab键 这这是在测试tab键 这是一个tab键
-
减号 - 的用途:tar -cvf - /home | tar -xvf -
经过管线后,将 tar -cvf - /home 传送给后面的tar -xvf -,后面的这个 - 则是取用前一个命令事务 stdout, 因此,我们就不需要使用 file 了。
-
将数据进行取代、删除、新增、截取特定行等等:sed [-nefr] [动作]
- -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行才会被列出来。
- -e :直接在指令列模式上进行 sed 事务动作编辑;
- -f :直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内 的 sed 动作;
- -r :sed 的动作支持的是延伸垄正觃表示法的诧法。(预讴是基础正觃表示法诧 法)
- -i :直接修改读取的档案内容,而不是由屏幕输出。 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,丼例杢说,如果我 的动作 是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』 function 有底下这些咚咚:
- a :新增, a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下 一行)~
- c :取代, c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一 行);
- p :打印,亦卲将某个选择的数据印出。通常 p 会不参数 sed -n 一起运作~
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配 正觃表示法!
huanzi@hp-pc:~ # cat ./student.txt lala 20 daiad 23 huahu 99 tab tab tab键测试 tab huanzi@hp-pc:~ # sed -i 6d -f ./student.txt sed: file ./student.txt line 1: extra characters after command huanzi@hp-pc:~ # sed -i 6d ./student.txt huanzi@hp-pc:~ # cat ./student.txt lala 20 daiad 23 huahu 99 tab tab huanzi@hp-pc:~ # sed -i 4a\newline ./student.txt huanzi@hp-pc:~ # cat ./student.txt lala 20 daiad 23 huahu 99 newline tab tab huanzi@hp-pc:~ #
41、格式化打印:printf ‘打印格式’ 实际内容
- \a:警告声音输出
- \b:退格键(backspace)
- \f:清除屏幕 (form feed)
- \n:输出新的一行
- \r:相当于Enter 按键
- \t:水平的 [tab] 按键
- \v 垂直的 [tab] 按键
- \xNN:NN 为两位数的数字,可以转换数字成为字符。
- %ns:那个 n 是数字,
- s:代表 string ,亦卲多少个字符;
- %ni:那个 n 是数字,
- i:代表 integer ,亦卲多少整数字数;
- %N.nf:那个 n 不 N 都是数字,
- f:代表 floating (浮点),如果有小数字数, 假讴我共要十个位数,但小数点有两位,卲为 %10.2f 啰!
huanzi@hp-pc:~ # printf "%-10s %-8s %-6s %4s\n" "姓名 年龄 性别 收入";printf "%-10s %-8s %-6s %-4.2f\n" "lal 20 男 10.22"; 姓名 年龄 性别 收入 lal 20 男 10.22 0.00 huanzi@hp-pc:~ #
-
比对两个文件之间的差异:diff [-bBi] from-file to-file
- from-file :一个档名,作为原始比对档案的档名;
- to-file :一个档名,作为目的比对档案的档名; 注意,from-file 戒 to-file 可以 - 叏代,那个 - 代表『Standard input』。
- -b :忽略一行当中,仅有多个空白的差异
- -B :忽略穸白行的差异。
- -i :忽略大小写的不同。
huanzi@hp-pc:~ # diff -bBi ./student.txt ./student1.txt 1,2c1,2 < lala 20 < daiad 23 --- > lala 66 > daiad 88 4,6d3 < < newline < tab tab huanzi@hp-pc:~ #
41、条件判断:
-
关于某个档名的『文件类型』判断,如 test -e filename 表示存在否
- -e: 该『档名』是否存在?(常用) -f 该『档名』是否存在且为档案(file)?(常用)
- -d: 该『文件名』是否存在且为目录(directory)?(常用)
- -b: 该『档名』是否存在且为一个 block device 装置?
- -c: 该『档名』是否存在且为一个 character device 装置?
- -S: 该『档名』是否存在且为一个 Socket 档案?
- -p: 该『档名』是否存在且为一个 FIFO (pipe) 档案?
- -L: 该『档名』是否存在且为一个连结档?
# test.sh文件 #!/bin/bash if test -e ~/student.txt; then echo "student.txt存在于~目录下!" elif test -e ~/student1.txt; then echo "student1.txt存在于~目录下!" else echo "student.txt、student1.txt不存在于~目录下!" fi ~ huanzi@hp-pc:~ # ./test.sh student.txt存在于~目录下! huanzi@hp-pc:~ #
-
关于档案的权限侦测,如 test -r filename 表示可读否 (但 root 权限常有例外)
- -r: 侦测该档名是否存在且具有『可读』的权限?
- -w: 侦测该档名是否存在且具有『可写』的权限?
- -x: 侦测该档名是否存在且具有『可执行』的权限?
- -u: 侦测该文件名是否存在且具有『SUID』的属性?
- -g: 侦测该文件名是否存在且具有『SGID』的属性?
- -k: 侦测该文件名是否存在且具有『Sticky bit』的属性?
- -s: 侦测该档名是否存在且为『非空白档案』?
# test.sh文件 #!/bin/bash if test -r ~/student.txt; then echo "student.txt有读权限!" else echo "student.txt没有读权限!" fi huanzi@hp-pc:~ # ./test.sh student.txt有读权限! huanzi@hp-pc:~ #
-
两个档案之间的比较,如: test file1 -nt file2
- -nt: (newer than)判断 file1 是否比 file2 新
- -ot: (older than)判断 file1 是否比 file2 旧
- -ef: 判断 file1 不 file2 是否为同一档案,
# test.sh文件 #!/bin/bash if test ~/student.txt -ef ~/student1.txt; then echo "student.txt和student1.txt是同一个文件!" else echo "student.txt和student1.txt不是同一个文件!" fi huanzi@hp-pc:~ # ./test.sh student.txt和student1.txt不是同一个文件!
-
关于两个整数之间的判定,例如 test n1 -eq n2
- -eq: 两数值相等 (equal)
- -ne: 两数值不等 (not equal)
- -gt: n1 大于 n2 (greater than)
- -lt: n1 小于 n2 (less than)
- -ge: n1 大于等于 n2: (greater than or equal)
- -le: n1 小于等于 n2 (less than or equal)
# test.sh文件 #!/bin/bash if test 123 -eq 123; then echo "123 EQ 123" else echo "123 NOT EQ 123" fi huanzi@hp-pc:~ # ./test.sh 123 EQ 123
-
判定字符串的数据
- test -z string: 判定字符串是否为 0 ?若 string 为空字符串,则为 true
- test -n string: 判定字符串是否非为 0 ?若 string 为空字符串,则为 false。 注: -n 亦可省略
- test str1 = str2: 判定 str1 是否等于 str2 ,若相等,则回传 true
- test str1 != str2: 判定 str1 是否不等于 str2 ,若相等,则回传 false
# test.sh文件 #!/bin/bash if test -n '123'; then echo "'123' IS NOT EMPTY STRING" else echo "'123' IS EMPTY STRING" fi huanzi@hp-pc:~ # ./test.sh '123' IS NOT EMPTY STRING
-
多重条件判定,例如: test -r filename -a -x filename
- -a: (and)两状况同时成立!例如 test -r file -a -x file,则 file 同时具有 r 不 x 权限时,才回传 true。
- -o: (or)两状况任何一个成立!例如 test -r file -o -x file,则 file 具有 r 戒 x 权限时,就可回传 true。
- !: 反相状态,如 test ! -x file ,当 file 丌具有 x 时,回传 true
# test.sh文件 #!/bin/bash if test -r ~/test.sh -a -x ~/test.sh; then echo "test.sh have read and write permissions" else echo "test.sh have not read and write permissions" fi huanzi@hp-pc:~ # ./test.sh test.sh have read and write permissions
-
if条件判断:
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一不二均不成立时,可以进行的指令工作内容;
fi
# test.sh文件 #!/bin/bash if test -e ~/student.txt; then echo "student.txt存在于~目录下!" elif test -e ~/student1.txt; then echo "student1.txt存在于~目录下!" else echo "student.txt、student1.txt不存在于~目录下!" fi ~ huanzi@hp-pc:~ # ./test.sh student.txt存在于~目录下! huanzi@hp-pc:~ #
-
case … esac判断:
case $1 in
“one”)
echo “Your choice is ONE” ;;
“two”)
echo “Your choice is TWO” ;;
“three”)
echo “Your choice is THREE” ;;
*)
echo “Usage $0 {one|two|three}” ;;
esac
# test.sh文件 #!/bin/bash case $1 in "one") echo "one";; "two") echo "two";; "three") echo "three";; "four") echo "four";; "five") echo "five";; *) echo "over";; esac huanzi@hp-pc:~ # ./test.sh one one huanzi@hp-pc:~ # ./test.sh five five huanzi@hp-pc:~ # ./test.sh over huanzi@hp-pc:~ #
42、function 功能,创建函数:
function fname() { 程序段 }
# test.sh文件
#!/bin/bash
function casetest {
echo "function ......"
}
casetest
huanzi@hp-pc:~ # ./test.sh
function ......
43、循环:
-
while循环:
while [ condition ] <==中括号内的状态就是刞断式
do <==do 是循环的开始!
程序段落
done <==done 是循环的结束
# test.sh文件 #!/bin/bash function whiletest { count=0 while [ $count -le 5 ] do echo "while out put context " $count ((count++)) done } whiletest huanzi@hp-pc:~ # ./test.sh while out put context 0 while out put context 1 while out put context 2 while out put context 3 while out put context 4 while out put context 5 huanzi@hp-pc:~ #
-
until 循环:
until [ condition ]
do
程序段落
done
# test.sh文件 #!/bin/bash function untiltest { count=0 while [ $count -le 5 ] do echo "until out put context " $count ((count++)) done } untiltest huanzi@hp-pc:~ # ./test.sh until out put context 0 until out put context 1 until out put context 2 until out put context 3 until out put context 4 until out put context 5 huanzi@hp-pc:~ #
-
for循环:
for var in con1 con2 con3 …
do
程序段
done
# test.sh文件 #!/bin/bash function fortest { for item in 1 2 3 4 5 do echo "for out put context " $item done } fortest huanzi@hp-pc:~ # ./test.sh for out put context 1 for out put context 2 for out put context 3 for out put context 4 for out put context 5 huanzi@hp-pc:~ #
for (( 初始值; 限制值; 执行步阶 )) # 类似于java中for(i = 0;i<10;i++)
do
程序段
done
# test.sh文件 #!/bin/bash function fortest1 { for ((i=0;i<5;i++)) do echo "for out put context " $i done } fortest1 huanzi@hp-pc:~ # ./test.sh for out put context 0 for out put context 1 for out put context 2 for out put context 3 for out put context 4 huanzi@hp-pc:~ #
44、定时任务:
-
at:at [-mldv] TIME,at -c 工作号码,只执行一次。
- -m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作 已完成。
- -l :at -l 相当于 atq,列出目前系统上面的所有该用户的 at 排程;
- -d :at -d 相当于 atrm ,可以取消一个在 at 排程中的工作;
- -v :可以使用较明显的时间格式栏出 at 排程中的仸务栏表;
- -c :可以列出后面接的该项工作的实际挃令内容。
- TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格 式有: HH:MM ex> 04:00 在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行 此工作。
- HH:MM YYYY-MM-DD:04:00 2009-03-17 强制规定在某年某月的某一天的特殊时刻进行该工作!
- HH:MM[am|pm] [Month] [Date]:04pm March 17 也是一样,强制在某年某月某日的某时刻进行!
- HH:MM[am|pm] + number [minutes|hours|days|weeks] :now + 5 minutes, 04pm + 3 days 就是说,在某个时间点『再加几个时间后』才进行。
-
crontab :crontab [-u username] [-l|-e|-r],循环执行
- -u :只有 root 才能进行这个任务,亦即帮其他使用者建立/移除 crontab 工作 排程;
- -e :编辑 crontab 的工作内容
- -l :查阅 crontab 的工作内容
- -r :移除所有的crontab 工作内容,若仅要移除一项,请用 -e 去编辑。
45、动态观察系统变化: top [-d 数字] | top [-bnp]
-
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-
-b :以批次的方式执行 top ,还有更多的参数可以使用喔! 通常会搭配数据流重导向来将批次的结果输出成为档案。
-
-n :与 -b 搭配,意思是,需要的行进行几次 top 的输出结果。
-
-p :指定某个 PID 来的行观察监测。
在 top 执行过程当中可以使用的以下按键执行命令:
- ? :显示在 top 中可以输入的按键指令;
- P :以 CPU 的使用资源排序显示;
- M :以 Memory 的使用资源排序显示;
- N :以 PID 来排序喔!
- T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
- k :给予某个 PID 一个讯号 (signal)
- r :给予某个 PID 重新制订一个 nice 值。
- q :离开 top 软件的挄键。
46、网络追踪: netstat -[atunlp]
- -a :将目前系统上所有的联机、监控、Socket 数据都列出来
- -t :列出 tcp 网络封包的数据
- -u :列出 udp 网络封包的数据
- -n :不以程序的名称,以端口号来显示;
- -l :列出目前正在网络监控 (listen) 的朋务;
- -p :列出该网络监控的程序 PID
huanzi@hp-pc:~ # netstat -atunlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.243.48.251:21303 0.0.0.0:* LISTEN 21113/java
tcp 0 0 10.243.48.251:26007 0.0.0.0:* LISTEN 13985/java
tcp 0 0 127.0.0.1:25016 0.0.0.0:* LISTEN 5940/java
tcp 0 0 10.243.48.251:21304 0.0.0.0:* LISTEN 26026/java
tcp 0 0 10.243.48.251:26008 0.0.0.0:* LISTEN 13985/java
47、软件管理:
-
rpm -qa 软件名称:列出对应的软件信息
- -V :后面加的是软件名称,若该软件所含的档案被变更过,才会列出来;
- -Va :列出目前系统上面所有可能被变更过的档案;
- -Vp :后面加的是文件名,列出该软件内可能被变更过的档案;
- -Vf :列出某个档案是否被变更过
huanzi@hp-pc:~ # rpm -qa openssh openssh-7.2p2-74.25.1.x86_64 huanzi@hp-pc:~ #
-
yum [option] [查询工作项目] [相关参数]:安装/升级功能
- install :后面接要安装的软件!
- update :后面接要升级的软件,若要整个系统都升级,就直接 update 即可
- -y :当 yum 要等待用户输入时,这个选项可以自动提供 yes 的响应;
- –installroot=/some/path :将该软件安装在 /some/path 而不是使用默认路径 [查询工作项目]
- [相关参数]:这方面的参数有: search :搜寻某个软件名称戒者是描述 (description) 的重要关键字; list :列出目前 yum 所管理的所有的软件名称不版本,有点类似 rpm -qa; info :同上,不过有点类似 rpm -qai 的执行结果; provides:仍档案去搜寻软件!类似 rpm -qf 的功能!
-
yum clean [packages|headers|all]:
- packages:将已下载的软件档案删除
- headers :将下载的软件文件头删除
- all :将所有容器数据都删除!
-
dpkg -i 软件包:
- -i:安装软件包
- -r:删除软件包
- -I:显示已安装软件包列表
- -L:显示于软件包关联的文件
- -c:列出软件包内的文件列表
- -P:卸载软件,后跟软件名,不是软件包名
- –remove:删除软件,不删除配置文件
- –purge:删除软件,并删除配置文件
48、账号:
- 创建系统账号:useradd -r -m -s /bin/bash username
- -r:建立系统账号
- -m:自动建立用户的登入目录
- -s:指定用户登入后所使用的shell
- 为账户设置密码:passwd username
49、Shell script :
- 默认参数($0, $1…):
- $0:这个变量比较特殊,它指的是脚本本身
- $# :代表后接的参数『个数』
- $@ :代表『 “$1” “$2” “$3” “$4” 』之意,每个变量是独立的(用双引号括起来);
- $* :代表『 “$1c$2c$3c$4” 』,其中 c 为分隔字符,默讣为空格键, 所以本例中代表『 “$1 $2 $3 $4” 』之意。
- degug:
- -n :不要执行 script,仅查询语法的问题;
- -v :再执行 sccript 前,先将 scripts 的内容输出到屏幕上;
- -x :将使用到的 script 内容显示刡屏幕上,这是很有用的参数!
50、备份大型目录数据:dd if=/dev/vda1 of=/home/bak bs=1M count=512,dd 就好像在迭砖块一样,将 512 块,每块 1MB 的砖块堆栈成为一个大档案 (/home/bak) , 最终就会出现一个 512MB 的档案。
- if 是 input file ,输入档案。of 是 output file ,将一堆零写入到后面接的档案中。
- bs 是每个 block 大小,就像文件系统那样的 block 意思。
- count 则是总共几个 bs 的意思。
51、备份数据:
-
dump [-Suvj] [-level] [-f 备份档] 待备份资料 (dump可以备份整个文件系统)
- -u :将这次 dump 时间记录到 /etc/dumpdates 档案中。
- -v :将 dump 档案过程显示出来。
- -j :加入 bzip2 支持!将数据进行压缩,默认 bzip2 压缩等级为 2 -level:就是我们谈到的等级,从 -0 ~ -9 共十个等级
- -f :有点类似 tar 啦!后面接产生的档案,亦可接例如 /dev/sdb1 装置文件名等
- -W :列出在 /etc/fstab 里面具有 dump 设定的 partition 是否有备份过
- -S :仅列出后面待备份数据需要多少磁盘空间才能够备份完毕
-
dd if=/dev/vda1 of=/home/bak bs=1M count=512
-
if 是 input file ,输入档案。of 是 output file ,将一堆零写入到后面接的档案中。
-
bs 是每个 block 大小,就像文件系统那样的 block 意思。
-
count 则是总共几个 bs 的意思。
-
52、恢复数据:
restore -r [-f dumpfile] :还原整个文件系统,主要是还原dump 备份的数据
- -t :此模式用在察看 dump 备份文件中有什么重要数据!类似 tar -t 功能;
- -C :此模式可以将 dump 内的数据拿出来跟实际的文件系统做比较, 最终会列出『在 dump 档案内有记录的,且目前文件系统不一样』的档案;
- -i :进入互动模式,可以仅还原部分档案
- -r :将整个 filesystem 还原的一种模式,用在还原针对文件系统的的dump 备 份;
- -h :察看完整备份数据中的 inode 不文件系统 label 等信息
- -f :后面就接你要处理的那个 dump 档案啰!
- -D :跟 -C 进行搭配,可以查出后面接的挂载点不 dump 内有不同的档案!
53、解压缩:
- bzip2 格式(性能最好,压缩包后缀为.bz2):
- 压 缩:tar -jcv -f filename.tar.bz2 要压缩的目录或者为文件名(说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
- 查 询:tar -jtv -f filename.tar.bz2 (说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
- 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录(说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
- gzip格式(压缩包后缀为.gz):
- 压 缩:tar -zcv -f filename.tar.gz 要压缩的目录或者为文件名(说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
- 查 询:tar -ztv -f filename.tar.gz (说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
- 解压缩:tar -zxv -f filename.tar.gz -C 欲解压缩的目录(说明:其中-f可以和前边的命令合并,但是合并之后,f的顺序必须放在最后,因为f后边跟的必须是文件路径,f分开写更具有可读性。)
54、vim编辑器:
- 一般模式:刚打开文件之后,进入一般模式,在一般模式下,按下『:wq!』强制保存文件。
- 编辑模式:按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式,编辑模式下,可以对文本进行增删改。更改完成之后,必须按下『ESC』退出编辑模式,进入一般模式。
- 命令行模式:在一般模式当中,输入『 : / ? 』三个中的任何一个字母,就会进入命令行模式。
- 0 戒功能键[Home] :这是数字『 0 』,移劢到这一行的最前面字符处
- $ 戒功能键[End] :移劢到这一行的最后面字符处
- [Ctrl] + [f] :屏幕『向下』移劢一页,相当于 [Page Down]按键
- [Ctrl] + [b]: 屏幕『向上』移劢一页,相当于 [Page Up] 按键
- [Ctrl] + [d]: 屏幕『向下』移劢半页
- [Ctrl] + [u]: 屏幕『向上』移劢半页
- G :移劢到这个档案的最后一行
- gg: 移劢到这个档案的第一行,相当于 1G
- n [ENTER]: n 为数字。光标向下移动 n 行
- /word: 向光标向下寻找一个名称为 word 的字符串。
- ?word: 向光标向上寻找一个字符串名称为 word 的字符串。
- n: 这个 n 是英文按键。向下重复前一个动作。
- N:这个 N 是英文按键。向下重复前一个动作。
- :n1,n2s/word1/word2/g[c]:在n1行和n2行之间搜索word1这个字段,并使用word2字段替换,加c代表在替换的时候,需要确认。
- :1,$s/word1/word2/g[c]:在第一行和最后一行之间搜索word1这个字段,并使用word2字段替换,加c代表在替换的时候,需要确认。
- x:x为向前删除一个字符,前边加数字n表示连续向后删除n个字符。
- X:X向后删除一个字符,前边加数字n表示连续向前删除n个字符。
- dd:删除游标所在的那一整列。
- ndd:n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列。
- d$:删除游标所在处,到该行的最后一个字符。
- yy:复制游标所在的那一行,前边加数字n表示自光标起,连续向下n列都被复制。
- p:将复制的行从光标所在行的下一行粘贴。
- P:将复制的行从光标所在行的上一行粘贴。
- J:将光标所在列不下一列的数据结合成同一列。
- u:撤销前一个动作,相当于[Ctrl]+z。
- [Ctrl]+r: 重做上一个动作。
- :set nu: 显示行号。
- :set nonu: 取消行号。
- :! command:暂时离开vim,执行command命令。
- :n1,n2 w [filename]:将 n1 到 n2 的内容储存成 filename 这个文件。
- :r [filename]:在编辑的数据中,读入另一个档案的数据并且会将 『filename』 这个档 案内容加到游标所在行后面。
- :w [filename]:将编辑的数据储存成另一个档案(类似另存为)。
- v:字符选择,会将光标经过的地方反白选择。
- V:行选择,会将光标经过的行反白选择。
- [Ctrl]+v:区块选择,可以用长方形的方式选择资料 。
- y:将反白的地方复制起来 。
- d:将反白的地方删除掉。
- [Ctrl]+v:区块选择,可以用长方形的方式选择资料 。
- y:将反白的地方复制起来 。
- d:将反白的地方删除掉。
- :sp 文件名:在同一个窗口内打开另外一个文件,通过[Ctrl + w + [↑|k]或者[Ctrl + w + [↓|j]切换待编辑的文档。
55、Linux下磁盘分区:
- parted
-
parted /dev/vdb mkpart logical ext4 100GB 200GB:直接使用该命令划分一个100G的逻辑分区。
-
parted /dev/vdb print:打印/dev/vdb磁盘划分情况
-
parted /dev/vdb rm 8:删除/dev/vdb磁盘下8号分区
分步操作:
分别执行以下命令:
parted /dev/vdb // 进入parted命令,选择yes (parted) mklabel gpt // 设置分区格式 (parted) mkpart primary 1 400G // 第一个分区大小300G (parted) mkpart primary 401G 700G // 第二个分区300G (parted) mkpart primary 701G 2199G // 第三个分区剩下的 (parted) print(或者p) // 查看分区 (parted) rm // 删除分区 Partition number? 2 // 分区编号 (parted) quit // 退出parted命令,会自动保存分区。下边这提示不用处理。 Information: You may need to update /etc/fsta
- fdisk
56、忘记root密码操作步骤:
- 开机启动读秒的时候,按『 e 』进入grub编辑模式。
- 请将光标移劢到 kernel 那一行,再挄一次『 e 』进入 kernel 该行的编辑画面中,在最后方输入 single ,再挄下『 Enter 』确定。
- 按『 b 』进入单机维护模式,此时进入的是tty1窗口,并且使用的是root身份。
- 在tty1窗口中输入『 passwd 』按照要求修改密码。
更多推荐
工作中整理的常用的Linux命令
发布评论