导航:首页 > 程序命令 > 命令解释程序在用户态

命令解释程序在用户态

发布时间:2022-07-08 15:49:35

① 现代计算机中,CPU的工作方式有用户态和系统态,在用户态中运行 (1)程序,

现代计算机中,CPU的工作方式有用户态和系统态,在用户态中运行
(应用)程序,在系统态中运行(调度)程序。操作系统作为(系统软件),它只做(与硬件相关而与应用无关)的工作,而(管理计算机中的信息资源)不是操作系统关心的主要问题。

② 请教linux下用户态进程调度问题

在进行Linux系统操作的时候,有时候会遇到一次用户态进程死循环,即系统反应迟钝、进程挂死等问题,那么遇到这些问题又该如何解决呢?下面小编就给大家介绍下一次用户态进程死循环的问题该如何处理。
Linux下如何处理一次用户态进程死循环问题
1、问题现象
业务进程(用户态多线程程序)挂死,操作系统反应迟钝,系统日志没有任何异常。从进程的内核态堆栈看,看似所有线程都卡在了内核态的如下堆栈流程中:
[root@vmc116 ~]# cat /proc/27007/task/11825/stack
[《ffffffff8100baf6》] retint_careful+0x14/0x32
[《ffffffffffffffff》] 0xffffffffffffffff
2、问题分析
1)内核堆栈分析
从内核堆栈看,所有进程都阻塞在 retint_careful上,这个是中断返回过程中的流程,代码(汇编)如下:
entry_64.S
代码如下:
ret_from_intr:
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF
decl PER_CPU_VAR(irq_count)
/* Restore saved previous stack */
popq %rsi
CFI_DEF_CFA rsi,SS+8-RBP /* reg/off reset after def_cfa_expr */
leaq ARGOFFSET-RBP(%rsi), %rsp
CFI_DEF_CFA_REGISTER rsp
CFI_ADJUST_CFA_OFFSET RBP-ARGOFFSET
。。。
retint_careful:
CFI_RESTORE_STATE
bt $TIF_NEED_RESCHED,%edx
jnc retint_signal
TRACE_IRQS_ON
ENABLE_INTERRUPTS(CLBR_NONE)
pushq_cfi %rdi
SCHEDULE_USER
popq_cfi %rdi
GET_THREAD_INFO(%rcx)
DISABLE_INTERRUPTS(CLBR_NONE)
TRACE_IRQS_OFF
jmp retint_check
这其实是用户态进程在用户态被中断打断后,从中断返回的流程,结合retint_careful+0x14/0x32,进行反汇编,可以确认阻塞的点其实就在
SCHEDULE_USER
这其实就是调用schele()进行调度,也就是说当进程走到中断返回的流程中时,发现需要调度(设置了TIF_NEED_RESCHED),于是在这里发生了调度。
有一个疑问:为什么在堆栈中看不到schele()这一级的栈帧呢?
因为这里是汇编直接调用的,没有进行相关栈帧压栈和上下文保存操作。
2)进行状态信息分析
从top命令结果看,相关线程实际一直处于R状态,CPU几乎完全耗尽,而且绝大部分都消耗在用户态:
[root@vmc116 ~]# top
top - 09:42:23 up 16 days, 2:21, 23 users, load average: 84.08, 84.30, 83.62
Tasks: 1037 total, 85 running, 952 sleeping, 0 stopped, 0 zombie
Cpu(s): 97.6%us, 2.2%sy, 0.2%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32878852k total, 32315464k used, 563388k free, 374152k buffers
Swap: 35110904k total, 38644k used, 35072260k free, 28852536k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27074 root 20 0 5316m 163m 14m R 10.2 0.5 321:06.17 z_itask_templat
27084 root 20 0 5316m 163m 14m R 10.2 0.5 296:23.37 z_itask_templat
27085 root 20 0 5316m 163m 14m R 10.2 0.5 337:57.26 z_itask_templat
27095 root 20 0 5316m 163m 14m R 10.2 0.5 327:31.93 z_itask_templat
27102 root 20 0 5316m 163m 14m R 10.2 0.5 306:49.44 z_itask_templat
27113 root 20 0 5316m 163m 14m R 10.2 0.5 310:47.41 z_itask_templat
25730 root 20 0 5316m 163m 14m R 10.2 0.5 283:03.37 z_itask_templat
30069 root 20 0 5316m 163m 14m R 10.2 0.5 283:49.67 z_itask_templat
13938 root 20 0 5316m 163m 14m R 10.2 0.5 261:24.46 z_itask_templat
16326 root 20 0 5316m 163m 14m R 10.2 0.5 150:24.53 z_itask_templat
6795 root 20 0 5316m 163m 14m R 10.2 0.5 100:26.77 z_itask_templat
27063 root 20 0 5316m 163m 14m R 9.9 0.5 337:18.77 z_itask_templat
27065 root 20 0 5316m 163m 14m R 9.9 0.5 314:24.17 z_itask_templat
27068 root 20 0 5316m 163m 14m R 9.9 0.5 336:32.78 z_itask_templat
27069 root 20 0 5316m 163m 14m R 9.9 0.5 338:55.08 z_itask_templat
27072 root 20 0 5316m 163m 14m R 9.9 0.5 306:46.08 z_itask_templat
27075 root 20 0 5316m 163m 14m R 9.9 0.5 316:49.51 z_itask_templat
。。。
3)进程调度信息
从相关线程的调度信息看:
[root@vmc116 ~]# cat /proc/27007/task/11825/schedstat
15681811525768 129628804592612 3557465
[root@vmc116 ~]# cat /proc/27007/task/11825/schedstat
15682016493013 129630684625241 3557509
[root@vmc116 ~]# cat /proc/27007/task/11825/schedstat
15682843570331 129638127548315 3557686
[root@vmc116 ~]# cat /proc/27007/task/11825/schedstat
15683323640217 129642447477861 3557793
[root@vmc116 ~]# cat /proc/27007/task/11825/schedstat
15683698477621 129645817640726 3557875
发现相关线程的调度统计一直在增加,说明相关线程一直是在被调度运行的,结合其状态也一直是R,推测很可能在用户态发生了死循环(或者非睡眠死锁)。
这里又有问题:为什么从top看每个线程的CPU占用率只有10%左右,而不是通常看到的死循环进程导致的100%的占用率?
因为线程数很多,而且优先级都一样,根据CFS调度算法,会平均分配时间片,不会让其中一个线程独占CPU。结果为多个线程间轮流调度,消耗掉了所有的cpu。。
另一个问题:为什么这种情况下,内核没有检测到softlockup?
因为业务进程的优先级不高,不会影响watchdog内核线程(最高优先级的实时线程)的调度,所以不会产生softlockup的情况。
再一个问题:为什么每次查看线程堆栈时,总是阻塞在retint_careful,而不是其它地方?
因为这里(中断返回的时候)正是调度的时机点,在其它时间点不能发生调度(不考虑其它情况~),而我们查看线程堆栈的行为,也必须依赖于进程调度,所以我们每次查看堆栈时,正是查看堆栈的进程(cat命令)得到调度的时候,这时正是中断返回的时候,所以正好看到的阻塞点为retint_careful。
4)用户态分析
从上面的分析看,推测应该是用户态发生了死锁。
用户态确认方法:
部署debug信息,然后gdb attach相关进程,确认堆栈,并结合代码逻辑分析。
最终确认该问题确为用户态进程中产生了死循环。

