Linux
注:笔记中带有特殊标识,特殊标识仅为作者自己设立,起提醒作用
枫染:主要是标识额外的其他命令,或补充命令
幻舞:主要是标识命令的其他用法,多用法,或选项
寒星:主要是标识快捷方式和键盘操作
落霞:主要是标识其他操作或危险命令操作
Linux用户
Linux的用户有三种:root 普通用户 系统用户
[root@localhost ~]#
root:用户名
localhost:主机名
~:指的是当前的宿主目录shell的用户的宿主目录--家目录home,每一个普通用户都会在/home文件夹下面自动生成自己的宿主目录,比如:普通用户tom在/home下就会生成宿主目录,目录名也叫tom
落霞
rm -rf x (删库跑路)
Linux命令行
命令行由命令+选项+参数组成
(1)短选项:由一个连字符和一个字母构成,如-a选项。
(2)长选项:由两个连字符和一些大小写字母组合的单词构成,如— —help选项。
1,显示屏幕上的信息:echo命令
echo [选项] [字符串$ 变量名]
(1)echo命令在屏幕上显示how are you
[root@localhost ~]# echo how are you
how are you
(2)显示HOME变量的值。
[root@localhost ~]# echo $HOME
/root
说明:在变量名称前面加上”$“符号,表示提取出该变量的值
(3)echo 命令显示用户交互的提示信息
[root@localhost ~]# echo -n "请输入密码:"; read passwd ; echo "密码是:" $passwd
说明:read命令用于读取用户在键盘输入的内容,将输入内容放到名为pswd的变量中。
两个命令之间的”;“表示先执行前面的命令,再执行后面的命令。
寒星
init 1 或ctrl+alt+F2:切换到命令模式
init 5 或 ctrl+alt+F1:切换到桌面图形化
Init 0 或 ctrl+alt+Del:关机
2,获取计算机和操作系统的信息:uname命令
[root@localhost ~]# uname -r #显示系统的内核版本号
[root@localhost ~]# uname -m #显示计算机硬件架构
[root@localhost ~]# uname -s #显示操作系统名称
[root@localhost ~]# uname -a #显示全部的信息
3,获取内存信息:free命令
[root@localhost ~]# free -b #以Byte为单位显示内存使用情况
[root@localhost ~]# free -k #以KB为单位显示内存使用情况
[root@localhost ~]# free -m #以MB为单位显示内存使用情况
[root@localhost ~]# free -g #以GB为单位显示内存使用情况
[root@localhost ~]# free -h #以合适的单位显示内存使用情况
4,显示和修改主机名:hostname,hostnamectl命令
显示当前计算机的主机名:
[root@localhost ~]# hostname
Localhost.localhost
临时修改当前计算机的主机名为mycomputer
[root@localhost ~]# hostname mycomputer
[root@localhost ~]# hostname
mycomputer
寒星
键可以补全命令,连按2次 键可以以列表的形式显示当前不完整命令行最后一个字母开头的当前目录下的所有文件
5,显示和设置系统日期,时间:data命令
用法:data [选项] [+“日期时间的显示格式”]
data的命令常用选项有:
-d <字符串>:根据字符串描述,显示指定日期时间(字符串要加上双单引号,并以+开头)
-s <字符串>:根据字符串的内容,设置系统日期时间
注意:要指定格式显示日期和时间,可以使用“+”开头的字符串对其格式化,用来格式化的常用日期和时间域,如:
%Y 4位数字表示年
%m 2位数字表示月
%d 2位数字表示日
%H 时(24小时制)
%M 分(00~59)
%S 秒(00~59)
%F 完整的日期格式,等价于%Y-%m-%d
%T 完整的时间格式,等价于%H:%M:%S
%A 星期(一日)
%s 从1970年1月1日0点整到当前时刻历经的秒数(时间戳)
%X 时分秒
%x 日期
%W 一年中的某个星期
%w 一星期中的某一天
%D = %m/%d/%y
%I 十二小时制
汐:更详细的data选项内容可以使用man命令(用法:main data)和- -help命令(用法:data --help)查看
6,文件操作
(1)显示工作目录与更改工作目录:pwd,cd命令
使用pwd命令可以显示当前目录的绝对路径:
[root@localhost ~]# pwd
-
完整路径(绝对路径):从 / 分区开始向下遍历,直达目标位置,所经历的所有文件夹加起来组成的目录
-
相对路径:对当前某个路径遍历,不是从 / 分区开始遍历,是从 / 分区下面的某个路径开始遍历
当需要改变工作目录时,使用cd命令,该命令用于切换工作路径
格式:cd [目录名称]
注意:/mnt/a/b 中的的一个 / 表示根分区,第二个和第三个 / 表示文件分隔符,用来分隔上下级目录
cd命令中的特殊符号:
cd 返回用户家目录
cd ~ 切换至当前登录的家目录 (cd~=cd)
cd ~用户名 切换至指定用户名的家目录
cd - 切换至上次所在目录
cd .. 切换至上级目录,.. 代表上级目录,.代表工作目录
(值得一提的是:cd ..可以返回上级目录,cd .. / ..可以返回上上级目录)
枫染
file命令可以查看文件类型,文件类型中:
黑色字体表示的是可编辑文档,文本文件:Ascll text t:文档
青色字体表示的是链接文件:link l:链接
蓝色字体表示的是文件夹:directory d:目录
(2) 显示文本文件:cat,tac,head,tail命令
cat命令主要用来显示文件,适合内容较少的文件。另外,还能够用来链接两个或多个文件,形成新的文件
格式:cat [选项] 文件名称
常用选项:
-n 由1开始对所有输出的行编号
-b 和-n选项相似,不过对空白行不编号
-s 将两行以上的连续空白行代换为一行
cat命令主要有三大功能:
【1】一次显示整个文件:cat filename
【2】从键盘创建一个文件:cat > filename,此方法只能创建新文件,不能编辑已有的文件,按Ctcl+D组合键结束输入。
【3】将几个文件合并为一个文件:cat file file2 > file
注意:tac命令是从尾到头显示,cat是从头到尾显示
head命令用于查看文本文件的前几行,默认显示文件的前10行,可以通过选项“-n”设置显示的行数
格式:head [选项] 文件名称
[root@localhost ~]# head -n 5 npass #显示npass文件的前5行
tail命令用于指定查看文本文件的最后几行,使用方法和head命令类似
格式:tail [选项] 文件名称
幻舞
如何在几行内容中截取想显示的行数?
[root@localhost ~]# head -n 10 /etc/passwd | tail -n 6
查看前10行里第5行至第10行的6行内容
1,.....................
2,.....................
3,.....................
4,.....................
5,.....................
6,.....................
7,.....................
8,.....................
9,.....................
10,.....................
[root@localhost ~]# tail -n 45 /etc/passwd/ | head -n 5
查看后10行里前面前5行的内容
36,.....................
37,.....................
38,.....................
39,.....................
40,.....................
41,.....................
42,.....................
43,.....................
44,.....................
45,.....................
幻舞
| 这个是管道符,用于把上一个指令的输出作为下一个指令的输入来执行
(3) 文件内容统计:wc命令
wc命令用于对指定文件中的输出行,单词和字节进行计数。如果指定的是多个文件1,则结果中会显示总行数。如果没有指定文件或指定文件是 - ,则读取标准输入文件。
格式:wc [选项] 文本文件1 文本文件n
常用选项:
-c 表示统计文件的字节数 (c是英文单词charater)
-l 表示统计文件的行数 (l是英文单词line)
-w 表示统计文件的字数(以单词个数统计) (w是英文单词word)
枫染
历史命令:history命令
history命令可以显示之前使用过的命令列表
当需要执行历史命令时:
[root@localhost ~]# history ![number] #历史中使用过的命令会进行列表排列显示,![number]表示执行历史命令列表中第number号命令
就近相似原则:
[root@localhost ~]# history ![string] #执行历史命令列表中最近一次匹配的命令,string表示命令的首字母
清除历史命令列表:
[root@localhost ~]# history -c
寒星
vi文本编辑命令快捷键:
Ctrl+a 光标跳到命令行开头
Ctrl+e 光标跳到命令行结尾
Ctrl+u 当前光标跳到命令行的开头的所有内容删除
Ctrl+k 当前光标跳到命令行的结尾的所有内容删除
Ctrl+向左箭头 当前光标跳到前一条命令开头
Ctrl+向右箭头 当前光标跳到下一条命令结尾
Alt+Backspace 快速删除当前命令行
落霞
神秘操作之破解root密码:
开机后先按e,再按向下箭头找到utf-8行,在utf-8后加空格和rd,break
再按ctrl+x,再输入mount -o remount,rw /sysroot/ #以读写的方式重新挂载/sysroot
再回车,输入chroot /sysroot/
再回车,输入touch / .autorelabel
再回车,输入ls -a
再回车,输入passwd root
再输入新密码,回车确认后并再输入一次
再输入exit退出,退2次
最后等待.......
(4) 创建目录:mkdir命令
格式:mkdir [-mp] 目录名
常见选项:
-m 手动配置所创建目录的权限,而不再使用默认权限
-p 递归创建所有目录
[root@localhost ~]# mkdir a #创建文件夹a
[root@localhost ~]# mkdir -p a/b/c 创建多级文件夹
(5) 创建空文件,修改文件时间:touch命令
格式:touch [选项] 文件名
[root@localhost ~]# touch file1 #创建文件
[root@localhost ~]# touch file2 file3 file4 #创建多个文件
(6) 复制文件或目录:cp命令
格式:cp [选项] 源文件 目标文件
常用选项:
-p 保留原始文件的属性
-d 若对象为链接文件,则保留该链接文件的属性
-r 递归复制(用于目录) 【由浅到深,由内到外依次拷贝(带 -r 才能拷贝文件夹)】
-a 相当与-pdr(p,d,r为上述选项)
-i 若目标文件存在,则询问是否覆盖
-u 若目标文件比源文件有差异,则使用该选项可以更新目标文件
注意:cp命令对应的目标位置一定要是文件夹,文件夹才考虑递归
普通复制
[root@localhost ~]# cp a1 a2 #把a1里的内容完全复制到a2中
强制覆盖,即有同名的文件夹名时,系统会过问,直接覆盖掉旧文件
[root@localhost ~]# cp -rf a1 a2
强制覆盖,系统不会过问,并且可视化拷贝【可视化,即能看见拷贝的过程】
[root@localhost ~]# cp -rfv a1 a2
在Linux系统中,复制操作具体分为3中情况。
1,如果目标文件是目录,则会把源文件复制到该目录中。
2,如果目标文件也是普通文件,则会询问是否要覆盖它
(如果出现问题是否覆盖【over write】输入y 是确认的意思)
3,如果目录文件不存在,则执行正常的复制操作
寒星
Ctrl+c 可以强制中断拷贝过程
(7) 移动文件或目录,重命名:mv命令
格式: mv [选项] 源文件 目标文件
常用选项:
-f 强制覆盖,如果目标文件已经存在,则不询问。直接强制覆盖
-i 交互移动,如果目标文件已经存在,则询问用户是否覆盖
-n 如果目标文件已存在,则不会覆盖移动,而且不询问用户
-v 显示文件或目录的移动过程
-i 若目标文件存在,则询问是否覆盖
-u 若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级
[root@localhost ~]# mv file1 file2 #将目录file1中的文件移动到目录file2中
(8) 删除文件或目录:rmdir,rm命令
格式:rmdir [-p] 目录名
[root@localhost ~]# rmdir abc #删除空目录abc
[root@localhost ~]# rmdir -p a1/a2/a3/a4 #删除递归目录a1/a2/a3/a4
格式:rm [选项] 文件或目录
rm的常用选项:
-f 强制删除,系统不给出提示信息
-i 在删除文件或目录之前,系统会给出提示信息,使用-i选项可以有效防止不小心删除有用文件或目录的情况发生
-r 递归删除,主要由于删除目录,可删除指定目录及包含所有子目录和文件
(具体用法与cp命令类似)
枫染
特殊创建命令:dd命令
dd命令用来创建一个大容量文件
格式: dd if=/dev/zero/ of=/test.file bs=1M count=100
[root@localhost ~]# dd if=/dev/zero/ of=[文件名] bs=[兆数] conut=[次数]
/dev/zero 代表什么也不写入,没有实际的数据,固定
sda 里面划分出200M的空间给test.file这个文件
7,通配符
..符号:省略
,符号:单个
通配符是一种特殊语句,主要有星号(*)和问号(?),当不知道真正的字符或者不想输入多个字符时,常常使用通配符代替一个或多个真正的字符
通配符:
* 代表任意数量的字符(包含0)*【匹配所有】*
? 代表任意一个字符*【匹配单个字符】*
[] 表示可以匹配字符组中的任意一个,例如,[abc]表示可以匹配a,b,c中的任意一个,[1-9]表示可以匹配[1-9]内的任意一个字符
[root@localhost ~]# cd /etc #切换到etc工作目录
[root@localhost ~]# ls *.conf # 查找/etc目录下所有以.conf结尾的文件,再查询该目录下文件名包含3个字符且以.conf结尾的文件
幻舞
其他通配符:
{} 大括号扩展,批量执行命令,可以连续使用或者嵌套使用
例子:
[root@localhost ~]# echo file {a{1,2},b,c}.log
filea1.log file a2.log fileb.log filec.log
[root@localhost ~]# echo file {a,b,c}{1,3}.log
filea1.log filea2.log filea3.log
fileb1.log fileb2.log fileb3.log
filec1.log filec2.log filec3.log
`` 反引号命令替换,通常与echo配合使用
[root@localhost ~]# echo `data` #反引号实现echo 取data命令的结果
\ 反斜杠,转义字符
8,重定向
(1) .标准输入/输出与重定向
Linux命令运行时,会打开3个文件:标准输入(stdin)文件,标准输出(stdout)文件和标准错误(stderr)。
一般情况下,命令从键盘(即标准输入文件)处接收输入内容并将产生的结果输出到终端(即标准输出文件)并在终端显示,如果出错,则输出到终端(即标准错误文件)中。
标准输入/输出 | |||||
---|---|---|---|---|---|
设备 | 设备名 | 文件描述符(通道编号值) | 类型 | 符号表示 | |
键盘 | /dev/stdin | 0 | 标准输入 | < | << |
显示器终端 | /dev/stdout | 1 | 标准输出 | > | >> |
显示器终端 | /dev/stderr | 2 | 标准错误 | 2> | 2>> |
/dev/filename | 3+ | 其他文件 |
输出重定向:
“>”:重定向
“>>”:追加重定向
输出重定向是指不使用Linux系统默认的标准输出设备显示信息,而是指定某个文件作为标准输出设备来存储文件信息。输出重定向有两种用法,格式如下:
Command > 文件 或者command >> 文件
一般与echo命令一起使用:
[root@localhost ~]# echo ‘hello world’ >> text # 把hello world追加进text 文本文档中
注意:使用“>”符号时,表示文件的所有内容将被新内容替代,如果要将新内容添加在文件夹尾,则需使用“>>”符号
枫染
管道符与筛选符
| :管道符就是把前一步命令的输出作为后一步命令的输入,然后再输出到终端上
[root@localhost ~]# head /etc/passwd | grep -n ‘root’ /etc/passwd
把head命令默认查看/etc/passwd 文件的前10行内容的输出作为参数通过管道符传参给grep命令,通过grep命令查找这10行内有’root’的行,并且显示行数
注意:管道符前面有重定向符号时,管道符后面要加上一个tee命令
[root@localhost ~]# ls -l > |tee less
选项
grep:按照条件进行内的筛选和过滤
-n 查找特定字符,并显示行号
[root@localhost ~]#grep -n ‘root’ /etc/passwd
-v 反向选择,筛选出不包含特定字符的内容
[root@localhost ~]#grep -v ‘wheel’ /etc/groop
[] 利用中括号查找字符集合
[root@localhost ~]#grep -n ’sh[io]rt’ test.file
[io]只筛选单个匹配,不能同时匹配,也就是说,匹配有i的和有o的,不匹配有io的
^ 利用尖括号来进行字符过滤
[root@localhost ~]#grep -v ‘[^w][orl]d’ test.file
反向选择过滤掉含w,d和有orl三个字符组成的内容,例:wrld,wold,hello world的全过滤掉
9,管理文本文件
vim/vi编辑器:
在命令提示符下,输入“vim文件名”或“vim”。如果指定文件存在,则打开该文件,否则新建该文件;如果不指定文件名,则新建一个未知名的文本文件,保存时要指定文件名。
vim的4种工作模式:
(1)命令模式
使用vim编辑器编辑文件时,默认vim处于命令模式。在此模式下,按键将作为命令直接执行,可使用方向键(上,下,左,右键)或k,j,h,l键移动光标的位置,还可以对文件内容进行复制,粘贴,替换,删除等操作。
(2)插入模式
在插入模式下,按键将作为输入的内容或相应操作对文件执行写操作,编辑文件完成后,按
Esc键可返回命令模式。
(3)末行模式
末行模式用于对文件中的指定内容执行保存,查找和替换等操作。在命令模式下按“:”键。vim编辑器窗口的左下方出现一个“:”符号,即进入末行模式,在此模式下输入的命令,按Enter键后执行,执行完自动返回命令模式。
(4)可视模式
Ctrl+v进入可视模式,最后一行下面会出现标识
常用:Ctrl+v进入后用上下左右键去选中要操作的对象,删除选中的话用d。
插入命令:
a 在当前光标所在位置之后插入随后输入的文本
i 在当前光标所在位置插入随后输入的文本,光标后的文本应向右移动
o 在当前光标所在行的下面插入新的一行。光标停在空行的行首,等待输入文本
O 在当前光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
A 在当前光标所在行的行尾插入随后输入的文本,相当光标移动到行尾再执行a命令
I 在当前光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符, 相当于光标移动到行首执行i命令
光标定位命令:
gg 移动到文件的第一行,相当于1G
G 移动到文件的最后一行
nG n为数字,移动到文件的第n行。例如:输入20G会移动到文件的第20行(可配 合:set nu)
Ctrl+f 屏幕向下移动一页,相当于Page Down键
Ctrl+b 屏幕向上移动一页,相当于Page Up键
Ctrl+d 屏幕向下移动半页
Ctrl+u 屏幕向上移动半页
h或向左箭头键 光标向左移动一个字符
j或向下箭头键 光标向下移动一个字符
k或向上箭头键 光标向上移动一个字符
l或向右箭头键 光标向右移动一个字符
编辑命令:
x,X 在一行字中,x为向右删除一个字符(相当与Del键),X为向前删除一个字符(相 当于Backspace退格键)
nx n为数字,连续向后删除n个字符。例如,要连续删除10个字符,输入10x
dd 删除光标所在的那一整行
ndd n为数字,删除光标所在行的向下n行,例如,20dd是删除20行
d1G 删除从光标所在到第一行的所有数据
dG 删除从光标所在行到最后一行的所有数据
yy 复制光标所在的那一行
nyy n为数字,复制光标处向下n行,例如,20yy是复制20行
p,P p为将已复制的数据粘贴到光标下一行,P为粘贴到光标上一行
u 撤销前一个动作
保存,退出等操作(末行模式下的操作)
:w 将编辑的数据写入硬盘文件中(保存)
:w! 文件属性为只读时,强制写入该档案。不过,到底能不能写入,还与用户对该文件 的权限有关(强制保存)
:q 退出vim编辑器(退出)
:q! 若曾修改过文件,又不想储存,则使用“!”强制退出而不储存文件。注意,惊叹 号(!)在vim编辑器当中常常具有强制的意思(强制退出且不保存输入或更改的 内容)
:wq 储存后离开(:wq相当于:x)
:wq! 储存后强制离开
查找于替换:
(1)命令模式下:
/ 查找字符串,从上至下
? 查找字符串,从下至上
n 向同一方向重复上次的查找指令
N 向相反方向重复上次的查找指定
r 替换光标所在位置的字符
R 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文件内容,按Esc 键可以结束
组合:
/+n 正向寻找
/+N 逆向寻找
(2)末行模式下:
标签:文件,用户,笔记,命令,Linux,root,目录,localhost From: https://www.cnblogs.com/skyrainmom/p/17357090.html