Linux基础知识归纳
1、Linux:Linux is not Unix。主要用于企业的服务器端。Windows不开源(系统价格大概2000左右,安装软件也特别贵,例如Offers就6000左右等)。基于内核的操作系统(redhat就是基于内核进行组装的套件)。
2、what is kernel(操作系统内核)?
● hardware managerment
● memory managerment
● process mangerment(进程管理)
● I/O
● VFS(virtual File System的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口)
3、Version Number Format(版本号格式):r:x:y
✔ r:release version(稳定版本)
✔ x:偶数:稳定版本,奇数:开发版本
✔ y:错误修补的次数
✔ eg:2.0.14等
4、计算机分区时,主分区和扩展分区最多分4个,因为分区表中只能存储四条记录。分区表:主要用于查询记录。一旦破坏掉,文件也就丢失。但在扩展分区中可以继续分逻辑分区。
5、在Linux看来所有的东西都是文件已形式处理的。主要有两种形式(1)字符设备(2)二级制设备
6、鼠标切换(Windows与Linux)快捷键:Ctrl+Alt
7、/——在Linux中表示根(Windows中根——\)记忆技巧:Windows中的W与\平行
8、命令行转图形界面:startx(图形界面耗内存非常严重,占CPU非常大)所以建议使用命令行。
9、查看自己当前所在目录:pwd,查阅当前用户:whoami
10、列出当前目录的所有目录:ls
11、Linux分区的命名------/dev/xxyN
☛ /dev/:这个字符串是所有的设备文件所在的目录名,因为分区在硬盘上,而硬盘是设备,所以这个文件代表了在/dev/上所有可能的分区。
☛ xx:分区的前两个字母表明分区所在设备的类型。通常hd(IDE磁盘)或sd(SCSI磁盘)
☛ y:这个字母表明分区所在的设备。列如:/dev/hda(第一个IDE磁盘),/dev/sdb(第二个SCSI磁盘)
☛ N:最后的数字代表分区(主分区或扩展分区)使用数字从1到4。逻辑分区从5开始。
12、Linux中的每一个分区都是构成支持一组文件和目录所必须的储存区的一部分(也就是说是具有统一性和确定性)。它是通过挂载(mounting)来实现的,挂载是将分区关联到某一目录的过程。挂载分区起始于这个指定目录(通常为挂载点,mount point)的贮存区能够被使用。
13、我们一般不能直接访问设备,通常会将设备挂载到文件目录上进行访问。同时一般将设备文件都放在mnt目录地下。例如:新建目录cdr(挂载点),然后将光盘cdrom挂载命令如下: mount /dev/cdrom /mnt/cdr 不想让挂载:umont 挂载点或设备名
14、删除目录:rmdir 目录名称。新建目录:mkdir 目录名称
15、回到上次路径:cd ..
16、如果在安装的过程中手动分区,建议如下(分区挂载点的名称):
▶ /:根分区
▶ /usr:应用软件存放目录
▶ /home:用户宿主目录(每个用户都拥有的一个目录,宿主目录就是当前用户所属的目录)的父目录
▶ /var:存放临时目录
▶ /boot:存放启动文件
▶ SWAP:交换分区——虚拟内存(把硬盘当内存使用)
至少存在两个分区:
▶ /:根目录
▶ SWAP:交换分区
17、Linux目录结构:
● /:文件系统的入口,也是出于最高一级的目录。
● /bin:基础系统所需要的那些命令位于此目录,也是最小系统所需的命令。比如ls、cp、mkdir等名利;功能和/usr/bin类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。作为基础系统所需要的基本命令的在这里。
● /boot:Linux的内核即引导系统程序所需要的文件,比如vmlinuz、initrd.img文件都位于这个目录中。一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
● /dev:设备文件存储目录,比如声卡、磁盘。
● /etc:系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户账号及密码配置文件。
● /home:普通用户家目录默认存放目录。
● /lib:库文件存放目录。
18、boot sequence(important)Linux启动顺序:
☞ load bios(hardware information)——加电自检
☞ read MBR'S config to find out the OS——选择操作系统
☞ load the kernel of the OS——加载磁盘
☞ init process starts..——对于Linux来说会启动的第一个进程
☞ execute /etc/rc.d/sysinit——运行配置文件中的服务器的进程
☞ start other modules(etc/modules.conf)
☞ execute the run level scripts(分层次启动)
☞ execute /etc/rc.d/rc.local(可以通过此文件可以使某些服务自启动,eg:tomcat)
☞ execute /bin/login(登录界面)
☞ shell started...
19、Linux启动时,分层次启动有以下几种情况:
✔ 0-系统停止状态
✔ 1-单一用户工作状态
✔ 2-多用户状态(没有NFS)
✔ 3-多用户状态(NFS-可以与其他人联网)
✔ 4-系统未使用,留给用户
✔ 5-图形界面
✔ 6-系统正常关闭,并重新启动
20、exit:退出。shutdown:关机。reboot:重启。命令后面的[内容]表示可有可没有。命令 --help:可以告诉你此命令如何使用(详细解释:man 命令)。q:退出。
21、常用命令:
♣ ls:列出所有文件。-l:会竖着排列(d开头的为目录,-开头的为文件)
♣ rmdir:删除目录(但是只能删除为空的目录)常用的删除命令rm -rf 目录
♣ touch:创建文件命令(文件的后缀名没有意义)
♣ cp:拷贝
♣ mv:移动
♣ vi:编辑文本。一般有两种模式①命令模式②编辑模式--刚进去是命令模式。切换到编辑模式:a即可,回到命令模式esc、wq:存盘退出 、q!:不存盘退出。
♣ vi编辑快捷方式:删除一行:dd。删除整个Word:dw。向下插入一行:o
♣ 查看文件more 文件名,cat 文件名(升序),tac 文件名(逆序)
♣ find:查询文件(find / -name *2*)——>从根目录下开始查,通过name查询,还有2的文件
♣ whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
♣ echo:可以查询环境变量。(echo $PATH)Linux中的分割符是:,Windows下是;号
♣ ln:硬链接(ln 3 4——>指将3中的内容同步到4中)。ln -s:软链接 3 5——>相当于快捷方式。(删了3,4存在5没内容)。l开始的表是链接。
♣ Ctrl+c:终止
♣ 快捷向文件中输入内容(zookeeper集群data文件内容就可以):echo 内容 > 文件名
22、用户的管理:
◑ 新建用户:adduser 用户名。新建的用户都会在/home目录中有自己的一个主目录。
◑ 给用户名设置密码:passwd 用户名,接着就会让你录入密码。同时会在/etc/passwd目录下存放该用户。
◑ 我们主要是用的shell脚本是bash。
◑ 如果创建用户的时候,不指定组的时候,会自动创建一个和用户名相同的组,可以在/etc下查看more group文件。
◑ 创建组的命令:groupadd 组名。
◑ 如果创建的时候指定组命令:adduser 用户名 -g 组名。
◑ 修改组:usermod -g 组名 用户名。
◑ 删除用户:userdel 用户名,但是删除之后用户在/home中的目录仍然存在。就用rm -rf。
◑ 用户的切换命令:su(switch user)用户名。
◑ 当一个新用户登录的时候,默认当前路径是用户的主目录。
23、权限管理:
◐ ①r:read②w:writer③x:excuse④-:没有任何权限。
◐ 举例:lrwxrwxrwx:第2到4表示所有者的权限。第5到7表示同组用户权限。从8到10表示剩余其他人的权限。
◐ 权限修改:chmod +x 文件名。(给三个都加x)。如果只给自己加:chmod u+x 文件名。
◐ 修改文件的所有者:chown 用户 文件(ecown zzx a :表示将当前用户的a文件的操作权限给zzx用户)。
24、grep:查询文本文件哪一行包含我要找的字符。eg:grep xx 文件。
25、管道:将一个命令的输入传送给另一个命令,作为另一个命令的输入。使用方法:命令1|命令2|命令3.....(正则表达式的^代表一行的开头)***
26、重定向::> 举例:ls > test.text:将ls执行的结果都放在text文本中。>>执行两次ls。2>表示的是将错误信息进行重定向到文件。<表示读出来文本中的内容。
27、在Linux和其他机器之间共享文件:ftp一般Redhat会有默认安装的ftp。启动ftp的命令:service vsftpd start 检查ftp是否启动:ftp localhost。退出bye。
28、查询IP:ifconfig(window上有三个网卡,两个虚拟的网卡。Linux的IP就是通过虚拟网卡来连接的)Linux中一个网卡
29、xargs:作用是将参数列表转换成小块分段传递给其他命令。RPM是RPM Package Manager(RPM软件包管理器)的缩写,例如:find
/path
-
type
f -print0 |
xargs
-0
rm
:
本例中xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm。这样要比如下使用find命令效率高的多。
30、当防火墙开着的时候,有事后ping是不同的,或者ftp是连接不上的。防火墙的关闭(service iptables stop).
31、通常我们的root用户是没有权限去通过ftp上传文件的。设置方法就是修改vi /ect/vsftpd.ftpusers中将root注释掉。然后读service进行重启:service vsftpd restart
32、JDK安装:将jdk执行文件(.bin)上传到Linux中,在安装包的目录下输入:./xxx.bin。会提示没有权限。这是添加权限:chmod +r xxx.bin。在输入./xxx.bin安装。查看是否安装成功:javac。同时查看版本java -version。Linux中每个文件的安装路径不同,jdk的默认安装路径为/usr/java中。
33、Java文档应当先编译javac x.java后运行java x.java即可。
34、Linux为绿色软件,对于压缩包安装软件解压后即可使用。
35、文件解压缩:①解压tar文件tar -xvf xx.tar压缩tar文件tar -cvf xx.tar dirname: ②gz文件解压gzip -d xx.gz压缩gzip FileName
36、安装Tomcat:解压缩完x.tar.gz文件后,进入文件的bin目录,找到startup.sh文件。在命令行输入./startup.sh运行。
37、配置环境变量:JAVA_HOME=/usr/java/jdk1.6.0_03。直接写环境变量位置即可。
38、一般我们安装完Tomcat后,会测试是否安装成功,会在浏览器中输入http://192.168.145.129:8080进行验证。前提是我们一定要在浏览器中设置代理服务器,将Linux的IP设置进去。才能正常访问。停止服务:kill Tomcat的进程ID号就行。当不能访问的时候看下是否在Windows中能够ping同Linux。还不行就检查端口在Tomcat文件中:访问/conf/more service.xml。如果还是不行,就在Linux中测试是否可以访问:wget http:xxx。
39、ps -ef:列出系统下所有的进程。
40、查询自己机器上装了JDK的包:rpm -qa|grep jdk就可以。卸载:rpm -e 包的名称。安装rpm -ivh x.rpm
41、设置环境变量(长期设置)/etc/profile。修改自启动/etc/rc.local------->/tomcat/bin/startup.sh即可,但要注意的是这个时候没有设置环境变量所以在这之前设置:JAVA_HOME=/usr/java/jdk1.6.0_03