在学习此视频以前,虽然作过简单的嵌入式实验,也用过基本的linux命令,可是历来没有这么系统性的学习过,这一次将这个视频学习事后,确实对linux的一些基础知识有了更深的了解。在视频课程中给出了一个Linux学习路径,经过这个导图能够明确学习方向。html
Linux是一套无偿使用和自由传播的类Unix操做系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操做系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操做系统。linux
--引用自《Linux百度百科》程序员
linux系统与windows系统在使用方面最明显的区别在于主要工做在终端模式下,也就是经过一个称之为shell的软件进行操做,它隐藏了系统底层的诸多细节,留给用户的只需经过基本命令就可实现各类操做,正以下图所示那样。shell
固然了,在具备图形界面的linux系统上,打开这个终端除了像windows那样用鼠标点开它,也可使用快捷键Ctrl + Alt + t
打开,或者使用Ctrl + Alt + [F1]~[F6]
从图形界面切换至终端界面,再利用Ctrl + Alt + [F7]
切换回图形界面。灵活使用各类快捷键会让你更加感觉到linux的不俗,各类快捷键加上完备的命令操做,使得linux系统具备极高的工做效率。下面主要罗列一些经常使用的快捷键,留待之后方便查找。数据库
按键 | 做用 |
---|---|
Tab |
补全命令 |
Ctrl+c |
强行终止的当前程序 |
Ctrl+d |
键盘输入结束或退出终端 |
Ctrl+s |
暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z |
将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a |
将光标移至输入行头,至关于Home 键 |
Ctrl+e |
将光标移至输入行末,至关于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
Alt+Backspace |
向前删除一个单词 |
Shift+PgUp |
将终端显示向上滚动 |
Shift+PgDn |
将终端显示向下滚动 |
linux系统的文件系统与windows系统不一样,在Linux当中有一个很是重要的概念:vim
Linux一切皆是文件windows
也就是说,在Linux当中一切设备均可当作文件来进行操做。Linux采用FHS(Filesystem Hierarchy Standard)树形结构组织文件,FHS定义了系统中每一个区域的用途、所须要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。在这个树形结构中,会发现Linux系统将各类文件分类的层次分明,理解每一个目录下存放的文件性质有助于后续的学习。以下:bash
命令的基本格式:
command [options] [arguments]
linux的命令有许多,主要分为shell提供的内建命令(如:history
、cd
)和额外安装的外部命令(如:ls
、vim
),区别在于内建命令随系统加载并驻留在内核当中,而外部命令只在须要时将其调入内存,常放于/bin
、/usr/bin
、/sbin
、/usr/sbin
中。具体可利用命令type
查看:网络
在如此多的命令当中,帮助命令无疑是最重要的,它能够帮咱们快速学习某个命令的用法。经常使用帮助命令有:多线程
命令 | 做用 |
---|---|
help |
只能显示 shell 内建命令的简要帮助信息 |
command --help |
通常外部命令都有--help 参数,专门提供帮助 |
man |
比用 help 更多更详细,没有内建与外部命令的区分 |
info |
更完整的显示出帮助信息 |
cheat |
GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令全部的选项和简短但尚可理解的功能。须要额外安装。 |
如下列出一些经常使用命令,具体用法参考帮助文档,下载linux命令大全也很方便:
命令 | 做用 |
---|---|
help |
只能显示 shell 内建命令的简要帮助信息 |
command --help |
通常外部命令都有--help 参数,专门提供帮助 |
man |
比用 help 更多更详细,没有内建与外部命令的区分 |
info |
更完整的显示出帮助信息 |
cheat |
GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令全部的选项和简短但尚可理解的功能。须要额外安装。 |
ls |
列出目录内容 |
cd |
切换目录 |
rm |
删除文件或目录 |
mkdir |
创建目录 |
mv |
移动或改名现有的文件或目录 |
cp |
复制文件或目录 |
touch |
改变文件或目录时间、建立空文件 |
cat |
正序显示文件内容 |
pwd |
获取当前路径 |
grep |
全文检索 |
find |
查找文件在系统中的位置 |
locate |
查找文件,速度很快 |
whereis |
直接在数据库中查询文件,但只能搜索二进制文件(-b)、man帮助文件(-m)、源代码文件(-s) |
which |
在环境变量中搜索是否安装某个软件 |
rename |
批量重命名 |
declare |
声明变量 |
export |
设置或显示环境变量 |
file |
查看文件类型 |
adduser |
新增用户帐号 |
usermod |
修改用户帐号 |
deluser |
删除用户帐号 |
chmod |
更改文件权限 |
df |
显示磁盘相关信息 |
du |
显示目录或文件大小 |
注:
其中locate
命令因为它直接经过/var/lib/mlocate/mlocate.db
数据库查找,而非检索匹配,因此速度很快。windows下的Everything软件也有相似功能,经过查找NTFS文件系统中的USN日志达到神速查找的目的,于是该软件不足之处只能查找NTFS格式的设备。
利用sudo adduser zhb
能够添加一个名为zhb的用户:
切换至zhb用户,使用 who am i
命令能够查看当前用户信息,使用groups
可查看当前用户所属用户组状况:
在使用命令行的过程中,咱们常常要使用sudo
命令来临时获取root权限,可是当咱们新建一个用户时,会发现它所属的用户组是一个默认与其同名的用户组,若是这时使用sudo
命令,会出现一下状况:(就拿更新软件源为例)
很明显,咱们能够看到它没有sudo权限,此时能够先切换至另外一个有sudo
权限的用户,执行sudo usermod -a -G sudo zhb
为zhb用户追加一个sudo用户组,这样再从新登陆zhb帐号,使用groups
命令:
此时就可使用sudo
命令了。使用cat /etc/group | sort
能够看到全部的用户组信息:
若是要删除用户,可以使用sudo deluser zhb --remove-home
命令。
在使用ls -l
查看目录下文件时能够看到各个文件的权限状况,如:
经过这些信息能够查看文件归属以及权限(d-目录,r-可读,w-可写,x-可执行),可经过sudo chmod
命令更改文件权限。
如以sudo
创建一个文件abc:
可看到abc文件只对root用户可写,若是要使zhb用户也能对abc文件进行读写操做,一种方法是将其改成对root用户组可写,可以使用命令sudo chmod g+w abc
:
而后先按以前方法将zhb用户添加root用户组,这样就能够对abc文件进行读写操做了:
第二种方法为abc文件的其余用户添加写权限,以下:
经过export
可查看环境变量,在以前使用过程当中,常用的是PATH
这个环境变量,可经过echo $PATH
查看这个变量:
这个变量之因此比较重要,是由于它保存了咱们在编译程序过程中所用到的编译工具的路径,在执行编译时,系统会经过这个环境变量查找编译工具,因此说若是咱们要搭建编译环境,那么这个变量是不可或缺的。
可经过如下命令为PATH
添加路径:
或者直接修改~/.bashrc
或~/.bash_profile
或系统级别的/etc/profile
,就好像windows下的环境变量同样。
以前也常用这些操做,下面简单罗列一下,以备后续查阅:
因为使用的Ubuntu系统默认自动挂载,因此为了完成手动挂载测试,选择redhat来试验。在不插U盘时,使用fdisk -l
能够查看外部设备状况:
插上U盘后再执行,能够看到设备中多了一个sdb1
设备,这就是U盘,若是要读取其中的内容,就须要挂载,步骤以下:
写到这里,不得不佩服那些写出这些命令的程序员,为“枯燥”的学习带来了乐趣。如下命令都须要经过apt-get
安装。
banner
xeyes
cmatrix
aafire
cowsay
asciiview
Linux的内容很是多,学起来也比较使人头疼,因此说必需要多实践、多练习,只有这样才能真正学好、用好。后续的课程我也会继续努力学习,争取可以熟练使用Linux系统。