学习嵌入式和Linux的常用命令和解释

linux的几个特点:
1)一切皆文件
2)没有消息就是好消息
3)可以使用tab键补全文件名或命令名
4)分时操作系统
5)多用户/多任务
命令格式:
命令名字 [选项][参数]
注意:1)放在[]中的内容可选
2)不要把[]号输入进来
3)命令的选项可以组合使用
命令介绍:
1、cd 切换目录(路径)
cd / 切换到根目录
cd /home 切换到普通用户的家目录下
cd 同上到当前所在用户的家目录下
cd ~ 同上
2、相对路径和绝对路径:
绝对路径:一定是从根目录下开始的路径
cd /home/user1
相对目录:
以当前所在目录为出发点,进行目录的切换
举例:假如当前在home目录下,如果要进入home目录下的user1目录,那么可以:
cd ./user1 或者 cd user1
是选择相对路径还是绝对路径来切换目录,取决于哪个方便。
. 代表当前目录
.. 代表当前目录的上一级目录
3、ls 列出当前目录或某个目录下的文件名
ls -l 以长格式(详细)列出文件
ll 和上面一样,只是简写
ls -a 显式所有的文件(包括隐藏文件:以.开头的文件)
ls -al 组合上面的功能
ls -d 列出当前目录下的目录文件

4、pwd 显式当前所在目录
5、touch 创建一个空文件,或者更新已有的文件的时间
6、mkdir 创建目录
mkdir -p 创建嵌套(多级)的目录
7、cp 拷贝文件或目录
cp -p file1 dir1/file2
将当前目录下的file1拷贝到当前目录中的dir1目录下,并且保存的名字是file2(file1和file2名字可以相同,也可不同)
cp -r dir1 dir2/dir3
将当前目录下的dir1目录拷贝到当前目录下的dir2中的dir3目录下
cp -rp dir1 dir2/dir3/dir4 拷贝的同时可以改名
8、mv 移动或改名
mv file1 dir1 移动当前目录下的file1到当前目录下的dir1目录中

mv file1 dir1/file2 将file1移动到dir1下,并且改名为file2
mv dir1 dir2/dir3
移动dir1目录到dir2下的dir3目录下,或者如果在dir2下没有dir3目录,那么就是把dir1移到dir2下,且改名为dir3
9、rmdir 只能删除空目录,很少用
rm 可以删除任何类型的文件
rm file1 删除file1文件,删除时会询问是否删除,y表示删除,n表示不删除
rm -f file1 强制删除file1文件,不询问
rm -rf dir1 强制删除目录,不询问
10、以详细信息列出的信息
权限字段 链接数 文件的所属者 文件的所属组 文件的大小 文件创建的日期
文件创建的时间或最新更改的时间 文件名称
-rwxr--rw- 3 root root 865 Jul 3 11:11 file1
其中权限字段中:
第一个字符表示文件的属性
- 表示普通文件
d 表示目录
l 链接文件
s 套接字文件
c 字符设备文件
b 块设备文件
p 管道文件
后9个字符,3个为一组:r可读 w可写 x可执行
第一组

:文件的拥有者
第二组:文件的所属组
第三组:其他所有人
每个权限都有对应的一个数字:
r 4
w 2
x 1
权限可以用上面数字的和来表示,如果某一位上没有该权限,那么那一位以-表示

用字母表示的权限 用数字表示
rw-r-x--- 650
11、
修改权限可以:
第一中种方法:用数字
chmod 444 file1 修改文件的权限为对每类用户都是只可以读
第二种方法:用字母
+表示增加该权限
-表示去掉该权限
=设置成该权限
chmod u+x,g+w file1
chmod u+rw file1
chmod u-r,g+x file1
chmod u=r,go+rw file1
chmod a=rw file1 修改file1文件对所有人的权限为可读可写
chmod -R u=rw,g=r dir1 递归修改dir1目录下所有的文件和目录的权限
12、chown 改变文件的所属者
chown 新的文件所属者的名字 文件名
chown user1 file3 修改文件file3的所有者为user1
chown user2:user3 file4
修改文件file4的所属者是user2用户,所属组是user3组

chown -R user1:user2 a
递归的修改a目录下的所有的文件的拥有者为user1,所属组是user2

13、chgrp 改变文件的所属组
chgrp group1 file3 修改文件file3的所数组为group1
chgrp -R group1 dir2 递归修改dir2下所有文件和目录的所属组为group1
14、r w x 对文件和目录的不同意义:

文件 r 可读
w 可以修改
x 对于可执行文件有可执行的权限
目录 r 可以看到该目录下的文件名字
w 可以在该目录下新建、移动、修改、删除文件或目录
x 是否能够进入该目录的权限
15、三个重要的文件
/etc/passwd 用来存放用户信息
uid: 用户标识
值是0: root用户
1~499:
系统用户(一般是不会登录或不允许登录的,而且通常没有家目录),是启动操作系统必不可少的虚拟用户。
>500:
>普通用户(凡是新建的用户都是普通用户,普通用户必须设置过密码后才能登录)
/etc/shadow 用来存放用户密码(加密过的)信息的
/etc/group 用来存放用户组的信息
16、su 切换用户
su - 用户名 完全切换用户(包括用户所在的目录等环境)
su 用户名 只切换用户,不改变之前的用户的目录等环境
17、
开机默认级别5是在/etc/inittab文件中记录的,如果要修改,找到id:5:initdefault:这一行,改成你想要的级别(0-6)
0:关机模式
1:单用户模式
2:多用户,无网络模式
3:多用户,有网络模式
4:保留未用的
5:图形化模式
6:重启模式
关机:
shutdown -h now 现在立刻关机
shurdown -h +20 20分钟后关机
shutdown -h 00:30 在凌晨12点30分时关机
halt
poweroff
init 0
重启:
shutdown -r now 现在立刻重启
reboot 和上面的一样,没什么区别
init 6
18、vi/vim(增强版的vi): 编辑器

进入vi:

(刚进入时,是命令模式)
vi file1
字母i
命令模式 ----> 插入模式(编辑模
式)
<----
按下esc键
按下:键
命令模式 ----> 末行模式(底行模式)
<----
按下esc键,
或者删除模行的:
插入模式和模行模式之间不能直接转换,必须借助命令模式
保存和退出:
模行模式下:
:w 只保存不退出
:wq 保存并且退出
:q 不保存退出
:w! 强制保存
:q! 强制不保存退出
:wq! 强制保存并且退出
:x 和wq一样的作用

命令模式下:
shift + zz 和wq作用一样

另存为:
:w 路径/文件名
读取某个命令的结果到光标所在行:
:r !命令
:set nu 显式行号
:set nunu 不显式行号
定位:
快速移动光标到首行开头
1)种方法
:1
2)在命令模式下
按下1G
快速移动光标到末行开头
在命令模式下
按下G
光标快速定位到某一行开头
:行号
字母 h j k l 分别代表向左、向下、向上、向上四个方向键
复制:yy
在命令模式下:
输入yy //复制光标所在行
移动光标到你想粘贴到的行
按下p //粘贴到光标所在行的下面一行
4p //粘贴到光标所在行的下面,共粘贴4行
按下P //粘贴到光标所在行的上面一行
3P //粘贴到光标所在行的上面一行,共粘贴3行

复制部分内容,进行粘贴:
进入命令模式,按下ctrl + v键,移动光标,选中你想拷贝的部分,按下字母y后,移动光标到某个位置,按下p。
删除: dd
在命令模式下:
删除一行:光标移动到想要删除的某一行的某个位置,按下dd

删除光标所在行开始下面n行 (n代表数字):
方法同上,按下ndd
查找:
/字符串 将光标定位到要查找的内容
消除高亮:
:nohl
替换:
:%s/旧的内容/替换成的内容/g
:%s/旧的内容/替换成的内容/
:s/旧的内容/替换成的内容/ 光标所在行只替换第一个匹配的
:s/旧的内容/替换成的内容/c 光标所在行之询问第一个是否替换
:s/旧的内容/替换成的内容/g 光标所在行全部替换
:s/旧的内容/替换成的内容/gc 光标所在行逐个询问是否替换

:5,7s/old/new/g 将第5到第7行之间凡是匹配old的部分都替换成new
在指定行(第5到第7行)开头加//注释:
:5,7s/^/\///g
删除指定行开头的//注释:
:5,7s/^\/\///g
撤销:
u 撤销之前的一步操作
重做之前的一步操作:
ctrl + r

vim 文件名 +行号
打开文件时,就将光标定位到行号所指定的行的开头
以横向方式同时打开多个文件:
vim -o file1 file2 file3

以纵向方式同时打开多个文件:
vim -O file1 file2 file3
在上面几个文件中切换光标:
ctrl + ww
保存并且退出上面多个vim环境:
:wqall
19 目录结构:

/ 根目录
/bin /usr/bin /usr/local/bin 存放二进制可执行文件的,所有的用户都可以执行下面的命令
/sbin /usr/sbin /usr/local/sbin 也是存放二进
制可执行文件的,只有root用户才能使用下面的命令
/root root用户的家目录
/home 存放普通用户的家目录
/boot 和启动相关的文件,启动引导程序grub就在该目录下
/srv 服务相关的文件
/usr 系统安装软件的默认安装目录
/opt 安装第三方软件的默认安装目录
/tmp 存放缓存文件
/lib 存放库文件
/mnt 临时挂载的目录
/sys 存放系统文件
/var 存放经常变动的文件 (像登录日志文件目录log、邮件目录mail等)
/dev 存放设备文件
/lost+found 系统突然出问题时存放的碎片文件
/etc 系统配置相关的文件存放的目录
/media 挂载的设备的默认挂载位置
20、挂载:
命令格式: mount 设备 挂载点
mount -o loop xx.iso /mnt 挂载镜像文件