③ 在unix/linux系统中,什么是用户态,什么是内核态

究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:

1)例子

C代码
1. void testfork(){
2. if(0 = = fork()){
3. printf(“create new process success!\n”);
4. }
5. printf(“testfork ok\n”);
6. }

这段代码很简单,从功能的角度来看,就是实际执行了一个fork(),生成一个新的进程,从逻辑的角度看,就是判断了如果fork()返回的是则打印相关语句,然后函数最后再打印一句表示执行完整个testfork()函数。代码的执行逻辑和功能上看就是如此简单,一共四行代码,从上到下一句一句执行而已,完全看不出来哪里有体现出用户态和进程态的概念。

如果说前面两种是静态观察的角度看的话,我们还可以从动态的角度来看这段代码,即它被转换成CPU执行的指令后加载执行的过程,这时这段程序就是一个动态执行的指令序列。而究竟加载了哪些代码,如何加载就是和操作系统密切相关了。

2)特权级

熟悉Unix/Linux系统的人都知道,fork的工作实际上是以系统调用的方式完成相应功能的,具体的工作是由sys_fork负责实施。其实无论是不是Unix或者Linux,对于任何操作系统来说,创建一个新的进程都是属于核心功能,因为它要做很多底层细致地工作,消耗系统的物理资源,比如分配物理内存,从父进程拷贝相关信息,拷贝设置页目录页表等等,这些显然不能随便让哪个程序就能去做,于是就自然引出特权级别的概念,显然,最关键性的权力必须由高特权级的程序来执行,这样才可以做到集中管理,减少有限资源的访问和使用冲突。

