Linux 1

来源:互联网 发布:java ssh 编辑:程序博客网 时间:2024/06/01 09:25

1 Linux相关介绍

1.1 Linux简介

Linux是一个开源、免费的操作系统,其稳定性安全性处理多并发已经得到业界的认可,目前很多中大型,甚至巨型项目都在使用linux。很多软件公司考虑到开发成本,都选用linux,在中国软件公司得到广泛的使用。

linux运行内存最小需要4MB。---->嵌入式开发

缺点:操作相对困难

linux和unix的区别:http://blog.csdn.net/xiaojianpitt/article/details/6377419

1.2 Linux学习流程

第一阶段:linux平台上的开发,包括vi,gcc,gdb,make,jdk,Tomcat,mysql。。。和Linux基本操作

第二阶段:加厚c语言功底《c专家编程》或是java语言

第三阶段:学习unix环境高级编程《unix环境高级编程》

第四阶段:linux应用系统开发/Linux嵌入式开发

1.3 相关阶段


2 命令初探

登录时尽量少用root账号登录,因为他是系统管理员,最大的权限,避免操作失误。
可以利用普通用户登录,登录后在使用su命令来切换成系统管理员身份。

2.1 关机命令

shutdown -h now立刻进行关机shutdown -r now现在重新启动计算机reboot现在重新启动计算机
注销命令:logout

2.1.1 进入--->退出图形用户界面

在命令行进入后,使用startx命令,可以进入图形用户界面;注销即可退出图形用户界面。



2.2 使用vi/vim编辑器,开发一个简单的java程序hello.java,并在linux下运行成功

【cat hello.java】(cat命令只能查看,不能修改)

开发步骤:

vim hello.java

②按i【进入编辑模式】

③按Esc【退出编辑模式,进入命令模式】

④输入:wq【表示退出保存】 或  :q!【表示退出不保存】

⑤编译hello.java

javac hello.java

⑥运行

java hello

2.2.1 编译运行cpp文件

①如果没有安装gcc编译器,执行命令:yum install gcc-c++  安装gcc

② 如果编译cpp文件,用g++ hello.cpp, 运行直接./a.out

或使用 g++ -o myobj.o hello.cpp 会生成  myobj.o文件运行 ./myobj.o即可

2.2.2 vim编辑器常用命令


2.2.3 显示当前文件夹下的所有文件

ls ls -l 【格式化显示】

2.3.4 显示当前在哪个目录下

pwd

3 linux文件系统、文件目录介绍

linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下在创建其他的目录。

3.1 root下各文件夹功能


3.1.0 系统安装时,分区的必要性

必要分区:根分区【/】和【swap】分区
其他分区可根据需要划分



3.1.1  /root---存放root用户的相关文件

这是系统管理员(root user)的目录。对于系统来说,系统管理员就好比是上帝,它能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用root帐号。

3.1.2 /home----存放普通用户的相关文件

这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。

3.1.3 /bin----存放常用命令的目录

这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系 统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。

3.1.4 /sbin----要具有一定权限,才能使用的命令

大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。

3.1.5 /mnt -------默认挂载光驱和软驱的目录

这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎 么定义了;比如光驱可以挂载到/mnt/cdrom 。

3.1.6 /boot-----存放系统引导相关的文件

Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。

3.1.7 /etc----存放配置相关文件

这里主要存放了系统配置方面的文件。举个例子:你安装了samba这个套件,当你想要修改samba配置文件的时候,你会发现它们(配置文件)就在/etc/samba目录下。

3.1.8 /var ----存放经常变化的文件

这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;

3.1.9 /usr---文件默认安装的文件夹(类似win下program)

这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。 如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;还有程序的头文件存放目录/usr/include。

4 linux的用户管理

4.1 添加用户

useradd xiaoming

4.2 设置密码、修改密码

passwd xiaoming


4.3 删除用户(保留其文件夹)

userdel xiaoming

4.4 删除用户以及用户主目录

userdel -r xiaoming

5 linux常用命令

5.1 指定运行级别【共7个级别】

命令:init [0123456]

0       关机1单用户2多用户状态,没有网络服务3多用户状态,有网络服务4系统未使用的级别号保留给用户5图形界面6系统重启常用运行级别是3和5,要修改默认的运行级别,可改文件/etc/inittabid:5:initdefault:这一行中的数字

5.2 修改为6后,每次启动后立即重新启动的解决

①在这个位置(开始读秒),按下e


② 来到下边这个位置,接着按下e


③ 再次按下e,选择如图所示选项


