Linux目录和基础命令

1 Linux目录结构

Linux目录结构为单根倒置树结构

/bin:

bin是Binary的缩写, 这个目录存放二进制程序,经常使用的命令。

/boot:

这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :

dev是Device(设备)的缩写, 该目录下存放的是设备文件及特殊文件,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:

存放所有的系统管理所需要的配置文件。

/home:

普通用户的家目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:

存放库文件,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:

这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:

便携时移动设备挂载点,例如U盘等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:

临时文件挂载点,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:

安装第三方软件所存放的目录。比如你安装一个数据库则就可以放到这个目录下。默认是空的。

/proc:

这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

用于输出内核与进程信息相关的虚拟文件系统。

这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件

/root:

该目录为系统管理员的家目录,也称作超级权限者的用户家目录。

/sbin:

s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:

这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:

该目录存服务运行时需要的数据。

/sys:

用于输出当前系统上硬件设备相关信息虚拟文件系统。也是在存放在内存中。

/run

存放正在运行中的程序的相关文件

/tmp:

这个目录是用来存放一些临时文件的。

/usr:

这是一个非常重要的目录,用户的应用程序和文件都放在这个目录下。

/usr/bin:

系统用户使用的应用程序。

/usr/sbin:

超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

/var

这个目录中存放着在不断变化着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

selinux:linux安全策略

Linux目录分层标准

1.1 Linux文件名命令要求

路径以/分隔

文件名最长255个字节

包括路径在内,文件名称最长4095个字节

除了斜杠和NULL,所有字符都有效,但是不推荐用特殊字符做文件名和目录名。

1.2 文件的类型

文件的类型:

- 普通文件,

d 目录文件

b block device 即块设备文件,如硬盘;支持以block为单位进行随机访问

c character device 即字符设备文件,如键盘支持以character为单位进行线性访问

l symbolic link 即符号链接文件,又称软链接文件

p pipe 即命名管道文件

s socket 即套接字文件

2. 基础命令

2.1 ls

ls 常用选项

  -a 显示隐藏文件

  -l 显示文件的属性

  -d 显示目录

  -R 目录递归

  -S 按文件大小从大到小排序

  -t 按mtime排序

  -u  配合-t 选项,显示并按atime从新到旧排序

  -U 按目录存放顺序显示

  -X 按文件后缀排序。

  mtime :文件内容被改时间

  ctime :文件属性被修改时间

  atime: 文件访问时间

  ls -l --time=ctime/atime filename

  修改一个文件后,mtime会变,这时查看ctime也会变,因为是修改,文件大小也会变,ctime是看属性的,文件大小也属于属性

2.2 cd和pwd

pwd 显示当前在目录的绝对路径
cd 切换目录

2.3 命令提示符

命令提示符: prompt

# 管理员
$ 普通用户
显示提示符格式:
[root@Hans ~]# echo $PS1
[\u@\h \W]\$
修改提示符格式
PS1="\[\e[33;40m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数

2.4 echo命令

功能:显示字符

语法: echo [-neE][字符串]

说明: echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,

并在最后加上换行号

选项:

-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能

显示变量

echo "$VAR_NAME” 变量会替换,弱引用
echo '$VAR_NAME’ 变量不会替换,强引用

启用命令选项-e, 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e '\033[43;31;5m10itedu\033[0m'
\xHH插入HH(十六进制)所代表的ASCII数字( man 7 ascii)

2.5 tab键

**命令补全 **

内部命令:

外部命令: bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻

以给定命令名命名的文件,第一次找到的命令即为要执行的命令

用户给定的字符串只有一条惟一对应的命令,直接补全

否则,再次Tab会给出列表

**路径补全 **

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字

符串开头的文件名

如果惟一:则直接补全

否则:再次Tab给出列表

2.6 history 历史命令

保存你输入的命令历史。可以用它来重复执行命令

登录shell时,会读取命令历史文件中记录下的命令~/.bash_history

登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中

重复前一个命令,有4种方法:

  1. 重复前一个命令使用上方向键,并回车执行
  2. 按 !! 并回车执行
  3. 输入 !-1 并回车执行
  4. 按 Ctrl+p 并回车执行

