红联Linux门户
Linux帮助

初识Linux之筑基篇

发布时间:2014-10-12 09:34:11来源:linux网站作者:linux人

使用VI开发Hello.java
vi  Hello.java  
按下i  //进入插入模式
//TODO ...  //输入java代码
按下ESC  //进入命令模式
按下:(冒号)后输入wq  //保存并退出  //q!即不保存直接退出
执行javac Hello.java  //编译Hello.java。若编译失败,则会有提示,反之无提示
执行java Hello  //运行Hello.java


常用命令
1)运行级别
分类:0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务(常用于公司服务器)
4:系统未使用保留给用户
5:图形界面(若系统设置为5号级别,则每次开机都会进入图形界面)
6:系统重启
说明:①:/etc/inittab文件中的id:5:initdefault:里面的数字,决定着系统的默认运行级别
②:若不慎将运行级别设为6,解决办法如下,这里以RedHat为例
当Linux重启,进入GRUB引导界面时,即出现系统选择界面读秒时,按下键盘上的e键
然后选中第二行(即kernel /vmlinuz-2.4.20-8 ro root=LABEL=/),再按下键盘的e键
再输入1,此时显示的应为grub edit> kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 1
切记:所输入的1,与其前面的LABEL=/之间有一个空格
这里1代表单用户级别。若输入其它级别的数字,是没有意义的,Linux仍会不断重启
因为Linux在启动时,会读取/etc/inittab文件,并按照该文件指定的级别启动Linux
而只有单用户级别,在启动时不会读取/etc/inittab文件
然后在单用户模式中修改/etc/inittab文件文件,而且该模式下还可以修改用户密码
这有点像是Linux的漏洞,别人辛辛苦苦的工作结果,我们却可以在该模式下改掉它
输入1之后,回车,会返回GRUB引导界面。再按下b键,此时会重新启动并直接进入单用户模式
③:可以使用runlevel命令查询系统的运行级别
2)命令

 

shutdown -h now 立刻进行关机
shutdown -r now 现在重启计算机
reboot 现在重启计算机
startx 进入RedHat图形用户界面
su - 普通用户登录状态下,切换到root用户
logout 注销用户
ifconfig 查看Linux/Unix的IP
pwd 显示当前工作目录
who am i 显示当前登录用户
cd cd后面什么都不写的话,linux会自动进入到当前所登录用户的用户目录下
cd 目录名 切换目录
ls 列出文件和目录
ls -la 显示文件的详细信息以及隐藏文件
mkdir aa 创建aa目录
rmdir aa 删除aa空目录(仅适用于aa为空目录情况)
touch 创建空文件
cp -r aa bb 递归复制(即也复制子目录信息,如果有同名文件,会提示是否覆盖,按'y'即同意覆盖)
cp -rf aa bb 该命令会强制覆盖目标文件夹或文件夹中的子文件或子目录中的内容
mv 移动文件或者修改文件名
rm mytest 删除mytest文件或者目录(会询问是否确认删除,输入一个y再回车即完成删除)
rm -rf * 删除所有内容(包括目录和文件)(-r是递归,-f为强制)
ln -s 源 目标 建立符号连接(如ln -s /ect/inittab inittab,此时inittab指向实际/ect/inittab文件)
例:比如在/root/目录下建立abc.java文件,然后想在/home/目录下直接操作该文件
        首先在/home/目录下执行[ln -s /root/abc.java fromabc]命令,即可
        使用时直接在/home/目录下操作即可[vi fromabc]