④ 进入后,在最后,输入1,表示以单用户模式进入系统(其他模式不好使),然后回车,会重新进入③所示的界面,接着输入b即可


⑤ 这样就可以进入我们的系统,然后将文件再次修改为3或5,然后reboot重启一下,以后就可以正常进入我们熟悉的界面了


5.3 linux常用命令

pwd显示当前工作目录cd改变目录
ls列出文件和目录ls -a显示所有文件包,括隐藏文件ls -l长列表格式显示   也可以ls -al 两个命令同时使用
mkdir建立目录rmdir删除空目录
touch建立空文件
cp a.out /home/xiaoming复制命令cp(将a.out复制到/home/xiaoming目录下)cp -r dir1 dir2递归复制命令(复制子目录信息)
mv移动文件和改文件名rm删除文件和目录rm a.outrm -rf *删除所有内容(包括目录和文件) r递归  f强制
ln建立符号链接ln -s 源 目标 ln -s /etc/inittab inittabinittab指向实际文件/etc/inittab

more显示文件内容,带分页less显示文件内容带分页grep在文本中查询内容
grep “http” aaa.txt 查看aaa.txt中是否有http
grep -n “http” aaa.txt 可以显示行数|管道命令(把上一个命令的结果交给|后面的命令处理)
可以多个管道
ls -l /etc/ | more这样就可以分页显示目录下的内容

man帮助命令 相当于dos下的help

5.3.1 find命令,搜索文件及目录

find搜索文件及目录在Linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题。

①在特定的目录下搜索,并显示指定名称的文件和目录

find / -name man : 意思是说从根目录开始搜索名称为man的文件或目录

②搜索一段时间内被存取/变更的文件或目录

find /home -amin -10  : 十分钟内存取的文件或目录

find /home -atime -10 : 十小时内存取的文件或目录

find /home -cmin -10 : 十分钟内更改过的文件或目录

find /home -ctime +10 : 十小时前更改过的文件或目录

③搜索指定大小的文件

find /home -size +10k : 查找/home目录下大小为10k的文件

5.3.2 重定向命令(将结果定向输出到文件等)

ls -l > a.txt 列表的内容写入到文件a.txt中(覆盖写)

ls -al >> aa.txt 列表的内容追加到文件aa.txt的末尾

database_program < database_data 从文件中输入信息

6 文件所有者、所在组和其他组及权限

linux中的每个用户必须属于一个组,不能独立于组外。

在linux中每个文件有所有者、所在组、其他组的概念。

6.1 文件

用【ls -ahl】命令可以查看文件的所有者。

通过【chown 用户名 文件名】来修改文件所有者。

通过【chgrp 组名 文件名】来修改文件所在的组。

6.2 用户

在添加用户时,可以指定将该用户添加到哪个组中

useradd -g 组名或组号 用户名

同样使用root管理权限也可以改变某个用户所在的组:

usermod -g 组名 用户名

还可以使用:

usermod -d 目录名 用户名】 改变该用户登录的初始目录

查看当前登录用户:

who am i

6.3 组

【groupadd 组名】添加组

6.3.1 查看当前有哪些组和用户

vim 或 cat命令

① 查看有哪些组

【cat /etc/group | more】

policeman:x:501:             查询结果为:组名:加密相关的符号:组号:

②查看linux下所有用户信息

cat /etc/passwd

xiaohong:x:503:502::/home/xiaohong:/bin/bash   查询结果为:用户名:加密符号(密码):用户号:组号::所在目录:shell解析器

6.4 权限


6.4.1 登录到xiaoli用户下,创建hello.java并【ls -l】显示文件

-rw-r--r--. 1 xiaoli polic 时间   hello.java

-rw-r--r--: 

第一个【-】代表文件类型

【rw-】代表文件所有者对该文件的权限

【r--】文件所在组对该文件的权限

【r--】其他组的用户对该文件的权限


权限分为三种:【r】可读,用4表示;
【w】可写,用2表示;
【x】可执行,用1表示

6.4.2 登录到xiaohong用户下,【ls -l】查看文件


d】:表示该文件为文件夹

rwx】:为文件所有者对文件的权限

---】:表示所在组或其他组对该文件没有权限

6.4.3 修改权限(在当前用户下,修改自己的权限)


【chmod 777 xiaohong】 三个【7】分别是对所有者、所在组、其他组权限的修改。

注: 7 是 r w x 三个权限的和


此时,组内成员可以进入到xiaohong的目录,但是对其中文件的权限并没有变。


0 0