一、Linux中文件详细介绍
根目录下子目录和文件:
系统启动必须 | |
/boot | 存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。 |
/etc |
配置文件。Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 |
/lib |
Linux 所必须的库文件。共享库。命令和用户编写的应用程序要使用这些库文件 |
/sys |
系统设备管理的重要目录,此目录通过一定的组织结构向用户提供详细的内核数据结构信息 |
指令集合 | |
/bin |
系统需要的可执行文件,一般都是一些命令,比如 ls 、 mv 等命令。此目录下的命令所有的客户都可以使用。 |
/sbin |
存放可执行文件,但是此目录下的文件或者说命令只有管理员才能使用,主要用户系统管理。 |
外部文件管理 | |
/dev |
设备文件。 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 |
/mnt |
临时挂载目录,一般是空目录,可以在此目录下创建空的子目录(如/mnt/sd 、 /mnt/usb) |
/media | linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 |
临时文件 | |
/tmp | temporary(临时) 的缩写,这个目录是用来存放一些临时文件的。 |
/run | 临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。 |
/lost+found | 一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 |
账户 | |
/root | 系统管理员(超级权限者)的用户主目录。 |
/home | 用户的主目录。在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 |
/usr |
(Unix Software Resource)Unix 操作系统软件资源目录 |
/usr/bin | 系统用户使用的应用程序与指令。 |
/usr/sbin | 超级用户使用的比较高级的管理程序和系统守护程序。 |
/usr/src | 内核源代码默认的放置目录。 |
运行过程中要用 | |
/var |
variable(变量) 的缩写,存放一些可以改变的数据。这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 |
/proc |
一般是空目录,文件都是临时存在,一般用来存储系统运行信息文件。(虚拟文件系统,没有实际的存储设备) |
扩展用 | |
/opt |
默认是空的。可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。 |
/srv | 存放服务启动后需要提取的数据(不用服务器就是空) |
二、配置交叉编译工具链和环境变量
1 设置交叉编译工具链
交叉编译工具链用来在Ubuntu主机上编译应用程序,而这些应用程序是在ARM等其他平台上运行。
设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。
设置这3个环境变量有多种方法,任意选择其中一种方法即可,建议使用“永久生效”的方法。录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。
库环境变量设置:
export LD_LIBRARY_PATH=/usr/local/X11/lib:$LD_LIBRARY_PATH/
1.1 永久生效
如需永久修改,请修改用户配置文件。
注意:如果不会使用vim命令,可以使用图形化的编辑工具,执行:gedit ~/.bashrc
vim ~/.bashrc
(1)
在行尾添加或修改,加上下面几行(第3行第4行为一行命令):
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量。
- 1
- 2
- 3
- 4
设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量。
book@100ask:~$ source ~/.bashrc
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v
- 1
- 2
1.2 临时生效
也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。
(1)
执行以下3个命令,第3个命令很长,需要包含第四行全部复制:
book@100ask:~$ export ARCH=arm
book@100ask:~$ export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
- 1
- 2
- 3
1.3 手动指定
先设置PATH环境变量,然后在make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链(执行make命令时指定的参数,只对当前命令有效;下次执行make时仍需要再次指定那些参数)。
(1) 示例
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
book@100ask:~$ export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin
book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- 1
- 2
- 3
- 4
- 5
2 测试交叉编译工具链
2.1 测试环境变量
book@100ask:~$ echo $ARCH
arm
book@100ask:~$ echo $CROSS_COMPILE
arm-buildroot-linux-gnueabihf-
- 1
- 2
- 3
- 4
2.2 测试交叉编译器
执行以下命令,结果见后图:
book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc -v
- 1
(1).
配置环境变量一:
使用export命令直接修改PATH的值,
如交叉编译工具链安装完后,
执行以下命令或者执行
export PATH=$PATH:/opt/hisi_linux/x86-arm/arm-himix100-linux/bin
说明:/opt/hisi_linux/x86-arm/arm-himix100-linux/bin为编译安装的目录
- 1
- 2
- 3
(2).配置环境变量二:
通过修改用户目录下的~/.bashrc文件进行配置:
在行尾添加或修改,加上下面一句
export PATH=$PATH:/opt/hisi_linux/x86-arm/arm-himix100-linux/bin
设置完毕后,要执行 source ~/.bashrc 命令使其生效,这条命令是加载这些设置的环境变量。
- 1
- 2
环境变量配置方法:
直接定义
export
Shell 配置文件
与 Bash Shell 有关的配置文件主要有
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
/etc/bashrc
/etc/bash.bashrc
/etc/profile.d/*.sh
Shell 执行顺序
/etc/profiles->/.profile(/.bash_profile、~/.bash_login)
修改配置文件
全部用户、全部进程共享:/etc/bash.bashrc
一个用户、全部进程共享:~/.bashrc
shell启动方式对变量的影响
子shell进程中执行:/bin/bash会创建shell子进程和./
当前进程中执行:source和.
三、Linux常用命令
1、关机和重启命令
1)关机命令
shutdown -h now #立刻关机
shutdown -h 5 #5分钟后关机
poweroff #立刻关机
init 0 #立即关机
重启命令
shutdown -r now #立刻重启
shutdown -r 5 #5分钟后重启
reboot #立刻重启
init 6 #立刻重启
2)重启命令
shutdown -r now #立刻重启
shutdown -r 5 #5分钟后重启
reboot #立刻重启
init 6 #立刻重启
2、data命令
功能描述:用来显示当前系统的时间
语法:data [选项] 格式
常用的一些时间格式:
[root@hadoop ~]# date "+%Y-%m-%d" #显示年-月-日
2021-09-22
[root@hadoop ~]# date "+%H:%M:%S" #显示 时:分:秒
23:30:04
[root@hadoop ~]# date "+%Y-%m-%d %H:%M:%S" #显示 年-月-日 时:分:秒 格式的时间
2021-09-22 23:30:24
[root@hadoop ~]# date "+%Y_%m_%d %H:%M:%S" #显示 年_月_日 时:分:秒 格式的时间
2021_09_22 23:30:33
[root@hadoop ~]# date -d today #显示今天的时间
2021年 09月 22日 星期三 23:30:49 CST
[root@hadoop ~]# date -d now #显示现在的时间
2021年 09月 22日 星期三 23:31:04 CST
[root@hadoop ~]# date -d tomorrow #显示明天的时间
2021年 09月 23日 星期四 23:31:15 CST
[root@hadoop ~]# date -d yesterday #显示昨天的时间
2021年 09月 21日 星期二 23:31:23 CST
[root@hadoop ~]# date -d "-1 month" +%Y%m01 #显示上个月的第一天
3、tar命令
功能描述:文件归档,进行压缩和解压文件
命令格式:tar [-选项] 文件名 [-选项] 文件名
选项:
-c 建立新的压缩文件
-C 切换到指定目录
-f 指定压缩文件(必须有的参数)
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
示例:
tar -zcvf AAA.tar.gz AAA #将AAA目录打包压缩成AAA.tar.gz的压缩包。
tar -zxvf AAA.tar.gz -C /tmp/ #将AAA.tar.gz文件解压到指定的/tmp目录
4、find命令常用选项及实例
-name 按照文件名查找文件。
# 在/dir目录及其子目录下面查找名字为filename的文件
find /dir -name filename
# 在当前目录及其子目录(用“.”表示)中查找任何扩展名为“c”的文件
find . -name "*.c"
# 在 etc 目录下,查找大写字母开头的 txt 文件
find /etc -name "[A-Z]*.txt" -print
# 在当前目录下查找不是 out 开头的 txt 文件
find . -name "out*" -prune -o -name "*.txt" -print
# 在当前目录除 git 子目录外查找 txt 文件
find . -path "./git" -prune -o -name "*.txt" -print
# 找出某个文件的所有硬链接,ls 命令 -i 选项可以查看文件的 inode 号
ls -i 1.txt # 138956 1.txt
find . -num 138956
# 搜索文件时使用 -iname 参数可以忽略文件名称大小写
4、