特权级显然是非常有效的管理和控制程序执行的手段,因此在硬件上对特权级做了很多支持,就Intel x86架构的CPU来说一共有0~3四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查,相关的概念有 CPL、DPL和RPL,这里不再过多阐述。硬件已经提供了一套特权级使用的相关机制,软件自然就是好好利用的问题,这属于操作系统要做的事情,对于 Unix/Linux来说,只使用了0级特权级和3级特权级。也就是说在Unix/Linux系统中,一条工作在级特权级的指令具有了CPU能提供的最高权力,而一条工作在3级特权级的指令具有CPU提供的最低或者说最基本权力。

3)用户态和内核态

现在我们从特权级的调度来理解用户态和内核态就比较好理解了,当程序运行在3级特权级上时,就可以称之为运行在用户态,因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;反之,当程序运行在级特权级上时,就可以称之为运行在内核态。

虽然用户态下和内核态下工作的程序有很多差别,但最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序,比如上面例子中的testfork()就不能直接调用 sys_fork(),因为前者是工作在用户态,属于用户态程序,而sys_fork()是工作在内核态,属于内核态程序。

当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态,比如testfork()最初运行在用户态进程下,当它调用fork()最终触发 sys_fork()的执行时,就切换到了内核态。

2. 用户态和内核态的转换

1)用户态切换到内核态的3种方式

a. 系统调用

这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。

b. 异常

当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

c. 外围设备的中断

当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。

2)具体的切换操作

从触发方式上看,可以认为存在前述3种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断的处理机制基本上也是一致的,关于它们的具体区别这里不再赘述。关于中断处理机制的细节和步骤这里也不做过多分析,涉及到由用户态切换到内核态的步骤主要包括:

[1] 从当前进程的描述符中提取其内核栈的ss0及esp0信息。

[2] 使用ss0和esp0指向的内核栈将当前进程的cs,eip,eflags,ss,esp信息保存起来,这个

过程也完成了由用户栈到内核栈的切换过程,同时保存了被暂停执行的程序的下一

条指令。

[3] 将先前由中断向量检索得到的中断处理程序的cs,eip信息装入相应的寄存器,开始

执行中断处理程序,这时就转到了内核态的程序执行了。

④ 2011考研计算机的真题及答案什么时候能在网上查到啊

还是做做真题集,这里有一份最全的考研历年真题资料分享给你

链接:https://pan..com/s/1t0SUkI-X-BW4v7Isl0dk4w

提取码:w2wt

通过不断研究和学习历年真题,为考生冲刺阶段复习提分指点迷津,做真题,做历年真题集,对照考纲查缺补漏,提高实战素养,制定做题策略,规划方向;

若资源有问题欢迎追问!

⑤ shell到基本工作过程是怎样到