查看历史命令

history

执行历史命令

!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含string的命令
!string:p 仅打印命令历史,而不执行
!$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
!*:p 打印输出 !*(上一条命令的所有参数)的内容
!:s^string1^string2 将上一条命令中的第一个string1替换为string2
示例:
[root@localhost ~ 16:07:37]#ls -l -r -t
total 36
-rwxr-xr-x. 1 root root 18681 Aug 26 2016 Tetris.sh
-rw-------. 1 root root 1615 Mar 15 10:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 565 Mar 16 15:00 test.txt20210316
-rw-r--r--. 1 root root 2179 Mar 17 10:54 test.txt
-rwxr-xr-x. 1 root root 137 Mar 17 11:54 test.sh
[root@localhost ~ 16:07:46]#!:s^r^a #把上一命令的第r换成a !:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
示例:
[root@localhost ~ 16:07:37]#ls -l -r -t
total 36
-rwxr-xr-x. 1 root root 18681 Aug 26 2016 Tetris.sh
-rw-------. 1 root root 1615 Mar 15 10:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 565 Mar 16 15:00 test.txt20210316
-rw-r--r--. 1 root root 2179 Mar 17 10:54 test.txt
-rwxr-xr-x. 1 root root 137 Mar 17 11:54 test.sh
[root@localhost ~ 16:07:46]#!:gs^l^a #把上一个命令的全部l换成a

**调用历史参数 **

command !^ 利用上一个命令的第一个参数做cmd的参数
command !$ 利用上一个命令的最后一个参数做cmd的参数
command !* 利用上一个命令的全部参数做cmd的参数
command !:n 利用上一个命令的第n个参数做cmd的参数
command !n:^ 调用第n条命令的第一个参数
command !n:$ 调用第n条命令的最后一个参数
command !n:m 调用第n条命令的第m个参数
command !n:* 调用第n条命令的所有参数
command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数

**history命令格式 **

-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后

**history相关环境变量 **

HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T " 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1命令, str2开头的历史
控制命令历史的记录方式:
环境变量: HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
存放在 /etc/profile 或 ~/.bash_profile

2.7 bash的快捷键

Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首(剪切)
Ctrl + k 从光标处删除至命令行尾(剪切)
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + N 提示输入指定字符后,重复显示该字符N次
注意: Alt组合快捷键经常和其它软件冲突

2.8 创建或删除文件和目录

创建文件touch

touch 如果文件没有则创建,如果文件存在则修改mtime时间

touch a.txt

创建目录mkdir

 常用选项:
-p 文件夹存在不报错,不存在则创建,可以递归创建文件夹 -v 显示详细信息 -m mode:创建目录时指定权限

删除文件夹rmdir

rmdir 只能删除空文件夹(目录)

常用选项
-p 递归删除空目录 -v 显示详细信息

删除文件rm

格式:

rm [option]… FILE…

 常用选项
-i 交互式
-f 强制
-r 递归

2.9 runlevel运行级别

runlevel运行级别:为系统运行或维护等目的而设定; 0-6: 7个级别

  • 0:关机
  • 1:单用户模式(root自动登录), single, 维护模式 ###不具有网络功能,典型的应用是破解root密码,很多其他的维护也用单用户模式
  • 2: 多用户模式,启动网络功能,但不会启动NFS;维护模式
  • 3:多用户模式,正常模式;文本界面
  • 4:预留级别;可同3级别
  • 5:多用户模式,正常模式;图形界面
  • 6:重启

默认级别: 3, 5

切换级别: init #

查看级别: runlevel ; who -r

2.10 关机重启

关机:
shutdown
-P --poweroff Power-off the machine
-r --reboot Reboot the machine
-h Equivalent to --poweroff, overridden by --halt
-c Cancel a pending shutdown
立刻关机: shutdown -h now
立刻重启: shutdown -r now
重启:
reboot

