Linux学习杂记

最近一口气看完了韩顺平老师讲的Linux视频教程,自己也在学习的过程中做了些笔记,记载如下,希望帮助到一些喜欢研究Linux的同学,也算是在云端备份一下笔记吧,以免电脑出现不可控的因素而遗失自己的心血。

首先声明,这篇笔记不是按照韩老师讲的顺序来写的,可能有些凌乱,但我相信,你总能找到你想要的信息:

Linux必看书籍:

鸟哥的私房菜

Linux编程从入门到精通

Linux内核安全剖析

命令:

shutdown -h now  立刻关机

shutdown -r now   重启

reboot   重启

startx  进入图形界面

logout  用户注销

注意:

登陆时尽量少用root账号登陆,因为它是系统管理员,最大的权限,避免操作失误。

可利用普通用户登陆,登陆后再用“su -”命令来切换成系统管理员身份。

C程序在Linux下编译运行:

1.  gcc  hello.c  或者  gcc  -o  newName  hello.c

2.  ./a.out

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

根目录”/“下的文件有:

bin:  存放Linux中应用软件工具的各种命令,例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、newaliases、nslookup passwd、quota、smb*、wget等。

sbin: 存放Linux中系统管理的各种命令,例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevelshutdown等。

boot:存放内核以及启动所需的文件等。

dev:  存放设备文件。

etc:   存放系统的配置文件。

home: 用户文件的主目录,用户数据存放在其主目录中。

lib :   存放必要的运行库。

mnt :存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。

proc :存放存储进程和系统信息

root :超级用户的主目录

tmp : 存放临时文件的目录

usr :  包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。

var :  包含系统产生的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、格式化后的手册页以及一些应用程序的数据文件等等。建议单独的放在一个分区。

vi编辑器的使用:

在编辑模式时,ESC+“:wq" 为保存退出,":q!"为强制退出(不保存)

":set nu"在文件中每行行处显示行号

":set nonu"取消行号

":+数字" 为跳至该数字标示的行,如":4"跳到第四行

":/+字符串"查找特定字符串,如果搜索的字符串不是所要的,可以按"n"键来往下继续查找。如”:/main“查找”main“字符串位置。

":?+字符串" 用法同 上面的  ":/+字符串"

Linux的用户管理:

useradd  userName     添加用户userName

passwd   userName     修改用户userName的密码

userdel   userName     删除用户userName

userdel -r userName   删除用户以及用户主目录

Linux的运行级别:

命令 init 【012356】

运行级别:0    关机

1    单用户

2    多用户状态没有网络服务

3    多用户状态有网络服务

4    系统未使用保留给用户

5    图形界面

6    系统重启

常用的运行级别是3和5,要修改默认的运行级别可修改文件 /etc/inittab的id:5:initdefault: 这一行中的数字。

Linux命令:

pwd    显示当前的工作目录

cd       切换目录

ls         列出文件和目录

ls  -a    显示隐藏文件

ls  -l     显示长列表格式

ls -la    显示隐藏文件,并以长列表格式显示

mkdir   新建目录

rmdir    删除空目录(不能删除有文件的目录,可以使用”rm -rf“强制删除有文件的目录)

touch   新建空文件

cp        复制文件

cp -r dir1 dir2   递归复制命令(复制子目录信息)

mv     移动文件或者改文件名

rm     删除文件(不能直接删除目录)

rm  -rf  强制删除所有内容(包括目录和文件)

ln  建立符号连接,类似如windows的为某个文件建立快捷方式吧

ln -s  源  目标   如ln -s /etc/inittab  inittab (inittab指向实际文件/etc/inittab)

more 显示的文件内容较多时,分页显示

less    显示文件内容带分页

grep   在文本中查询内容 如  "grep main hello.java"  , "grep -n main hello.java"显示所在行的行号

|         管道命令

man 命令相当于 windows的 help

find  搜索文件及目录

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

find  /  -name  Hello.java

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

find /home -amin -10     10min内存取的文件或目录

find /home -atime -10     10h内存取的文件或目录

find /home -cmin -10      10min内更改过的文件或目录

find /home -ctime +10     10h前更改过的文件或目录

3. 搜索指定大小的文件

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

重定向命令:

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

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

从文件中输入信息  database_program  <  database_data

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

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

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

用命令 ls -ahl  可以看到文件的所有组

