Linux启动目录结构与常用命令详解

需积分: 20 2 下载量 62 浏览量 更新于2024-08-25 收藏 1.24MB PPT 举报
本资源主要介绍Linux启动目录结构/etc/rc.d/以及其中常见的命令,这些命令在系统管理和日常操作中起着关键作用。Linux启动目录结构分为多个子目录,如: 1. **/etc/rc.d/init.d**: 存放系统服务的初始化脚本,用于在系统启动时自动运行和管理服务。 2. **/etc/rc0.d, /etc/rc1.d, ..., /etc/rc6.d**: 分别对应系统启动过程中的不同运行级别(通常1~6级,1表示单用户模式,6表示多用户图形界面),每个目录下的S开头的脚本是开机启动服务,K开头的是关机停止服务。 3. **/etc/rc.sysinit**: 这个脚本在系统引导过程中很早就会执行,通常处理基本的系统设置和初始化工作。 4. **/etc/rc.local**: 一个可选的脚本,用于在系统启动完成后执行特定任务,如设置环境变量或运行简单的程序。 5. **--rc**: 也是一个可能存在的目录,用于存放更通用的启动脚本。 资源中涉及的主要Linux命令包括: - **ls**:用于列出目录内容,提供多种选项来控制显示方式,如 `-a` 显示所有文件(包括隐藏文件)、`-l` 以长格式显示、`-F` 标记文件类型、`-R` 展开子目录等。 - **touch**:创建新文件或更新文件的时间戳。`-a` 参数修改所有文件的时间,`-d` 后跟日期指定特定时间,`*` 通配符用于批量操作。 - **cp**:复制文件或目录,`-a` 保留源文件的结构和属性、`-p` 保留原文件时间戳、`-f` 强制覆盖、`-i` 提示覆盖、`-R` 复制整个目录树。 - **rm**:删除文件或目录,有多种选项用于控制删除行为。 - **mkdir** 和 **rmdir**:分别用于创建和删除目录。 - **find**:搜索文件或目录,支持复杂的查找条件。 - **grep**:查找文本中的特定模式,常用于搜索和过滤文件内容。 - **tar** 和 **gzip/zip**:打包和压缩文件,以及解压文件。 - **sort** 和 **paste**:对文本进行排序和合并。 此外,还提到通过颜色标记不同类型的文件,如蓝色代表目录、绿色代表可执行文件、红色代表压缩文件等,使得文件列表更加直观易读。 这些命令是系统管理员和普通用户在Linux环境中进行文件管理、配置服务、备份数据等任务的基础,掌握它们有助于提高工作效率。学习和理解这些命令的细节,能够让你更好地理解和管理Linux系统。

/* * Record.c * * Created on: 2014-5-26 * Author: zdl */ #include "includes.h" char *const Display_Name[]={ "Music List", "1-Beyond.wav", "2-LetItG.wav", "3-WeAreO.wav", "4-FanFan.wav", "5-OldBoy.wav", "6-Sodagr.wav", "7-WangF1.wav", "8-WangF2.wav", "9-Mayday.wav", "10-StevC.wav", }; void Music_Graph() { SysTickDisable(); //---------Draw Title---------- ui8Flush_Flag=FLUSH_ON; GrClearDisplay(&g_sContext); GrFlush(&g_sContext); } void Music_Begin() { DSTATUS i=1; SystemClock=SysCtlClockGet(); //----------------硬件初始化--------------- DAC_Init(); //初始化DAC //-------------------初始化SD卡-------------------- while(i==1)// 使用文件系统初始化SD卡 i=disk_initialize(0); //-------------------初始化Timer------------------- SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1); TimerDisable(TIMER1_BASE, TIMER_A); TimerConfigure(TIMER1_BASE, TIMER_CFG_A_PERIODIC_UP); TimerIntRegister(TIMER1_BASE,TIMER_A,Timer1IntHandler); TimerIntEnable(TIMER1_BASE, TIMER_TIMA_TIMEOUT); MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); MAP_GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_6); MAP_GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_6,GPIO_PIN_6); SysTickEnable(); } void Music_Main() { static uint8_t preDisplay_Num=255,Display_Num=0; while((ui8ButtonKeyValue&KEY_LEFT_ENTER) == 0 &&(ui8ButtonKeyValue&KEY_RIGHT_EXIT)==0) { Display_Num = GetWheelKey(); _nop(); if(Display_Num != preDisplay_Num) { DrawMenu(Display_Num,Display_Name); preDisplay_Num = Display_Num; } SysCtlDelay(SystemClock/100); } if(Music_Enter==1) { GrClearDisplay(&g_sContext); GrStringDrawCentered(&g_sContext, Display_Name[Display_Num], AUTO_STRING_LENGTH, 63, 20, OPAQUE_TEXT); GrContextFontSet(&g_sContext, &g_sFontFixed6x8); GrStringDraw(&g_sContext,"Time:",4,0,53,1); GrStringNumberCentered(&g_sContext,0,0,35+22,57); GrStringDraw(&g_sContext,"-",1,35+9,53,1); GrStringNumberCentered(&g_sContext,0,0,35+2,57); GrStringDraw(&g_sContext,"/",1,35+34,53,1); GrStringNumberCentered(&g_sContext,0,0,35+48,57); GrStringDraw(&g_sContext,"-",1,35+55,53,1); GrStringNumberCentered(&g_sContext,0,0,35+70,57); GrFlush(&g_sContext); ui8Flush_Flag=FLUSH_OFF; WaveOpen(Display_Name[Display_Num],MONO); ui8Flush_Flag=FLUSH_ON; preDisplay_Num=255; ui8ButtonKeyValue&=~(KEY_LEFT_ENTER+KEY_RIGHT_EXIT); } else { preDisplay_Num=255; rcd_ply_sel = 255; } } void Music_Quit() { MAP_GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_5,0); TimerDisable(TIMER1_BASE, TIMER_A); ui8Flush_Flag=FLUSH_ON; }

2023-07-11 上传