Linux目录结构和基础命令的更多相关文章

  1. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  2. Linux-1.3目录结构,基础命令

    1.Linux目录结构 2.Linux基础命令(常用) ctrl+alt+T(打开终端) cd 切换文件夹(pwd查看当前目录) cd /home 绝对路径 以根目录开头 cd admin 相对路径 ...

  3. Linux目录结构及常用命令(转载)

    一.Linux目录结构 你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目录下吗?例如,less命令位于/usr/bin目录下.为什么没在/bin中,或 ...

  4. Linux目录结构和常用命令

    源地址:http://www.cnblogs.com/JCSU/articles/2770249.html 一.Linux目录结构 你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/ ...

  5. Linux 目录结构和常用命令

    Linux目录结构 目录 说明 bin 存放二进制可执行文件(ls,cat,mkdir等) boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc 存放系统配置文件 home 存 ...

  6. 转:Linux 目录结构和常用命令

    转自:http://www.cnblogs.com/JCSU/articles/2770249.html仅为学习参考之用 一.Linux目录结构 你想知道为什么某些程序位于/bin下,或者/sbin, ...

  7. Linux目录结构和基础知识

    目录结构: /bin:存放系统常用的命令程序 /boot:系统启动或引导所需要的一些文件 /dev:可用的设备文件 /etc:系统配置相关的东西 /home:所有用户的主目录 /lib,lib64:存 ...

  8. linux 目录结构及其相关命令

    目录也是一个文件,它的唯一功能是用来保存文件及其相关信息.所有的文件,包括普通文件.设备文件和目录文件,都会被保存到目录中. 主目录 登录后,你所在的位置就是你的主目录(或登录目录),如果是root用 ...

  9. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

随机推荐

  1. Ubuntu1804命令行安装vmtool

    Ubuntu1804命令行安装vmtool 安装虚拟机后快速安装vmtools的方法,仅需命令行输入即可 sudo apt-get upgrade sudo apt-get install open- ...

  2. Python | Python常用函数、方法示例总结(API)

    目录 前言 1. 运算相关 2. Sring与数字 3. 列表相关 4. 集合相关 5. 序列化类型 6. 字典相关 7. 输入输出 8. 文件相关 9. json模块 10. unittest测试模 ...

  3. k8s网络模型与集群通信

    在k8s中,我们的应用会以pod的形式被调度到各个node节点上,在设计集群如何处理容器之间的网络时是一个不小的挑战,今天我们会从pod(应用)通信来展开关于k8s网络的讨论. 小作文包含如下内容: ...

  4. 躺平吧,平铺的窗口「GitHub 热点速览 v.21.47」

    作者:HelloGitHub-小鱼干 用 macOS 系统经常会遇到的一个问题便是多开窗口如何快速找寻的问题,本周特推项目 yabai 便是来解决这个问题的.直接把所有窗口平铺,是不是很"正 ...

  5. [cf674E]Bear and Destroying Subtrees

    令$f_{i,j}$表示以$i$为根的子树中,深度小于等于$j$的概率,那么$ans_{i}=\sum_{j=1}^{dep}(f_{i,j}-f_{i,j-1})j$ 大约来估计一下$f_{i,j} ...

  6. vue实现聊天+图片表情功能

    项目需求是这样的:要求实现类似于微信聊天一样,表情+文字效果 "文字效果" 表情包三种方案 表情包的实现其实可以分为以下三种情况: 表情包:点击表情--直接发送大表情(这种方案其实 ...

  7. docker版本演变,安装,基本命令

    1.docker 版本信息 Docker CE在17.03版本之前叫Docker Engine,版本号从0.1.0(2013-03-23)~1.13.1(2017-02-08),详见https://d ...

  8. uniapp如何在当前页面获取上个页面的变量、方法

    getCurrentPages() getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面. 注意: getCurrent ...

  9. THUSC2021 游记

    Day -6 - 2459343 请了一天假在家卷 whk,u1s1 星期六为啥要去上学呢(bushi 中午 12:00 左右得知自己有去参加 THUSC 的资格 然后就是一堆待填写的资料和报名表 发 ...

  10. Codeforces 1408I - Bitwise Magic(找性质+集合幂级数)

    Codeforces 题面传送门 & 洛谷题面传送门 Yet another immortal D1+D2 I %%%%%% 首先直接统计肯定是非常不容易的,不过注意到这个 \(k\) 非常小 ...