命令  chgrp  组名  文件名   修改文件所在的组。

linux中添加组:groupadd   groupName

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

同样的用root的管理权限可以改变某个用户所在的组:usermod  -g  组名  用户名

还可以用  usermod   -d  目录名  用户名   改变该用户登陆的初始目录

修复Redhat命令行英文乱码的情况:

vi /etc/sysconfig/i18n   在后面加上  LC_ALL=POSIX  注销后即可恢复正常显示。

使用命令行备份和恢复mysql数据库:

备份:mysqldump -u root -p密码 数据库名>data.bak

恢复:mysql -u root -p密码 数据库名<data.bak

linux中添加组:  groupadd  groupName

查看linux中所有组信息: vi  /etc/group  或者  cat  /etc/group

创建用户,并同时指定将该用户分配到哪个组: useradd -g groupName  userName

查看linux中所有用户信息:vi  /etc/passwd   或者  cat  /etc/passwd

改变权限的命令:

chmod   改变文件或目录的权限

如:chmod 777 abc.txt   赋予abc.txt权限 -rwxrwxrwx  (4+2+1)

三组rwx分别属于:文件所有者访问权限、用户所在组权限、其他用户权限。

改变文件拥有者(chown)和用户组(chgrp)命令:

如:chown  xiaowang  abc.txt   改变abc.txt的拥有者为xiaowang

chgrp root  abc   改变abc所属的组为root

chown root  ./abc  改变abc目录的所有者为root

chown -R  root  ./abc   改变abc目录及其下面所有的文件和目录的所有者为root

在linux上安装jdk的步骤:

1.把所有的安装文件打包成.iso文件,挂载到linux操作系统上:

mount  /mnt/cdrom

2.把安装文件拷贝到 /home 下

cp  文件  /home

3.cd  /home (切换目录到/home下)

4.安装

./xxxxx.bin

5.看看一个文件 /etc/profile  (环境配置文件)

配置环境变量:如下图所示

Linux分区:

概述:首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区和扩展分区两种,

基本分区和扩展分区的数目之和不能大于4。且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,

也就是说它必须还要进行二次分区。那么由扩展分区再分下去是什么呢?它就是逻辑分区,而且逻辑分区没有数量上的限制。

对windows用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标示符,然后就可以选用这个字母来指定在

这个分区上的文件和目录。它们的文件结构都是独立的,非常好理解。但对这些用户初上手的redhat linux,可就有点恼人啦。因为对redhat linux用户来说无论有几个分区,分给给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。redhat linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。下面我们先来看看redhat
linux的驱动器是如何标示的。

对于IDE硬盘,驱动器标示符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“X”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”表示分区,前四个分区用数字1到4表示,它们是主分区或扩展分区。从5开始就是逻辑分区。例如,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。对于SCSI硬盘则标示为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

挂载命令  mount  [参数][设备 名称] [挂载点]

特别说明:在挂载光驱时,可直接使用  mount  /mnt/cdrom

卸载命令   umount [设备名称]

查看磁盘使用情况  df  [参数]

如:df -l

查看某个目录是在哪个分区  df  [目录全路径]

查看linux系统分区具体情况  fdisk  -l

Linux任务调度:

设置任务调度文件   /etc/crontab

设置个人任务调度。执行crontab  -e命令。

接着输入任务到调度文件  如: 5 * * * *  ls -l   /etc/  >  /tmp/to.txt   (每小时的第五分钟执行ls  -l  /etc/  >  /tmp/to.txt命令)

调度文件中时间表示的规则:

怎样去调度多个任务?

1.在crontab -e 中直接写.(不推荐)

2.可以把所有的任务,写入到一个可执行文件(shell编程)。(很好)

终止任务调度:

crontab  -r  终止任务调度

crontab  -l  列出当前有哪些任务调度

1.date命令:显示系统的时间。可以在命令行中直接输入“date”命令。来查看系统的时间。

2.利用date命令来更改系统的时间。

date MMDDHHMMCCYY.SS:意思是指:月月日日时时分分年年年年.秒秒

3.查看月历:

cal  9  2014 : 查看2014年9月的日历。

4.查看年历:

cal 2014 : 查看2014年的年历

Linux监控网络状态信息:

显示网络统计信息的命令 netstat

此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容。