linux系统提供给用户的最重要的系统程序是shell语言命令解释程序。它不属于内核部分,而是在核心之外以用户态方式运行。其基本功能是解释并执行 用户键入的各种命令,实现用户与linux核心的接口。系统启动后,内核为每个终端用户建立一个进程去执行shell解释程序。
基本的执行步骤如下:
1、读取用户由键盘输入的命令行。
2、分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的形式。
3、终端进程调用fork( )建立一个子进程。
4、终端进程本身调用wait4()来等待子进程完成(如果是后台命令,则不等待)。当子进程运行时调用execve(),子进程根据文件名到目录中查找有关文件,调入内存,执行这个程序。
5、如果命令末尾有&,则终端进程不用执行系统调用wait4(),立即发提示符,让用户输入下一条命令;否则终端进程会一直等待,当子进程完成工作后,向父进程报告,此时中断进程醒来,作必要的判别工作后,终端发出命令提示符,重复上述处理过程。

⑥ 求2011计算机考研真题不要答案。有真题吗

做做真题集,这里有一份最全的考研历年真题资料分享给你

链接:https://pan..com/s/1t0SUkI-X-BW4v7Isl0dk4w

提取码:w2wt

通过不断研究和学习历年真题,为考生冲刺阶段复习提分指点迷津,做真题,做历年真题集,对照考纲查缺补漏,提高实战素养,制定做题策略,规划方向;

若资源有问题欢迎追问!

⑦ 什么为核心态、用户态、特权指令(定义)

操作系统的核心态和用户态概念2009年03月01日 星期日 18:03 从应用程序进程在执行过程中向CPU发出的运行指令形式不同,可以将进程的状态分为用户态和核心态。处于用户态下的进程执行的是应用程序指令、处于核心态下的应用程序进程执行的是操作系统指令。

区分特权指令的原因:避免用户使用而使系统陷于混乱; 方便用户,不必了解硬件细节。

特权指令:只能由操作系统内核部分使用,不允许用户直接使用的指令。如,I/O指令、置终端屏蔽指令、清内存、建存储保护、设置时钟指令。

非特权指令:所有程序均可直接使用。

引入系统态和核心态的原因:

系统态(核心态、特态、管态):执行全部指令。

用户态(常态、目态):执行非特权指令。

⑧ 求所有cmd命令含义及用法(包括net,ntsd,taskkill.....)

1. ntsd

格式:c:>ntsd -c q -p PID

只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。

ntsd从2000开始就是系统自带的用户态调试工具,被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了。Ntsd 按照惯例也向软件开发人员提供。只有系统开发人员使用此命令。

用法:开个cmd.exe窗口,输入:ntsd -c q -p PID

把最后那个PID改成你要终止的进程的ID。如果你不知道进程的ID,打开任务管理器>进程选项卡>查看>选择列>勾上“PID(进程标识符)”,然后就能看见了。

WinXP下还有两个好东东:tasklist和tskill。

tasklist能列出所有的进程和相应的信息。
tskill能查杀进程。语法很简单:tskill 程序名。
2. replace

用来替换文件的replace连正在使用的文件也能替换,非常无敌。

比如:在c:下建一个目录:c:aaa,复制一首mp3到c:aaa并命名为c:aaaa.mp3,再复制另一首歌到c:a.mp3。用Media Player 播放c:aaaa.mp3,在命令提示符下输入:replace c:a.mp3 c:aaa。过一会,是不是播放的歌已变为另一首?

用这个命令来替换系统文件真是太爽了,并且WinXP的系统文件保护也对它无效,再也不用到安全模式下去替换文件了。

格式:

REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W]
[drive1:][path1]filename 指定源文件
[drive2:][path2] 指定要替换文件的目录
/A:把新文件加入目标目录。不能和/S 或/U命令行开关搭配使用
/P:替换文件或加入源文件之前会先提示您进行确认
/R:替换只读文件以及未受保护的文件
/S:替换目标目录中所有子目录的文件不能与/A 命令选项搭配使用
/W:等您插入磁盘以后再运行
/U:只会替换或更新比源文件日期早的文件,不能与/A 命令行开关搭配使用。

网上找来了,可能多了点。

dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录
拷贝文件 disk 复制磁盘 del 删除文件 format 格式化磁盘
edit 文本编辑 mem 查看内存状况 md 建立子目录 move 移动文件、改目录名
more 分屏显示 type 显示文件内容 rd 删除目录 sys 制作DOS系统盘
ren 改变文件名 x 拷贝目录与文件 chkdsk 检查磁盘 attrib 设置文件属性
fdisk 硬盘分区 date 显示及修改号期 label 设置卷标号 defrag 磁盘碎片整理
msd 系统检测 path 设置搜寻目录 share 文件共享 memmaker内存优化管理
help 帮助 restore 恢复备份文件 set 设置环境变量 time 显示及修改时间
tree 列目录树 debug 随机调试程序 doskey 重新调用DOS命令符
prempt 设置提示符 undelete恢复被删的文件 scandisk检测、修理磁盘

不常用DOS命令
diskcomp磁盘比较 append 设置非执行文件路径
expand 还原DOS文件 fasthelp快速显示帮助信息
fc 文件比较 interink启动服务器
setver 设置版本 intersvr启动客户机
subst 路径替换 qbasic Basic集成环境
vsafe 防病毒 unformat恢复已格式化的磁盘
ver 显示DOS版本号 smartdrv设置磁盘加速器
vol 显示磁盘卷标号 lh 将程序装入高端内存
ctty 改变控制设备 emm386 扩展内存管理

常用命令具体介绍:
一、Dir
显示目录文件和子目录列表,呵呵,这个当然是人人要知道的。
可以使用通配符(? 和 *),?表通配一个字符,*表通配任意字符
*.后缀
指定要查看后缀的文件。 上面其实也可以为“ . 后缀”,例如dir *.exe 等于dir .exe
/p
每次显示一个列表屏幕。要查看下一屏,请按键盘上的任意键。
/w
以宽格式显示列表,在每一行上最多显示 5 个文件名或目录名。
/s
列出指定目录及所有子目录中出现的每个指定的文件名。比win环境下的查找快多了
dir *.* -> a.txt 把当前目录文件列表写入a.txt
dir *.* /s -> a.txt 把当前目录文件列表写入a.txt,包括子目录下文件。

二、Attrib
显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性。如果在不含参数的情况下使用,则 attrib 会显示当前目录中所有文件的属性。
+r
设置只读属性。
-r
清除只读属性。
+a
设置存档文件属性。
-a
清除存档文件属性。
+s
设置系统属性。
-s
清除系统属性。
+h
设置隐藏属性。
-h
清除隐藏属性。

三、Cls
清除显示在命令提示符窗口中的所有信息,并返回空窗口,即“清屏”

四、Exit
退出当前命令解释程序并返回到系统。

五、format
格式化
/q
执行快速格式化。删除以前已格式化卷的文件表和根目录,但不在扇区之间扫描损坏区域。使用 /q 命令行选项应该仅格式化以前已格式化的完好的卷。

六、Ipconfig
显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IP 地址、子网掩码、默认网关。
/all
显示所有适配器的完整 TCP/IP 配置信息。
ipconfig 等价于 winipcfg,后者在ME、98 和 95 上可用。尽管 Windows XP 没有提供象 winipcfg 命令一样的图形化界面,但可以使用“网络连接”查看和更新 IP 地址。要做到这一点,请打开 网络连接,右键单击某一网络连接,单击“状态”,然后单击“支持”选项卡。
该命令最适用于配置为自动获取 IP 地址的计算机。它使用户可以确定哪些 TCP/IP 配置值是由 DHCP、自动专用 IP 地址 (APIPA) 和其他配置配置的。

七、md
创建目录或子目录

八、Move
将一个或多个文件从一个目录移动到指定的目录。

九、N*stat
显示本地计算机和远程计算机的基于 TCP/IP (NetBT) 协议的 NetBIOS 统计资料、NetBIOS 名称表和 NetBIOS 名称缓存。N*stat 可以刷新 NetBIOS 名称缓存和注册的 Windows Internet 名称服务 (WINS) 名称。使用不带参数的 n*stat 显示帮助。N*stat 命令行参数区分大小写。
-a remotename
显示远程计算机的 NetBIOS 名称表,其中,RemoteName 是远程计算机的 NetBIOS 计算机名称。
-A IPAddress
显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP 地址指定(以小数点分隔)。