fdisk -l //查看系统分区
mount [-t vfat] /dev/sdb2 /mnt 挂载u盘
(其中sdb2是用fdisk -l看到的你的u盘的名字)
mount /dev/cdrom /mnt/cdrom
挂载光盘到/mnt/cdrom目录下(如果/mnt目录下没有cdrom目录,需要先新建该目录)
showmount -e ip地址 查看该ip地址所在的主机是否有共享目录
注意:如果要使用showmount命令,必须是已经安装了nfs服务

mount ip地址:该ip地址所在的主机的共享目录 /mnt
卸载:
umount /mnt
eject /mnt
21、开启网络服务
service network start 开启服务
service network restart 重启服务
service network status 查看网络服务的状态(是否开启)

ifconfig 查看ip地址
ifconfig ethn ip地址 设置ip地址(n代表数字,表示第几块网卡)
22、添加用户
useradd 用户名
或者 adduser 用户名
设置或更改密码
passwd
当以root用户身份执行该命令时,修改的是root用户的密码;如果以普通用户身份执行该命令,那么修改的是该普通用户自己的密码。

passwd 用户名
修改该用户名所在的用户的密码(当然普通用户只能修改自己的密码,只有root用户可以修改任何用户的密码)
注意:新建的用户,如果未设置密码,不允许登录系统(会看到在/etc/shadow文件中该用户的密码位的位置第一个字符是!号,凡是这样的,就表示该用户不能登录)
更改用户名
usermod -l 新用户名 旧用户名
禁用用户
usermod -L 用户名
将禁用的用户重新启用
usermod -U 用户名
禁用用户的密码
passwd -l 用户名
启用用户的密码
passwd -u 用户名
查看用户的密码是否设置过
passwd -S 用户名
注意:当使用passwd禁用了某用户,那么/etc/shadow文件内该用户的密码位会出现两个!!。如果用usermod启用该用户,那么要使用usermod -U两次才能重新启用该用户。
删除用户

userdel 用户名
userdel -r 用户名 删除用户的同时连同该用户的家目录等和该用户相关的信息都一同删除
23、创建用户组
groupadd 组名称
创建用户同时指定其所在组,用户id,
用户家目录
useradd -g GID(组ID号) -u UID -d 家目录 用户名
查看用户属于哪个组
groups 用户名
删除用户组
groupdel 用户组
将用户从原组脱离出来,加入新组
usermod -g 新组名 用户名
将用户加入新组,不从原组脱离
usermod -G 新组名 用户名

查看用户的id
id [用户名]

查看用户的详细信息
finger 用户名
24、设置特殊权限位
对应的数字
SUID: set uid 4 (只能对二进制可执行文件设置该位)
SGID: set gid 2
Sbit: stick bit 粘滞位 1 (只能对目录设置该位)
SUID: 普通用户使用该命令时,是以该文件的拥有者或root用户的身份执行的
chmod 4755 文件名
Sbit:
设置了该位的目录,其中的文件只能是文件的拥有者才能对该文件执行删除、修改等命令

25、查看命令
echo hello 把hello显式到终端或屏幕
cat 文件名 查看文件内容,适合于查看内容较少的文件
more 文件名 分页显式文件内容(但是只能向下看)
less 文件名
分页显式文件内容(可以向上或向下看,可以使用方向键和pgup、pgdn键)

重定向:
>> 追加
> 覆盖

echo hello >> file1
把hello这个字符串重定向添加到file1文件(并不擦除file1文件原来的内容)
echo hello > file1
把hello这个字符串重定向覆盖file1文件(如果file文件原先有内容,就会被全部覆盖掉)

grep 字符串 -n 文件名
从文件中提取符合字符串内容的行,显式在屏幕上,并且显式所在行
管道符号 |
命令1 | 命令2 把命令1的结果作为命令2的输入
查看文件头几行:
head -n 文件 (n是数字)
查看文件尾几行:
tail -n 文件 (n是数字)

查看file1文件的第4和第5行
head -5 file1 | tail -2 file1