此命令直接输入即可使用。如:netstat  -an

检测主机连接命令ping:

是一种网络检测工具,它主要是用来检测远程主机是否正常,或是两部主机间的介质是否为断开、

网线是否脱落或网卡是否故障。如:ping  对方ip地址或网址

显示数据包经过历程命令:traceroute

此命令可以直接输入使用,用来检测数据包在网络上传输的过程。从本机到远程主机完整路径,帮助管理员解决问题。

route:

所谓路由是指将数据由来源网络送往目的地网络的操作,在大型网络中,路由是非常复杂的,因为数据包在抵达目的地时,

可能经过的节点有很多,路由表是存储在路由器或一些其他链接设置上的窗体。其中记录着到指定目的地的网络路径,以及这些路径的相关数值。

Linux压缩和解压问题:

■以zip和unzip处理.zip文件

1.zip命令的基本使用方法:

zip  file.zip  *:zip后接压缩后的文件名,在它的后面输入要压缩的文件即可。

2.压缩后,自动删除原文件

zip  -m  file.zip  to.txt :意思是把to.txt文件压缩成file.zip文件,to.txt会自动删除的。

3.将子目录一起压缩:

zip  -r  file.zip  * : 将当前目录下的子目录一起压缩。

4.忽略子目录的内容:

zip  -j  file.zip  *

5.将已压缩的或没有必要压缩的文件去掉:

zip  -n  .mpg:  .jpg:  .gif:第一种文件中间要用“:”分开。

6.压缩某一日之后的文件:

zip  -t  102002  file.zip:将当前目录下在2002年10月20日之后的文件压缩。

7.不压缩链接文件的原文件:

zip  -y  file.zip   *

8.压缩率问题: -1到-9 (-9的压缩率最高)

zip  -9  file.zip  *

9.将不需要压缩的文件排除在外。

zip  file.zip  *  -x  file2.txt :  在压缩时,将当前目录内的file2.txt文件排除在外。

■以unzip命令进行.zip文件的解压缩

1.直接解压缩文件

unzip file.zip

2.排除不需要解压缩的文件

unzip  file.zip  -x  file2:除了file2文件外,其他的文件都解压缩。

3.查看压缩包的内容

unzip  -Z  file.zip:查看file.zip压缩包的内容。也可以使用“-l”、“-v”来查看压缩包的内容

配置 .bashrc 文件可以指定某些程序在用户登陆的时候就自动启动。

alias用法(为某个命令取别名):

alias  llh=‘ ls  -l  /home ‘

shell使用:

■通配符:  *    代表多个字母或数字

?  代表一个字母或数字

ls  a*     ls  a?     ls  ?at?

ls  f080[1-6].tif

runlevel 命令,可以查看当前的运行级别

Linux系统启动过程如下:

a) BIOS自检

b) 启动GRUB/LILO

c)  运行LINUX内核并检测硬件

d)  运行系统的第一个进程init

e)  init读取系统引导配置文件 /etc/inittab中的信息进行初始化

f)   /etc/rc.d/rc.sysinit 系统初始化脚本

g) /etc/rc.d/rcX.d/[KS]* - 根据运行级别X配置服务

终止以“K”开头的服务

启动以“S”开头的服务

h) /etc/rc.d/rc.local  执行本地特殊配置

i)  其他特殊服务

Linux下Shell介绍:

查看目前使用的是哪种shell:

env

在linux下,我们有时可能希望知道或是使用最近执行的命令,history可能会帮上大忙。

1.history  5 :显示最近使用的5个命令。

2.  !5   : 执行历史编号为5的命令。

3.  !ls  :    执行最后一次以“ls”开头的命令。

追踪路由: tracert  目标ip/域名

测试两个ip是否畅通:ping  目标ip

在windows下 查看ip情况命令:ipconfig

在linux/unix下查看ip情况命令:ifconfig

Linux网络环境配置:

方法一:(1) 用root身份登陆,运行setup命令进入到text mode setup utiliy对网络进行配置,这里可以进行

ip,子网掩码,默认网关,dns的设置。

(2) 这时网卡的配置没有生效,运行 /etc/rc.d/init.d/network  restart命令,我们刚才做的设置才生效。

方法二:(1) ifconfig  eth0  x.x.x.x对网卡进行设置

(2) ifconfig  eh0  network  x.x.x.x对子网掩码设置。

