linux命令行提师符 linux提权 方法

Linux 从 0 到 1(一) - 终端简介,文件与目录以及相关操作 , 常用命令 模式:
当打开终端,第一行所见的就叫命令行提示符 。我的是这样的:
命令行提示符 , 顾名思义就是提示在其后面输入命令 。在你输入新的一行命令前,这个命令提示符都会出现 。分别解析一下上边代表什么意思:
【linux命令行提师符 linux提权 方法】oscar这是当前用户的名字 。Linux是一个多用户的操作系统,Windows也可以 。不过Linux的多用户管理更方便 。我们一般建议每个使用Linux系统的用户都创建一个属于自己的账户,便于隐私管理 。
@这个符号我们应该不陌生 , 我们的电子邮件一般都是name@domain.com这样的不是吗 。这个@就表示英语里的at , 是“在...里面 , 落户在...的,在其中”的意思 。@前面是用户名,后面是所在的域 。
oscar-laptop这是当前电脑/操作系统的名字 。上面说了在@后面的是一个域 , 所以 oscar@oscar-laptop 就表示oscar-laptop这台电脑的oscar这个用户 。oscar-laptop这个名称在安装此Linux系统时可以任意指定 。
:这是分隔符,没有什么特别的涵义 。
~ 这是当前所在目录的名字,会随着用户进入不同目录而改变 。~表示当前用户的家目录,有点类似Windows系统的“我的文档”这个目录 。
$指示你所具有的权限的字符 。在Linux系统中有两种可能:
因此,oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar这个用户登录;你的电脑名称为oscar-laptop;你目前位于 ~ 目录下,就是你的用户家目录 。你是普通用户 , 拥有有限的权限 。
参数里可以包含多个参数,由空格隔开,也可以包含数字,字母 , 等等 。可以说,参数没有固定的格式,但是一般来说还是遵循一定的规范的 。
如果我们要一次加好几个短参数,可以用空格隔开,例如:
多个短参数也可以合并在一起,例如上面的命令等价于:
请注意:参数的字母的大小写是有区别的,大写的T和小写的t通常表示不同意思 。
如果有多个长参数,是不能像多个短参数那样合并写的 。而是只能以空格隔开,例如:
当然我们也可以组合使用短参数和长参数,例如:
有时候,同一个意义的参数有短参数和长参数两种形式,效果是一样的,可以任选哪一种 。
有一些参数你还需要给它赋一个值才行 。而且短参数和长参数的赋值的方式不尽相同 。
例如,短参数赋值,通常是这样的:
表示把10赋值给p参数 。
如果是长参数,则一般是这样赋值:
长参数的方式更加容易理解,但是不如短参数那么简洁 。
正如我们说过的 , 参数的形式没有绝对的准则 。我们上面给出的规则是一般的,有些命令的参数格式可能是我们没怎么见过的 。
有些参数就不一样,而且取决于命令 。例如对于 ls 这个命令 , 假如后面带了一个参数,这个参数是一个目录的路径名的话,那么就会列出此目录下的文件 。
两种类型的文件
简单起见,我们把Linux下的文件分为两大类:
在一个文件系统中,我们总有一个被称为根目录的东西,这个根目录里包含了所有其他目录和文件 。Linux中有且只有一个根目录,就是
是的,就是用一个斜杠表示 。没有比根目录再高一阶的目录了 , 因为没有目录包含根目录,根目录就是Linux最顶层的目录 。
Linux系统安装后,包含了很多的文件和目录(虽然其实都是文件) , 我们很容易迷失在“茫茫文海”中 。
当然我们不可能一下子列出Linux中的所有文件,那不现实 。但是我们可以向你展示如何在Linux的目录树中来回穿梭,你可以知道此刻你位于哪个目录下 。就好比能看懂Linux这个很大的“地图” 。
pwd 是英语Print Working Directory的缩写,表示“打印当前工作目录” 。
which 命令:获取命令的可执行文件的位置,which命令用于显示一个命令的对应的可执行程序的位置 。可能听起来有点拗口 。
在Linux下,每一条命令其实对应了一个可执行程序 。我们在终端中输入命令,再按回车的时候,其实就是执行了对应的那个程序 。比如说 , pwd命令对应的pwd程序就是存在于Linux中的 。
which命令接受一个参数,也就是你想要知道其可执行程序位于哪里的那个命令 。
我们来测试一下,就拿pwd命令来测试好了:
得到:
因此,pwd命令对应的pwd这个可执行程序位于/bin目录中 。
我们也可以注意到Linux中的可执行程序和Windows中不太一样,在Windows中可执行程序一般以.exe结尾,而Linux中一般是没有后缀名的 。
Linux中的可执行程序也不是都位于相同目录的 。我们可以来测试一下which命令本身对应的可执行程序位于哪里:
我们可以看到,which命令对应的可执行程序which并不位于/bin中,而是在/usr/bin中 。
Ubuntu的终端默认是有颜色标注的,一般来说:
如果在你的终端里没有标明颜色,那么你可以加上参数 --color=auto来开启颜色标注 。如下:
如果你不需要颜色标注 , 那么可以用 --color=none来关闭颜色标注 。如下:
当然,为了避免每次都输入这么一串额外的参数 , 其实我们可以在一个配置文件里修改,使得永久显示颜色或不显示颜色 。
在Linux , 以点( . )开头的文件是隐藏文件,不过这里不包括开头的两个. 和.. , 这两个的含义如下:
- . (一个点)表示当前目录 。在当前情况下,就是 /home/oscar。
- .. (两个点)表示上一级目录 。因为当前目录是/home/oscar,所以上一级目录就是 /home。
我们有一个大写的参数 -A,它的作用和小写的-a几乎一样 , 唯一不同就是-A不列出 . 和 .. 这两个文件 。
-l 这个参数算是ls命令最常用的了 。加上-l参数使得ls命令列出一个显示文件和目录的详细信息的列表 。
当我们仅用ls -l时,列出的文件详细信息中,文件的大小是以字节为单位的 。有时这不是太直观 。我们可以再加一个参数-h,h是humain readable的缩写,表示“适合人类阅读的” 。所以我们的命令变成了:
t是time的缩写 。
du命令也是很有用的 , 因为它可以让我们知道文件和目录所占的空间大小 。
虽然ls -l命令也可以显示文件和目录的大?。?但是du命令统计的才是真正的文件大小 。du命令会深入遍历每个目录的子目录,把所有文件的大小都做一个统计 。
du是英语disk usage的缩写,表示“磁盘使用/占用” 。
我们的du命令也可以使用参数 。
cat命令和less命令:显示文件内容,这两个命令只能显示文件内容,并不能对文件内容进行修改 。
一次性显示文件的所有内容,如果你想要在显示的文件内容上加上行号 , 那么你可以加上 -n 这个参数 。
分页显示文件内容
head命令和tail命令:显示文件的开头和结尾 。
显示文件开头,默认情况下,head会显示文件的头10行 。我们也可以指定显示的行数,用 -n 这个参数:
就会显示文件的头5行 。
显示文件结尾 。默认情况下 , tail会显示文件的尾10行 。
我们也可以指定显示的行数 , 用 -n 这个参数:
就会显示文件的尾5行 。
tail命令还可以配合 -f 参数来实时追踪文件的更新:
这样 , 就会检查文件是否有追加内容 , 如果有,就显示新增内容 。
默认地,tail -f会每过1秒检查一下文件是否有新内容 。你也可以指定间隔检查的秒数,用 -s 参数:
可以用快捷键 Ctrlc 来终止tail -f 命令 。
touch命令和mkdir命令:创建文件和目录
创建一个空白文件 。事实上,Linux没有一个命令是专门用来创建一个空白文件的 。touch命令其实一开始的设计初衷是修改文件的时间戳 , 就是可以修改文件的创建时间或修改时间 , 让电脑以为文件是在那个时候被修改或创建的 。但是touch命令如果后面跟着的文件名是不存在的,那么它就会新建一个 。
事实上,我们可以用touch命令同时创建多个文件:
如果我所要创建的文件的名字里有空格怎么办呢?
很简单,加上双引号:
创建一个目录 。
mkdir也可以同时创建好几个目录:
如果我所要创建的目录的名字里有空格怎么办呢?
很简单,加上双引号:
我们还可以用 -p 参数来递归创建目录结构 。
比如:
cp命令和mv命令:拷贝文件和移动文件
拷贝文件或目录
cp是英语copy的缩写,表示“拷贝” 。所以 , 顾名思义,此命令用于拷贝 。cp命令不仅可以拷贝单个文件,还可以拷贝多个文件,也可以拷贝目录 。
复制文件到另一个目录只需要把cp命令的第二个参数换成目录名 。
拷贝目录
要拷贝目录,只要在cp命令之后加上-R参数(注意是大写的R) 。拷贝的时候 , 目录中的所有内容(子目录和文件)都会被拷贝 。
使用通配符*
*号(星号)是很常用的正则表达式的符号 , 被称为“通配符”,
所以如果我们用如下命令:
那么就会把当前目录下所有txt文件拷贝到folder这个子目录当中 。
又如:
那么就会把当前目录下凡是以ha开头的文件都拷贝到folder目录中 。
移动文件
mv是英语move的缩写 , 表示“移动” 。mv命令有两个功能:
用mv命令来移动目录很简单,不需要额外的参数,就跟移动文件一样:
当然,我们也可以使用通配符 。
除了移动文件,mv命令还可以用于重命名文件 。
事实上,Linux中没有一个专门的命令用于重命名文件 。之所以mv命令可以重命名文件,其实还是归因于它的机制:移动文件 。经过mv移动之后,原始文件变成了新的名字的文件,文件内容是不变的 , 这不就相当于重命名了吗?
以上命令会将new_file重命名为renamed_file 。
删除文件和目录
rm命令可以删除一个文件,多个文件,目录,甚至你的整个Linux系统(如果你愿意的话) 。
以上命令删除当前目录下的new_file_copy这个文件 。
我们也可以同时删除多个文件,只要用空格隔开每个文件即可 。例如:
保险起见,用rm命令删除文件时,可以加上 -i 参数,这样对于每一个要删除的文件,终端都会询问我们是否确定删除 。i是英语inform的缩写 , 表示“告知,通知” 。
有两种回答:
y:是英语yes的缩写,表示“是” 。那么回车确认后,文件就删除了 。
n:是英语no的缩写,表示“否” 。那么回车确认后,文件不会删除 。
如果在rm命令后加上-f参数,那么终端不会询问用户是否确定删除文件,不论如何 , 文件会立刻被强制删除 。
f是英语force的缩写 。
以上命令会强制删除file文件 。
r是英语recursive的缩写 , 表示“递归的” 。所以使用-r参数,可以使rm命令删除目录 , 并且递归删除其包含的子目录和文件 。
这个命令也挺危险的,用得不好可能你的子目录和文件都没了 。
以上命令会删除one这个目录 , 包括其子目录和文件 。
其实,也存在一个命令
看着和 rm -r 挺像的 。但是这个命令有个局限性:只能删除空的目录 。
创建链接
事实上,Linux下有两种链接类型:
为了区分这两种链接类型的不同 , 我们首先来谈一谈如Linux这样的操作系统中文件在硬盘上的存放 。
文件在硬盘上存储时,大致来说(请注意我用了“大致来说”),每个文件有两部分:
文件名的列表是储存在硬盘的其他地方的 , 和文件内容分开存放,这样方便Linux管理 。
注意:为什么我上面要用“大致说来”呢?因为此处我们简化了描述,其实每个文件有三部分:
我们这里简化地将文件分为两部分:文件名和文件内容 。因为我们不想把事情复杂化,我们想要理解两种链接类型的区别,暂时只要知道这些就够了 。
每个文件的文件内容被分配到一个标示号码,就是inode 。因此每个文件名都绑定到它的文件内容(用inode标识) 。原理如下图:
下面我们学习如何创建硬链接和软连接 。
比之软链接,硬链接的使用几率小很多 。但是我们还是要学习一下 , 毕竟可能会用到 。
硬链接的原理:使链接的两个文件共享同样的文件内容,也就是同样的inode 。
所以一旦文件1和文件2之间有了硬链接,那么你修改文件1或文件2,其实修改的是相同的一块内容 。只不过我们可以用两个文件名来取到文件内容 。
硬链接有一个缺陷:只能创建指向文件的硬链接,不能创建指向目录的硬链接 。但是软链接可以指向文件或目录 。当然了 , 事实上,通过一些参数的修改,也可以创建指向目录的硬链接 , 但是比较复杂 , 这里不再详述 。所以对于目录的链接,我们一般都是用软链接 。
硬链接原理图:
要创建硬链接,直接用ln命令,不加任何参数:
我们可以用ls -i命令查看一下(-i参数可以显示文件的inode) 。对于硬链接来说,删除任意一方的文件 , 共同指向的文件内容并不会从硬盘上被删除 。
我们用ls -l命令查看文件信息的时候,第二列的那个2,其实是表示拥有相同inode号的文件数 。不难理解,因为它们指向相同的文件内容,所以共享一个inode 。
这个第二列的数字,一般来说对于普通文件,都是1,因为不同文件inode不同嘛 。对于目录来说,这第二列的数字标明目录内所含文件数目 。
其实 , 软链接才是真正像我们在Windows下的快捷方式的,其原理很相似 。
创建硬链接是ln不带任何参数,但是要创建软链接需要加上-s参数 。s是symbolic(符号的)的缩写 。
file2指向的不再是file1的文件内容(和硬链接不同),而是指向file1的文件名 。
软链接原理图:
用ls -l命令查看一下,会发现形式和之前的硬链接不一样噢,file2的信息是这样的: file2-file1,表示file2指向file1 。
而且file2前面的权限那里的第一个字母变成了l,表示link(链接) 。之前硬链接的时候是没有l的 , 硬链接外表看起来就和普通文件类似 。
我们用ls -l命令查看文件信息的时候 , 第二列的那个1,表示拥有相同inode号的文件数 。不难理解,因为file2指向file1,它们并没有指向同一块文件内容 , 所以它们的inode号不相同 。
软链接的特点:
linux中,有哪些命令是比较好用的呢?1.列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容 。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得 。
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容 。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名 , 例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
2、cat命令
功能:在标准输出上显示文件 。
语法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2file2
3、more命令
功能:在终端屏幕按屏显示文本文件 。
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能几乎和more命令一样 , 也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件 。
5、head命令
功能:显示指定文件的前若干行 。缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:显示指定文件的末尾若干行 。缺省设置为显示10行
语法:tail [/ - num ] [参数] 文件
+num 从第num行以后开始显示 。- num 从距文件尾num行处开始显示 。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名 。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令 。
语法:
grep [-EFbcihlnvxef] [查找模式] [文件名1 , 文件名2,……]
egrep [选项] [查找模式] [文件名1,文件名2,……]
fgrep [选项] [查找模式] [文件名1,文件名2 , ……]
例子: grep "text file" example
grep data *
grep goto *.c
Linux中 PS1 的用法-亲测有效先展示个人结果
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数 。
在终端输入命令:
可得到当前PS1的定义值:
PS1的常用参数以及含义:
所以linux默认的命令行提示信息的格式
在PS1中设置字符颜色的格式为:[\e[F;Bm]........[\e[0m],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,[\e[0m]作为颜色设定的结束 。
颜色对照表:
只需将对应数字套入设置格式中即可 。
经过多次测试后,最终确定了一个适合我自己的格式:
但注意这样的设置只是临时性的.
上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效 。要想永久性的保存设置 , 需要修改.bashrc配置文件 。
键入命令:
现在可以看到.bashrc这个文件 。
编辑.bashrc:
加入这一行:
保存退出 。
重新加载bash配置文件:
即可立即并永久生效了 。
命令提示符修复电脑命令提示符修复电脑的方式如下:
电脑:联想thinkpad
系统:Win10
1、在Win10开始按钮上点击右键或按Win X快捷键 , 在弹出的系统快捷菜单中点击WindowsPowerShell管理员或者命令提示符 。
2、输入sfcverifyonly命令后按回车,这是用来查看到该检查器命令的所有参数 。例如sfc/SCANNOW扫描所有保护的系统文件的完整性,并尽可能修复有问题的文件,替换SFC后面的执行各种命令 。
3、或者也可以扫描映像来检查损坏 , 这个操作将花费数分钟时间 。例如,在命令提示符下键入以下命令,Dism/Online/Cleanup-Image/ScanHealth 。
4、检查映像以查看是否有检测到损坏,例如,在命令提示符下键输入Dism/Online/Cleanup-Image/CheckHealth 。
5、当使用/CheckHealth参数时 , DISM工具将报告映像是状态良好、可以修复、还是不可修复,如果映像不可修复,必须放弃该映像,并重新开始 。如果映像可以修复,可以使用RestoreHealth参数来修复映像 。
命令提示符简介
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符,在不同的操作系统环境下,命令提示符各不相同 。在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统 。
一般说的命令行是指linux命令,linux命令是对Linux系统进行管理的命令 。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标 , 还是用户等都是文件,Linux系统管理的命令是它正常运行的核心 。与之前的DOS命令类似,linux命令在系统中有两种类型内置Shell命令和Linux命令 。
linux下的“命令提示符”是什么啊 , 怎么进?。?/h2>命令提示符是在操作系统中,提示进行命令输入的一种工作提示符 。在不同的操作系统环境下,命令提示符各不相同 。
linux系统进入linux命令行的方法:
图形界面下ctrl alt space
重新修改文件
在dos下运行loadlin.exe文件
loadlin.exe是在DOS下的可执行文件,可以在纯DOS环境下迅速启动LINUX,而且无需重新启动,在光盘的kernels目录下,复制到DOS分区中,同时还需要复制一份你所使用的LINUX内核文件,都拷贝到DOS分区 , 在建立一个批处理文件LINUX.BAT
或者从linux主程序菜单中进入:在左下角点击开始-系统设备-终端选项 。
$ 在linux里什么意思$ 在linux里是用来给变量命令的,例如$JAVA_HOME,是指JAVA_HOME的环境变量 。
echo $JAVA_HOME 可以在linux终端输出jdk的home目录 。
在Shell 脚本中向脚本传递参数也会用到$,例如脚本内获取参数的格式为:$n,n 代表一个数字 , 1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推 。
实例-向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:
#!/bin/bash
Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
扩展资料
另外$还可以配合几个特殊字符用来处理参数:
1、$#:传递到脚本的参数个数 。
2、$* :以一个单字符串显示所有向脚本传递的参数 。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数 。
3、$$:脚本运行的当前进程ID号。
4、$!:后台运行的最后一个进程的ID号 。
5、$@:与$*相同,但是使用时加引号,并在引号中返回每个参数 。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数 。
6、$-:显示Shell使用的当前选项,与set命令功能相同 。
7、$? :显示最后命令的退出状态 。0表示没有错误 , 其他任何值表明有错误 。
关于linux命令行提师符和linux提权 方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读