more filename 显示文件内容,带分页(空格键向下翻页)
| 管道命令(将上一个命令的结果,交给管道后面的命令来处理。如ls -l /etc/ | more)
man 相当于DOS下的help
grep 在文本中查找内容(如grep -n "jadyer" aa.java就是在aa.java中查找jadyer并显示行数)
grep "1" f1 f2 在多个文件中查找内容(如grep -n "12" aa.java /home/*如果加上-n则会显示出行数)
find 搜索文件及目录
find / -name aa 从根目录开始搜索名称为aa的文件或目录
find /home -admin -10 搜索十分钟内存取的文件或目录
find /home -atime -10 搜索十小时内存取的文件或目录
find /home -cmin -10 搜索十分钟内更改过的文件或目录
find /home -ctime +10 搜索十小时前更改过的文件或目录
find /home -size +10k 搜索/home/目录下大小为10k的文件
ls -l > aa.txt 将列表的内容覆盖写入aa.txt中(若aa.txt不存在,则创建之,再写进去)
ls -al >> aa.txt 将列表的内容追加到aa.txt的末尾
ls -ahl 查看文件的所有者、所有组

 

顶层根目录"/"
它下面有几个主要的目录

 

root 管理员的主目录
home 普通用户的主目录或FTP站点目录
bin 存放用户可执行的程序
sbin 存放须具有一定权限方可使用的命令
boot linux启动时所需的文件
etc 有关系统设置与管理的文件
var 存放经常变化的文件
mnt 装置的文件系统加载点,如光驱、软盘等。即默认挂载光驱和软驱的目录
usr 安装软件时的默认文件夹,类似于windows中的Program Files文件夹
dev 接口设备文件目录。如had表示硬盘

 

用户组
linux中的每个用户都必须属于一个组,不能独立于组外
linux中的每个文件都有所有者、所在组、其他组的概念

 

useradd jadyer 添加jadyer用户(此时会自动创建一个jadyer组,并把jadyer用户放到jadyer组中)
passwd 为当前用户设置密码
passwd jadyer 修改jadyer的密码
userdel jadyer 删除jadyer用户(此时该用户已被删除,但/home/jayder/目录下的文件仍存在)
userdel -r jadyer 删除jadyer用户以及用户主目录
chown root ./abc 改变abc目录的所有者为root
chown -r root ./abc 改变abc目录及其子文件和目录的所有者为root。这里参数R表示递归
chgrp root test 修改test文件所在的组为root
useradd -g 组名 用户名 创建用户,并指定该用户分配到哪个组
usermod -g 组名 用户名 修改该用户所在的组
usermod -d 目录名 用户名 修改该用户登录的初始目录
groupadd police 添加police组
vi /etc/group 查看/etc/group文件(允许修改)
cat /etc/group 查看/etc/group文件(不能修改)
cat /etc/passwd 查看linux中的所有用户信息

 

权限
示例:命令[  ls -l  ]的结果为:[  -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc  ]
解释:其中的(  -rwxrw-r--  )共10个字符,它决定了不同用户对该文件或目录的权限
第一个字符代表文件类型,(  -  )表示文件,(  d  )表示目录,(  l  )表示链接。其余字符则三个一组
第一组rwx:文件拥有者的权限是读、写和执行
第二组rw- :与文件拥有者同一组的用户的权限是读、写,但不能执行
第三组r—:其它组的用户,对该文件的权限为只读
说明:权限共有三种:(  r  )为可读,用4表示。(  w  )为可写,用2表示。(  x  )为可执行,用1表示

 

chmod 755 aa 该命令就是修改aa文件或目录的权限为rwxr-xr-x
chmod u=rwx,g=rx,o=rx aa 作用同上。u=用户权限,g=组权限,o=其他组用户权限
chmod u-x,g+w,aa 去除aa文件或目录的用户的执行权限,并增加组的写权限
chmod a+r aa 在aa文件上,给所有用户添加读的权限

 

分区
概述:无论RedHat有几个分区,分别给哪个目录使用,归根结底它只有一个根目录,一个独立且唯一的文件结构
redhat中的每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫做"挂载"的处理方法
它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来
这时,要挂载的一个分区,将使它的存储空间在一个目录下获得
说明:说白了就是,redhat中的分区,与Windows不同,简直是太不同了【说明部分为个人理解】
在redhat中,分区是分区,目录是目录,彼此是独立的。而二者建立联系的方式就是mount命令挂载
分区里面存放着系统的相关文件,而目录,也只起到了目录的功能,原本目录中是没有任何文件的
是通过mount将分区挂载到目录上之后,我们在目录中才会看到各种文件,类似于快捷方式或游标
硬盘:1)驱动器标识符为"hdx~"
"hd"表明分区所在设备的类型,这里指的就是IDE硬盘
"x"为盘符号。a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘
"~"代表分区。前四个分区用数字1---4表示它们是主分区或扩展分区,从5开始就表示逻辑分区
如hda3表示为:第一个IDE硬盘上的第三个主分区或扩展分区
hdb2表示为:第二个IDE硬盘上的第二个主分区或扩展分区
2)驱动器标识符为"sdx~"
"sd"表示该硬盘为SCSI硬盘,其余表示方式则与IDE硬盘相同
命令:查看磁盘使用情况:df  [-参数]               //比如 df -h 能以GB为单位,显示出本磁盘下文件的实际大小
查看目录所挂分区:df  [目录全路径]   //比如 df /boot/ 若结果为/dev/sda1则表示sda1硬盘被挂载到boot目录下
查看系统分区情况:fdisk -l                    //此时会显示类似/dev/sda1或/dev/sda2,这里dev是代表设备的意思
卸载:umount [设备名称]                               //比如 umount /boot/ 此时boot目录下,就会发现什么都没有了
挂载:mount [-参数] [设备名称] [挂载点]   //比如 mount /dev/sda1 /mydir/ 就是将sda1硬盘挂载到mydir目录下 //特别说明:挂载光驱时,可直接 mount /mnt/cdrom/
安装:安装Linux时,分区是关键
boot分区:建议100MB
swap分区:一般为机器物理内存的2倍,但不要大于256MB
根分区:尽可能的大