对广播地址和dns 使用默认的

注意: 这样配置网络将会立即生效,但是是临时生效。

方法三:(1) 修改 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件里各个属性可以修改,包括ip,子网掩码,广播地址,默认网关。

(2) 这时网卡的配置没有生效。运行  /etc/rc.d/init.d/network  restart 命令,我们刚才做的修改设置才生效。方法

这种方法是最低层的修改

在Linux中,所有的设备都是文件。

Linux进程的概念和管理:

1. 在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号。

2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。

3. 每个进程都可能以两种方式存在的。前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的。

后台进程则是实际在操作,但由于屏幕上无法看到进程,通常使用后台方式执行。

4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

ps 命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。

显示详细的进程信息:

1. ps  -a:显示当前终端的所有进程信息。

2. 以用户的格式显示进程信息:ps  -u。

3. 显示后台进程运行参数:ps  -x

pa  -aux : 看到全面,信息也全面。

若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程,使用 kill 命令

来完成此项任务。

终止某个进程:kill  进程号   如:kill  12345

kill  -9  12345:因为有些进程会捕捉某些信号,如果直接不能结束进程可以使用 "-9" 传送信息(强制kill掉)。

时间: 2024-10-25 11:29:16

Linux学习杂记的相关文章

linux学习杂记之虚拟机和物理机的通讯

命令页 是在/dev/pts  里 增加  ip ip addr add 172.25.254.xxx  dev eth0 增加      网关 route add default gw  172.25.254.251 查看         网关 route -n 物理机和虚拟机不在同一网段实现通信步骤 brctl show 看虚拟机的vnet0 有没有加载到物理机上去 brctl addif  vnet0 dev br0 Ip  link set dev vnet0  up reboot 创建

《Linux学习并不难》获取Linux系统帮助(2):使用man手册页

4.2  <Linux学习并不难>获取Linux系统帮助(2):使用man手册页 安装好Linux系统后,首先要做的是学会如何在Linux系统下获取帮助,man手册页是一种不错的方法,man是一种显示Unix/Linux在线手册的命令.可以用来查看命令.函数或者是文件的帮助手册,另外它还可以显示一些gzip压缩格式的文件.     一般情况下,Linux系统下所有的资源都会随操作系统一起发行,包括内核源代码.而在线手册是操作系统所有资源的一本很好的使用手册.有不懂的命令时可以用man查看这个命

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; linux &nbsp; &nbsp; 学习 &nbsp;

决心书 我叫孙启浩,出生在山东淄博的一个农村.15岁初中还没有毕业,就去上了技校,其实父母是想让我提早的步入社会,我在那个地方学的是'电厂热能动力装置' 本来我是想学it的可是我父母说就学这个因为在我们那里电厂找工作也好找工资肯定比学it工资要高,我就这样在那个对我来说无所谓的学校学了两年半.放暑假的时候我哥回来说要进京学it,我就想要不我也去学?因为我对这个it还是挺感兴趣的,之后就来了北京,先去看了一个学校叫'八维'觉得这个学校不怎么好,上来先学单词什么的我这种人一看书就想睡觉.然后我父亲的

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

linux学习-练习1

touch 创建多目录 ls查看当前目录下的所有隐藏文件 ls查看/boot目录下面的所有目录 帮助的使用 内部命令 用 help command   或  man bash 外部命令 用 command --help 或  command -h 使用手册 man 信息页 info date命令: 显示昨天 : date -d yesterday 显示前天 : date -d '-2 day' 显示当天 :  date -d '0 day' +%F 显示当前日期,格式:2016-08-08 显示

51CTO学院三周年,我的linux学习思想分享

51CTO学院三周年了,我也关注学院三周年了,在51CTO的平台上,让我学到了很多的东西,也交到了很多朋友,每当你发一篇博文,总会有些志同道合的小伙伴们去点赞,甚至还会有大神高手,去指出你分享内容里面的不足.在和这些虚拟的未曾相识的朋友们的交流中我的技术得到了提高,时光荏苒,一晃都三年了. 首先我要感谢51CTO做的一个关于技术的分享平台,经过大家的分享,里面的博客已经非常丰富了,很多优秀的文章可以供我们去学习和分享.我是一名运维工程师,从事运维工作已经3年多了,每天上班的第一件事情就是登上我的