查看文件的类型
file 文件名
26、查找
which 命令 查看可执行文件(命令)的目录
whereis 命令 查看命令及帮助手册页的目录
find 路径 选项 参数
find /etc -name file1
find /home -amin -10 在10分钟内访问过的文件
find /home -amin +10 在10分钟之前访问过的文件
find /home -amin 10 在距离现在时间为10分钟的那个时间点上访问过的文件
find /root -atime 1 按天计,刚好1天
+1 超过1天
-1 小于1天
-ctime
-mtime
find /root -size -1k 在某个目录下查找小于1k的文件
find /root -size +10m -a -size -20m
在某个目录下查找大于10m,并且小于20m的文件;如果-a改成-o,意思是找大于10m或者小于20m的文件
find / -perm 7755 在根目录下查找设置了特殊权限

位的目录
stat 文件名 查看文件的状态
-atime 创建和访问的时间(例如用cat、more等查看过之后,该时间会变化)
-ctime 属性(状态)修改之后,该时间会改变
-mtime 文件内容修改后,该时间会改变

27、压缩和解压缩
1)tar 打包和解

把一个目录打包成一个文件,或把一个打包文件解包成一个目录或文件
打包:
tar -cvf 指定打包后的文件名 源文件名
举例:tar -cvf etc.tar /etc
解包:
tar -xvf 打包后的文件名
举例:tar -xvf etc.tar
压缩成.gz为后缀的文件:
tar -czvf 压缩后的文件名 源文件名
举例:tar -czvf etc.tar.gz etc.tar
也可以直接使用tar,边打包边压缩一个目录为一个压缩文件
举例:tar -czvf etc.tar.gz /etc
解压缩:
tar -xzvf etc.tar.gz
压缩成.bz2为后缀的文件:
举例:tar -cjvf etc.tar.bz2 /etc
解压缩:
tar -xjvf etc.tar.bz2

2)gzip (gnu zip)只能用来压缩文件,不能压缩目录

压缩:
gzip etc.tar 压缩etc.tar文件为etc.tar.gz (.gz后缀是该命令自动加的)
这个命令的一个特点是:会在成功压缩后,删除源文件
解压缩:
gzip -d etc.tar.gz
或者 gunzip etc.tar.gz
上面两个都是直接解压缩成etc.tar文件,所以还要再用tar解包

3)bzip2 (是gzip的升级版本)
,也是只能压缩文件,不能压缩目录。它的压缩率比较高,适合于压缩比较大型的项目
压缩:
bzip2 -k etc.tar (加了-k参数,就可以保留源文件)

解压缩:
bunzip2 -k etc.tar.bz2 (.bz2后缀也是该压缩命令自动加的)
28、diff 文件1 文件2 用于比较两个文件的差异
29、
lsb_release -a 查看系统版本信息(linux操作系统均可使用)
uname -a 查看系统版本信息
uname -r 查看内核版本信息
gcc -v 查看gcc编译器的版本信息

30、df 查看已经挂载的分区信息
df -h 以人类易读的方式查看已经挂在的分区信息
df -T 多了个系统的类型信息
du -h 以人类易读的方式查看文件的大小
du -s 对于目录来说,只查看目录本身的
du -m 以兆为单位查看
du -k 以字节为单位查看
31、软件安装和卸载
1) .rpm 为后缀的源码包

安装:rpm -ivh xx.rpm
卸载:rpm -e xx
查看是否安装了某软件:
rpm -qa | grep star //在所有的软件中查询是否安装了文件名中含有star字符串的软件
2) .bz2或者.gz为后缀的源码包
第一步:解压。
第二步:配置编译环境。上一步解压后,会出现一个目录,进入该目录,看有没有configure文件,如果有,执行:./config 然后会生成一个make文件
第三步:编译。执行make
第四步:安装。执行make install
注意:如果第二步中发现没有configure文件,那么看看有没有README文件或INSTALL文件,如果有这两者中任一

个,打开这个文件,按照里面的说明进行安装和卸载即可。
3) .run或.sh为后缀的文件(这两种类型的文件执行方法相同)

第一种方法:该文件必须具有x权限,之后,./xx.run
第二种方法:bash ./xx.run (xx.run不需要具有x权限)
4).deb为后缀的文件(在debian系列的操作系统
,如ubuntu,多见这种类型的文件)
安装:dpkg -i xx.deb
卸载:dpkg -r xx
在线安装:apt-get install vim
32、建立软链接和硬链接文件
ln -s 源文件名 软链接的文件名
ln 源文件名 硬链接的文件名
软链接文件就相当于是windows下的快捷方式,当源文件删除后,该软链接文件就无法再使用了。
硬链接相当于一本书有两页完全相同的目录,当源文件被删除掉的情况下,该硬链接文件一样可以使用。
33、redhat下可以识别的文件系统:
ext2 ext3
fat32 msdos
其他linux系统还可以识别的:
ext4, mk2fs, sys2fs
34、格式化u盘:
mkfs.ext2 /dev/sdb2
mkfs.vfat /dev/sdb2


相关文档
最新文档