这里我默认你已经安装好Linux系统,我以Ubuntu为例,因为其他Linux系统都大同小异:
常用命令
ls 查看当前目录下的文件
pwd 显示当前目录路径
cd 切换当前工作目录, 即可以进入目录, 退出目录, 跳到某个目录
cp 拷贝文件
mv 移动文件或重命名
rm 删除文件
touch 新建文件或修改文件时间戳
vim 新建文件或修改或编辑文件
locate 查找符合条件的文档或目录
grep 查找文件里符合条件的字符串
cat 把文件内容打印到屏幕,官方说法:连接文件并打印到标准输出设备上。
chmod 修改文件或目录的权限
注:Linux命令大全-runoob.com 去这里可以看命令具体内容。
ls命令 (显示目录下的内容), 了解更多点这
当你打开Terminal(终端),输入ls
回车, 你会看到一些东西:
ypy@ubuntu:~$ ls
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
pwd命令(显示当前路径), 了解更多点这
输入pwd
回车, 你会看到:
ypy@ubuntu:~$ pwd
/home/ypy
这个路径, 就是你刚才ls
的目录
cd命令(切换目录), 了解更多点这
ypy@ubuntu:~$ ls <=查看目录下内容
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
ypy@ubuntu:~$ pwd <=查看当前路径
/home/ypy
ypy@ubuntu:~$ cd Desktop/ <=进入Desktop目录
ypy@ubuntu:~/Desktop$ ls
Source Insight 4.0.lnk Source Insight 4.0.desktop
ypy@ubuntu:~/Desktop$ pwd <=查看当前路径
/home/ypy/Desktop
ypy@ubuntu:~/Desktop$ cd .. <=进入上一级目录
ypy@ubuntu:~$ ls <=查看当前目录下内容
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
ypy@ubuntu:~$ touch 123.txt <=新建123.txt文件
ypy@ubuntu:~$ ls
123.txt Documents examples.desktop Pictures Templates
Desktop Downloads Music Public Videos
ypy@ubuntu:~$ cp 123.txt Desktop/ <=拷贝123.txt文件到Desktop/目录下
ypy@ubuntu:~$ cd Desktop/ <=进入Desktop/目录
ypy@ubuntu:~/Desktop$ ls <=看到了123.txt
123.txt Source Insight 4.0.lnk
Source Insight 4.0.desktop
这个动图讲解了常用命令:Linux 终端中常用的文件和文件夹操作命令
一定要自己多试验一下, 多多实践. 其他的命令类似, 自己搜索一下, 或者去看这些:
命令大全-推荐参考资源:
Linux命令大全-runoob.com
Linux命令大全-查询
Linux常用命令大全-列表
讲到这里, 基本操作应该没问题, 但是还是云里雾里的.
Linux目录结构
接下来,我们了解一下Linux的目录结构:
Linux中根目录就是一个斜杠/
, 下一级目录就是/xxx
,再下一级就是/xxx/yyy
。
这里主要知道:/home
目录即可。
因为这个目录一般存储普通用户的个人文件, 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。比如我的/home/ypy
,存放我的vim的配置文件.vim, 其他软件的配置文件,shell的配置文件等。
了解更多目录结构看这:Linux 系统目录结构,Linux系统目录结构以及简单说明。
另外要知道
.. 两个点表示上一级目录, cd.. 即进入上一级目录
. 一个点表示当前目录, cd. 即当前目录
了解更多Linux符号去这里:
Linux符号-推荐参考资料:
善用帮助
help
Linux的命令,一般支持参数选项,好比有三头六臂,我教大家如何去运用。也就是各种命令加help。如:
ls --help <= 必须是两个短线,跟一个短线不一样
cp --help
mv --help
cd --help
...
我们来看一下ls
:
ypy@ubuntu:~/Desktop$ ls --help
Usage: ls [OPTION]... [FILE]... <= 这表示排列顺序
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
...
下面都是每个OPTION的解释
-a, --all do not ignore entries starting with .
...
-h, --human-readable with -l and/or -s, print human readable sizes
(e.g., 1K 234M 2G)
-l use a long listing format
-L, --dereference when showing file information for a symbolic
link, show information for the file the link
references rather than for the link itself
...
-t sort by modification time, newest first
我们来看个例子:
ypy@ubuntu:~/Desktop$ ls -a <= 该选项-a是显示隐藏文件,这里有., ..,
. 123.txt Source Insight 4.0.desktop sourceinsight4.exe
.. Source Insight 4.00.0089 Source Insight 4.0.lnk
ypy@ubuntu:~/Desktop$ ls -l <= 该选项-l显示文件详细信息,如权限,大小等
total 2824
-rw-r--r-- 1 ypy ypy 0 Apr 5 07:13 123.txt
drwxr-xr-x 2 ypy ypy 4096 Mar 25 07:34 Source Insight 4.00.0089
-rwxr-xr-x 1 ypy ypy 268 Mar 25 07:16 Source Insight 4.0.desktop
-rw-r--r-- 1 ypy ypy 933 Mar 25 07:16 Source Insight 4.0.lnk
-rw-r--r-- 1 ypy ypy 2876400 Jan 16 06:42 sourceinsight4.exe
ypy@ubuntu:~/Desktop$ ls -lh <= 该选项-lh,两个功能,既显示详细信息,又把大小以人类好理解的方式显示。4096和4.0K哪个好理解,不言自明吧
total 2.8M
-rw-r--r-- 1 ypy ypy 0 Apr 5 07:13 123.txt
drwxr-xr-x 2 ypy ypy 4.0K Mar 25 07:34 Source Insight 4.00.0089
-rwxr-xr-x 1 ypy ypy 268 Mar 25 07:16 Source Insight 4.0.desktop
-rw-r--r-- 1 ypy ypy 933 Mar 25 07:16 Source Insight 4.0.lnk
-rw-r--r-- 1 ypy ypy 2.8M Jan 16 06:42 sourceinsight4.exe
注意:当多个选项是,这两个是相同的意思, Linux允许各加短线分开,也允许一个短线组合
ls -l -h
ls -lh
效果:
ypy@ubuntu:~/Desktop$ ls -l -h <=注意这里
total 2.8M
-rw-r--r-- 1 ypy ypy 0 Apr 5 07:13 123.txt
drwxr-xr-x 2 ypy ypy 4.0K Mar 25 07:34 Source Insight 4.00.0089
-rwxr-xr-x 1 ypy ypy 268 Mar 25 07:16 Source Insight 4.0.desktop
-rw-r--r-- 1 ypy ypy 933 Mar 25 07:16 Source Insight 4.0.lnk
-rw-r--r-- 1 ypy ypy 2.8M Jan 16 06:42 sourceinsight4.exe
ypy@ubuntu:~/Desktop$ ls -lh <=注意这里
total 2.8M
-rw-r--r-- 1 ypy ypy 0 Apr 5 07:13 123.txt
drwxr-xr-x 2 ypy ypy 4.0K Mar 25 07:34 Source Insight 4.00.0089
-rwxr-xr-x 1 ypy ypy 268 Mar 25 07:16 Source Insight 4.0.desktop
-rw-r--r-- 1 ypy ypy 933 Mar 25 07:16 Source Insight 4.0.lnk
-rw-r--r-- 1 ypy ypy 2.8M Jan 16 06:42 sourceinsight4.exe
man
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。一般用于查看函数的功能描述,如:
man printf
man memcpy
man memset
...
我们看一下man memcpy
,下面显示了memcpy所在的头文件,函数描述, 参数列表详情。
NAME
memcpy - copy memory area
SYNOPSIS
#include <string.h>
void *memcpy(void *dest, const void *src, size_t n);
DESCRIPTION
The memcpy() function copies n bytes from memory area src to memory
area dest. The memory areas must not overlap. Use memmove(3) if the
memory areas do overlap.
RETURN VALUE
The memcpy() function returns a pointer to dest.
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
安装工具
在Linux终端下,一切命令皆可以叫工具。例如ls, cd, rm等系统自带,vim, gcc, python等得自己安装。
在Ubuntu中一般用sudo apt-get install XXX
即可安装工具。这里xxx就是工具名称。如:sudo apt-get install python
。
安装完后就可使用该工具,一般xxx --help
就可以看到该工具的使用帮助。xxx为工具名。
gcc编译
gcc是编译器,编译工具。 一般我用来编译C/C++代码。
假如,现在你有三个文件,main.c
,sort.c
, sort.h
一般快速编译成可执行文件, 直接输入指令gcc main.c sort.c
,就会生成一个名为a.out的可执行文件(该文件名是默认的)。当然也可以在输出时,指定可执行文件名,如:gcc main.c sort.c -o main.out
。(这里的.out后缀不是必须的,不加也可以)
gcc命令后面,可以加其他的选项,我简单列几个,如:
gcc -c <= 通知gcc取消连接步骤,即编译源码,并在最后生成目标文件
gcc -E <= 只运行C预编译器
gcc -Wall <= 使gcc对源文件的代码有问题的地方发出警告
gcc -g <= 在目标文件中嵌入调试信息,以便gdb之类的调试程序调试
这里就不可以这样写gcc -gc
, gcc -EWall
这种是不支持的。只能这样:gcc -g -c
, gcc -E -Wall
。
更多gcc详细内容去这里:
gcc-推荐参考资料:
gdb调试
后期更新
make编译
假如我们有一个大的工程,肯定有很多源文件,如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。
人们想办法,是否有个工具可以解决这个问题?make应运而生。make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。
make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码文件,以实现工程化的管理,提高开发效率。
其实,make是调用了gcc,并且把多条gcc编译命令按照一定规则放到一个Makefile文件中。
后期更新
shell-Linux脚本
后期更新
vim编辑工具使用
后期更新