简单的东西没学好,复杂的东西就不好学会
Linux命令行
pwd: 以绝对路径的方式显示用户当前工作目录
ll:显示当前工作目录的详细信息
vim:文本编辑器
./:当前目录
../上级路径
cd ~ 返回根目录
-
在有的时候我们想保存命令操作结果,比如说将 ls 执行结果保存到某个文件中,这个时候可以使用>或>>
一个>表示覆盖写,两个>>表示追加写
& 表示任务在后台执行; && 表示前一条命令执行成功时,才执行后一条命令
反斜线符号“ \ ”在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符(\n,\r)
"/"是目录层的分隔 表示符
示例:将 ls 执行结果保存到某个文件中 命令:ls -l > list.txt 就将ls -l 的结果保存在了list.txt文件中去了
Linux
-
搭建开发环境:虚拟机软件+linux系统。
- 虚拟机软件就是一个单纯的在Windows中运行的软件,跟word、360没有本质区别。如VMWare。
- 虚拟机软件在Windows系统中运行,运行后它会模拟出来一个电脑,所以叫虚拟机。然后我们可以在该虚拟机中安装别的操作系统。
Linux中,隐藏文件的特点是文件名以 . 开头,跟文件属性无关。在Linux中查看隐藏文件用 ls -a 命令(普通显示用ls)
-
相对路径与绝对路径
- 绝对路径:'/'是根目录,eg:cd /,linux的绝对命令是从 /开始的;
- 相对路径:指明路径时是从当前所在的位置开始的。‘..’表示当前目录的上一层目录。 eg: cd ../xxx/
- 全路径:pathname(包含文件名);路径:path(不包含文件名);文件名:name(不包含路径)
-
Linux内核、发行版
- Linux本身指的是一个操作系统内核(kernel.org:官网)
- 我们需要的可以使用的操作系统是一个包含了内核和一批有用的应用程序的一个集合体,这个就叫Linux发行版
- ubuntu、redhat就是linux的不同的发行版
-
GUI和cmdline
- GUI:grahics user interface,图形用户界面
- cmdline:command line, 命令行
- 人机交互:人和机器(计算机)进行交互-用以上两种方式
- Linux和Windows下既有GUI,又有命令行,但linux 中常用命令行,Windows常用GUI
-
Linux常用命令
-
ls
- ls(list,列表):用列表将当前文件夹下所有文件显示出来
- ls -a : 显示所有文件,包括隐藏文件
- ls -l : 以详细信息显示
- ls -a -l (或 ls -l -a、或 ls -la、或 ls -al): 显示所有文件的详细信息
-
cd (change directory:切换目录)
- .. 代表上一层目录(cd ..)
- . 代表当前目录 (cd .)
- cd ../../../ 代表上一层目录的上一层目录
pwd (print work directory:打印当前工作目录)
-
mkdir (make directory,创建文件夹)
- mkdir -p 级联创建文件夹
-
mv (move,在目录间移动文件,重命名文件,这两种作用)
- mv 源文件pathname 目的文件pathname
-
touch (创建空文件)
- touch pathname
-
cp (copy 复制)
- cp 源文件pathname 目标文件pathname
- cp -r :复制文件夹
- cp -f :强制复制
- 实际操作时,一般都是cp -f 复制文件,cp -rf复制文件夹
-
rm (remove,去除,删除)
- rm 文件pathname
- rm -f 文件夹pathname(无返回值)
cat (直接在命令行下显示文件内容;也可以用来向文件输入)
rmdir (删除空文件夹)
-
ln (link,连接文件)
- windows中快捷方式,实际上快捷方式和它指向的文件是独立的两个文件,两个都占硬盘空间,只不过用户访问快捷方式时,其效果等同于访问指向的文件
- Linux中有两种连接文件:
- 一种叫软连接(符号连接),等同于Windows中快捷方式
- 一种叫硬链接
- ls -l 查看文件详细信息;l代表此文件为连接文件,-代表普通文件,d代表是文件夹
- 创建软连接 ln -s 源文件名 符号连接文件名
- 举例:ln -s src.c, linker.c, linker.c就是src.c的一个符号连接文件(-s中s代表simble,代表符号连接 )
- 硬连接:ln 源文件名 连接文件名
- 硬链接实际上和源文件在硬盘中是同一个东西,效果类似于硬盘上的一个文件,在文件系统上,在我们看来有好多个文件一样。每次删除一个文件时,只要他还有其他的硬连接存在,这个文件就不会被真正删除。只有等所有的连接文件都删除掉了,这个文件才会被真正从硬盘上删除。
-
man: 查询man手册,获得帮助信息
- man 1 ls 1表示查询的是linux命令
- man 2 xxx 2表示查询的是linux API
- man 3 xxx 3表示查询的是C库函数
-
apt-get(在ubuntu中用来在线安装、卸载软件的程序)
- apt-get install vim
- apt-get remove vim
- Nt: install和remove都是在线的,也就是说ubuntu必须能上网才能使用apt-get
- 说明:apt-get 安装软件的原理和必要性:Linux操作系统的发行版,内核版本,定制型,造成了linux中软件的不兼容性。在Linux中安装软件是一件困难的事情,装了软件能不能用不一定。Ubuntu解决了这个问题,Ubuntu就适合某个发行版(ubuntu10.04)的所有软件做了一个列表,然后用户通过apt-get install 的方式安装软件,就会实时连接到Ubuntu服务器,服务器会根据你的Ubuntu版本,给你下载合适的软件来安装。这样确保了软件的兼容性
- 权限问题
- 虚拟机ubuntu上网的问题
-
编辑器vi的使用
什么是编辑器?编辑器就是一款软件,它的主要作用就是用来编辑。譬如编写文件,编写代码
windows中的常用编辑器,如自带的notepad。比较好用的notepad++,UItraEditor,SlickEditor
linux中常用编辑器,自带的最古老的vi。比较好用的vim,gedit
Nt: vi 和 vim 的关系:vim是vi的升级版,后面说的VI实际上是vim
-
Vi的基础使用
- 使用vi打开/创建一个文件时, vi pathname
- vi的两种模式:
- 命令模式:当vi打开时,默认为命令模式,要转入输入模式,需要按a或者i键。在命令模式下,此时键盘上输入的所有东西都被vi当做命令来对待。
- 输入模式:输入模式用来向文件输入内容。可以从命令模式中按a或者i进入输入模式。进入输入模式后,就可以随意按键盘进行输入了。输入完成后如果要保存,要先退回到命令模式(因为保存也是一种命令)。在输入模式下按ESC键退回到命令模式。
- 注:注意看屏幕左下角,当命令模式时无提示信息或者提示文件名等信息,等处于输入模式时,提示 -- INSERT --
- :wq 保存并且退出
- :w 只保存不退出
- :q 不保存退出(进来看了一下没改退出)
- :q! 不保存强制退出
- :wq! 保存并强制退出
- vi打开一个文件:vi 文件名(文件名存在)
- vi创建一个文件:vi 文件名(文件名不存在)
-
vi的高级使用
-
查找
- 命令模式下,输入“/XXX”,就是查找XXX
-
快速切换行
- 命令模式下,输入:Num 就可以快速切换到第Num行
-
设置显示行号
- 命令模式下 ,输入:set nu,就可以显示行号
- 命令模式下,输入:set nonu,就可以去掉显示的行号
-
设置永久显示行号
- 需要修改vi的配置文件。打开vi的配置文件~/.vimrc,在其中输入set nu 即可。(取消永久显示行号,则输入 set nonu)
-
行删除
- 命令模式下,先将光标移动到要删除的行,然后输入dd
- 如果要删除连续多行,譬如要删除连续的3行,使用3dd,光标放在第一行
- 或者转换到输入模式,手动删除
-
行复制粘贴
- 复制:命令模式下,nyy
- 粘贴:命令模式下,p
- 细节:复制时,把光标放在多行的第一行,粘贴是光标放到要粘贴的行的上一行
编译代码文件:gcc 文件名
-
ls -l显示的详细信息中:
- -rw-r--r--
- drwxr-xr-x
- 一共10个字符,第一个字符表示文件类型,后面9个字符表示文件权限
- 文件类型:
- -表示普通文件。普通文件指文本文件和二进制文件,如a.c, 1.txt, a.out 都是普通文件
- d 表示文件夹,d是directory的缩写
- l表示符号连接文件, 后面会用->打印出它指向的文件
- s表示socket文件
- p表示管道文件pipe
- which XX: 显示Xx的绝对路径
-
使用技巧
- 使用tab键输入
- linux中一些符号的含义:
- . 代表当前目录
- .. 代表上一层目录,当前目录的父目录
-
代表前一个目录,我刚才从哪个目录cd过来的
- ~ 代表当前用户的宿主目录
- 所谓宿主目录,就是操作系统为当前用户所设计的用来存放文件、工作的默认目录。如Windows中的“我的文档”目录,就是Windows为我们设计的宿主目录
- Linux中每个用户都有自己的宿主目录,这个目录对于普通用户来说,在/home/username/,而对于root用户来说,在/root。(切换到root用户:输入su)
- / 代表根目录
- $ 普通用户的命令行提示符
- “#” root用户的命令行提示符
-
- 万能匹配符
- Linux中权限表示$管理
- 普通用户与特权用户,su命令切换用户
- Windows中有普通用户和特权用户,特权用户是Administrator,普通用户可以有很多个。
- 特权用户是系统的管理员,对系统内所有文件具有操作权限。
- 每个普通用户只能处理自己的文件,不能访问其他用户的文件,更不能随意处理操作系统的文件
- Linux中也有普通用户和特权用户的区别。特权用户就是root用户。
- 普通用户权限受到限制,譬如说普通用户不能cd /root,
- 普通用户不能使用apt-get install来装软件
- 可以使用su 用户名 来在不同用户间切换。譬如要从普通用户切换到root,可以用su root(或su),然后输入root的密码即可转入root用户。从root要切换到普通用户gaojie,则su gaojie
- Windows中有普通用户和特权用户,特权用户是Administrator,普通用户可以有很多个。
- rwx中权限表示
- ls -l 显示详细信息, drwxr-xr-x 10个字符,第一个表示文件类型。剩下的9个分成3组,表示文件权限。
- 前3个表示此文件的属主对文件的权限
- 中间3个表示此文件属主所在的组对文件的权限
- 最后3个表示其他用户对文件的权限
- rwx解析:r代表可读,w代表可写,x代表可执行
- rwx:可读,可写,可执行
- r-x:可读,不可写,可执行
- r--:可读,不可写,不可执行
- ls -l 显示详细信息, drwxr-xr-x 10个字符,第一个表示文件类型。剩下的9个分成3组,表示文件权限。
- 使用sudo暂时获取root权限
- 这是ubuntu的一个特点,在Ubuntu中可以使用sudo命令让普通用户暂时获取root用户的权限,而不必进行用户的切换
- 用法举例:sudo apt-get install vim
- 普通用户与特权用户,su命令切换用户
- 虚拟机Ubuntu上网问题
Linux高阶命令
-
Linux命令
-
find
- 功能:在Linux系统中,用来查找一个文件放在哪里了
- man 1 find
- 举例:find /xxx -name "XXX"
- 总结:
- 什么时候用find?当你知道你要找的文件名,但是你忘记了它被放在哪个目录下,要找到到该文件时,用find.
- 怎么用find? find 路径 -name "文件名"
-
grep
- 功能:在一个文本文件中,查找某个词。
- 举例:grep -nr "XXX"
- 总结:
- 什么时候用grep?当你想查找某个符号在哪些地方(有可能是一个文件,也有可能是多个文件组成的文件夹)出现过,就用grep
- 怎么用? grep -nr "要查找的字符串" 要查找的目录或文件集合,-n表示要查找结果中显示行号,-r表示要递归查找
-
which和where
- 功能:查找一个应用程序(二进制文件)
- 举例: which ls whereis ls
- 区别:
- which只显示二进制文件的路径
- whereis显示二进制文件的路径,和其源码
- 或man手册位置
-
uname
- 功能:查看系统信息
- 举例:uname -a
-
开机和关机
- shutdown -h now 立即关机
- init 0 关机
- shutdown -r now 立即重启
- reboot 重启
-
tree/lstree
- 功能:显示文件和目录由根目录开始的树形结构
-
mount/umount
- 功能:用来挂载磁盘到文件系统中
- 举例:挂载 mount -t nfs -o nolock 192.168.1.141:/root/rootfs/mnt
- 卸载 umount/mnt
-
磁盘空间相关
- df -h 显示已挂载的分区列表
- du -h 列出文件或文件夹的大小
- du -h 文件名 ,可以列出这个文件有多大,列出方式是以人比较好看懂的方式。不像ls -l 列出的都是以字节为单位
-
用户管理
- useradd user1 添加一个名为user1的用户
- userdel user1 删除一个名为user1的用户
- passwd user1 为名为user的用户设置密码
-
权限管理
- 作用:用来管理系统中文件的权限
chmod(change mode) 修改文件的权限(比较常用,要记住)
chown(change owner,修改属主)
chgrp(change group,修改文件的组)
- ls -l 列出的属性
drwxr-xr-x 总共10个字符,第一个表示文件属性(d表示文件夹,-表示普通文件)。剩下的9个分成3组,r代表可读,w代表可写,x代表可执行。如果是字母表示有这个权限,如果是-表示没这个权限。三组分别表示:......
-
权限还有另一种表示方法,用数字来表示。编码规则如下:
r 可读 4 w 可写 2 x 可执行 1 - 无权限 0 有了这个编码规则,则 rwxr-xr-x 编码后为755
-
第一种修改权限的方法:
要把权限修改成 rwxr--rr-- 则对应的编码值为744 修改命令为:chmod 744 文件名
-
第二种修改权限的方法
在原来的权限基础上进行修改,即增加或减少某些权限。 三个组用户的编码依次为: 属主u 属主所在的组g 其他用户o 举例: 属主增加可执行权限 chmod u+x 文件名 其他用户增加可写权限 chmod o+w 文件名 属主所在组用户去掉可执行权限 chmod g-x 文件名
-
文件打包压缩与解压缩
- tar -czvf dir.tar.gz dir/ 将dir目录打包成dir.tar.gz
- tar -cjvf dir.tar.bz2 dir/ 将dir目录打包成dir.tar.bz2
- tar -zxvf dir.tar.gz 解压缩dir.tar.gz
- tar -jxvf dir.tar.bz2 解压缩dir.tar.bz2
-
sed和awk
正则表达式。匹配加替换
-
格式化文件系统
- mkfs /dev/hd1
- mkfs -t vfat 32 -F /dev/hd1 创建一个FAT32文件系统
-
网络配置命令
- ifconfig eth0 192.168.1.13 设置IP地址
- ifconfig eth0 up 启动网卡
- ifconfig eth0 down 禁用网卡
- ifup eth0 启动网卡
- ifdown eht0 禁用网卡
- ifconfig eth0 192.168.1.1 netmask 255.255.255.0 同时设置IP和子网掩码
-
搭建tftp服务器
搭建nfs服务器
-
虚拟机linux上网问题
- VMware中虚拟机网络的三种设置
第一种:桥接(bridged)
第二种:NAT
第三种:Host only,