十、Netstat
显示活动的 TCP 连接、计算机侦听的端口、以太网统计信息、IP 路由表、IPv4 统计信息(对于 IP、ICMP、TCP 和 UDP 协议)以及 IPv6 统计信息(对于 IPv6、ICMPv6、通过 IPv6 的 TCP 以及通过 IPv6 的 UDP 协议)。使用时如果不带参数,netstat 显示活动的 TCP 连接。
-a
显示所有活动的 TCP 连接以及计算机侦听的 TCP 和 UDP 端口。
十一、Ping
通过发送“网际消息控制协议 (ICMP)”回响请求消息来验证与另一台 TCP/IP 计算机的 IP 级连接。回响应答消息的接收情

况将和往返过程的次数一起显示出来。Ping 是用于检测网络连接性、可到达性和名称解析的疑难问题的主要 TCP/IP 命令。如果不带参数,ping 将显示帮助。名称和Ip地址解析是它的最简单应用也是用的最多的。
-t
指定在中断前 ping 可以持续发送回响请求信息到目的地。要中断并显示统计信息,请按 CTRL-BREAK。要中断并退出 ping,请按 CTRL-C。
-lSize
指定发送的回响请求消息中“数据”字段的长度(以字节表示)。默认值为 32。size 的最大值是 65,527。

十二、Rename (Ren)
更改文件的名称。
例如 ren *.abc *.cba

十三、Set
显示、设置或删除环境变量。如果没有任何参数,set 命令将显示当前环境设置。

十四、Shutdown
允许您关闭或重新启动本地或远程计算机。如果没有使用参数,shutdown 将注销当前用户。
-m ComputerName
指定要关闭的计算机。
-t xx
将用于系统关闭的定时器设置为 xx 秒。默认值是 20 秒。
-l
注销当前用户,这是默认设置。-m ComputerName 优先。
-s
关闭本地计算机。
-r
关闭之后重新启动。
-a
中止关闭。除了 -l 和 ComputerName 外,系统将忽略其它参数。在超时期间,您只可以使用 -a。

十五、System File Checker (sfc)
win下才有,在重新启动计算机后扫描和验证所有受保护的系统文件。
/scannow
立即扫描所有受保护的系统文件。
/scanonce
一次扫描所有受保护的系统文件。
/purgecache
立即清除“Windows 文件保护”文件高速缓存,并扫描所有受保护的系统文件。
/cachesize=x
设置“Windows 文件保护”文件高速缓存的大小,以 MB 为单位。

十六、type
显示文本文件的内容。使用 type 命令查看文本文件或者是bat文件而不修改文件

十七、Tree
图像化显示路径或驱动器中磁盘的目录结构。

十八、X
复制文件和目录,包括子目录。
/s
复制非空的目录和子目录。如果省略 /s,x 将在一个目录中工作。
/e
复制所有子目录,包括空目录。

十九、
将一个或多个文件从一个位置复制到其他位置

二十、del
删除指定文件。
ftp和bat批命令和net和telnet由于子命令太多,这里不说了,不过这几个都是常用到

阅读全文

与命令解释程序在用户态相关的资料

热点内容
电脑qq邮箱解压的图片保存在哪里 浏览:542
嵌入命令行 浏览:91
档案为什么被加密 浏览:485
十天学会单片机13 浏览:875
荣耀怎么设置让app一直运行 浏览:992
共享文件夹能在哪里找到 浏览:433
旅游订旅店用什么app 浏览:239
一个女程序员的声音 浏览:494
魔术app怎么用 浏览:340
单片机有4个8位的io口 浏览:897
win10rar解压缩软件 浏览:167
plc教程pdf 浏览:668
pythonshell清屏命令 浏览:279
检测到加密狗注册服务器失败 浏览:205
解压后手机如何安装 浏览:519
极客学院app为什么下架 浏览:14
图片批量压缩绿色版 浏览:653
东北程序员帅哥 浏览:707
加密封条风噪小 浏览:975
安阳少儿编程市场 浏览:499