linux基础

 

linux 系统笔记 

 

shell 学习:http://www.jb51.net/article/25729.htm

 

一、常用命令 

1.Linux 系统shell分类:Bourne shell(sh),C shell(csh),Korn shell(ksh) 

注释:sh是unix最初使用的shell,在编程方面非常出色,但在处理用户之间交换做的不如其他shell,linux系统缺省使用的shell是 

      Bourne Again shell(bash),对普通用户用用$做提示符,对超级用户root用#作提示符csh是一种更适合于编程的shell,他的 

      语法和C语言相似,ksh结合了sh和csh的优点 

2.ls  该命令用来列出当前目录下的所有文件和子目录,相当于windows的dir命令,常用的参数有三个:-a,-l,-f 

      -a 显示所有文件,包括隐藏文件 

      -l 查看更详尽的文件资料 

      -f 在列出的文件(目录)后加个符号,例如:可执行文件加*,目录则加‘/’ 

3.cp 该命令式用来复制文件,相当于dos下的copy命令, 

     使用格式: cp -r源文件(source) 目的文件(target)  

     文件复制并可以覆盖原来的文件

     1) 将new目录下的所有文件拷贝到test下,并覆盖test下的文件(这个总会提示是否要覆盖文件)

        cp -rf new/* test  

      2) 功能同上,但不会提示覆盖

        yes | cp -rf new/* test 

 

4.rm 该命令用来删除文件,常用的参数有-i,-r,-f 

     -i 在删除文件时要先询问我们是否要删除,输入y则删除 

     -r 和rmdir命令相同,不过比rmdir功能更强大,-r是连同这个目录下的子目录一起删除 

     -f 不经确认强制删除 

5.mv 可以用来移动文件和重名文件,如: mv /temp/test.txt /root   mv  test.txt t1.txt 

6.ps 进程及任务管理,参数 -e 显示所有进程 -f 全格式 -l 长格式 -x后台进程  

        ps -aux|grep www.project.com  

 

7.pwd 表示当前路径 

8.whoami 表示当前用户 

9.设备不能直接用cd 命令进入,应为设备不是一个目录,如cd cdrom将报错,如果要访问必须将cdrom挂载到一个目录下,例如: 

  mount /dev/cdrom /mnt/cdrom 表示将cdrom挂载到mnt目录下的cdrom文件夹下,然后我们就可以访问挂载的那个文件访问cdrom 

  里的内容了。如果不想挂载了用命令 unmont /dev/cdrom 就把/dev/cdrom 卸载了。 

10.装linux操作系统至少两个分区,/ 根分区  swap 交换分区 

11.linux的启动过程 

   a.load bios 

   b.read MBR's config to find out the OS(找到要启动的操作系统) 

   c.load the kernel of the OS(操作系统) 

   d.init process starts 

   e.execute /etc/rc.d/rc.sysinit 

   f.start other modules(etc/modules.conf) 

   g.execute the run level scripts 

   h.execute /etc/rc.d/rc.local 

   i.execute /bin/login 

   j.shell started 

12.linux 的run level 启动级别 

   命令:init n 

   0:系统停机状态 

   1: 但用户工作状态 

   2:多用户工作状态(没有NFS(网络文件系统)) 

   3: 多用户工作状态(有NFS) 

   4:系统未使用,预留的 

   5:图形界面 

   6:系统正常关闭并重启 

13.logout 注销 

14.显示命令参数的用法 用man 命令;或 命令 --help 

15.touch 创建文件 

16.more 查看文件内容,并分页 

16.cat 正序查看文件内容 

17.tac 逆序查看文件内容 

18.head 查看文件前几条记录,可以带参数 

19.tail 查看文件末尾几条记录,可以带参数   

      tail -f -n100  filename  显示末尾100行数据

 

20.find 查找文件 例如:find / -name *local  在根目录下查找文件名后缀是local的文件 

      find /test -name  file1.txt    查找/test目录下名字为file1.txt 的文件

21.whereis 命令  表示命令从哪里来的(文件的地址) 

22.echo 输出命令 例如:echo $path 表示输出path环境变量的值,变量用$表示 

23.grep 查找字符 文件名 表示在文件中查找包含查找字符在文件中的行并显示 

 

24.fdisk -l 显示磁盘的信息 

25.ctrl+c 执行停止 

26.| 管道 例如:ls -l | grep "^d"  表示显示当前目录下的所有文件 

27.wall 内容 表示广播消息,每个登陆的用户都会受到同样的消息 

28.>输出重定向 例如:ls > cmd.txt 把内容输出到cmd.txt文件中 

29.<输入重定向 例如:wall < aa.txt 把文件中的内容输入到控制台中 

30.reboot 重启 

31.startx 进入图形界面 

32.chkconfig 检查配置文件,参数--list 显示所有的配置列表,--add 增加,--del 删除,--level 启动级别, 

   例如:chkconfig --level 5 vsftpd on在图形界面下启动vsftpd 

         chkconfig vsftpd on 在所有级别上都启动vsftpd 

33.wget 命令行下连接网络资源 

34.kill 进程号 杀死进程。参数 -9 表示强制关闭 

35.以.开头的都是隐藏文件 

36.shutdown -h now 立即关机 

   shutdown -r now 立即重启 

   logout 注销 

37.修改系统启动级别要修改文件/etc/inittab 文件 

   1)如果你现在系统默认启动进入图形用户界面,则修改这个文件就可以实现默认启动进入命令行模式

    vi /etc/inittab 

    最后一行中# Run xdm in runlevel 5 下面

    x:5:respawn 这里面的5改成3 就可以了

 

38.按两下tab键会自动补全 

39.df 目录名 表示目录属于哪个分区 

40.chsh -s shell的目录 表示更改shell  例如 :chsh -s /bin/csh  更改shell后要注销用户,不然不起作用 

41.history 显示最近使用的命令 

42.网络设置 

   第一种方法: 

   a.root 用户登录过后,输入setup命令 

   b.在进入的页面text mode setup utiliy中选择network configration 就可以设置ip,子网掩码,网关,dns 

   c.输入/etc/rc.d/init.d/network restart 就能生效了 

   第二种方法: 

    修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,再输入/etc/rc.d/init.d/network restart 就能生效了 

43.任务调度crontab -e 

   终止任务调度 crontab -r 

   列出调度任务 crontab -l 

44.cal 年 查看日历 

45.alias 别名名字=‘命令’  给命令起别名 

46.查看文件大小 

  du -sh filename 

47.vi 分页 

  ctrl+u向前翻滚半屛,ctrl+d向后翻滚半屛 

  ctrl+b向前翻滚全屛,ctrl+f向后翻滚全屏 

48.vi打开文件时光标定位 

  vi +n filename  //打开文件时光标定位在第n行 

  vi + filename  //打开文件时光标定位在最后一行 

49.ddp vi的上下两行交换 

50.修改linux启动级别 

  修改的/etc/inittab 文件 initdefault 

二、硬盘分区 

  1.一个硬盘最多只能分四个分区,也就是说主分区加扩展分区最多只能有四个,因为硬盘的分区表上只能记录四条记录,扩展分区又可以分多个逻辑分区,逻辑分区没有限制个数。 

  2.dev 设备,所有的分区都存在这个目录下,所有的linux分区的命名格式是:/dev/xxyN 

    xx表示设备的类型,通常是hd(IDE硬盘)或sd(SCSI硬盘) 

    y表示分区所在的设备(哪一块硬盘,字母从a开始),例如:/dev/hda(第一个IDE硬盘)或 

     /dev/sda(第一个SCSI硬盘) 

    N是数字表示分区,前四个分区(主分区和扩展分区)是从数字1到4排列,逻辑分区从5开始 

     例如:/dev/hda3表示第一块IDE硬盘上的第三个主分区或扩展分区,/dev/sdb6表示第二块 

          SCIS硬盘的第二个逻辑分区 

 

三、编辑器命令 vi 

  1.vi有两种模式,一种是命令模式,一种是编辑模式,模式切换用esc 

  2.输入a 表示添加(编辑) 

  3.在命令模式下输入:表示要执行什么命令,后跟w表示要存盘,q是退出,q!是不存盘退出,wq存盘退出 

  4.在命令模式下敲dd 删一行,dw删一个单词,o往下插入一行,O往上插入一行 

  5.替换字符串:在命令模式下输入s/test/test1 表示把第一个test替换为test1; 

                s/test/test1/g 表示把当前行所有test替换为test1; 

n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good 

  6.显示行号:set nu 

  7.ctrl+v 可视区域模式 

  8.1,3d 删除1到3行的数据 

  9.3dd 删除当前行开始的三行数据 

 

10 拷贝, 删除与粘贴

   在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴 其中拷贝与删除是与光标移动命令

结合的, 看几个例子就能够明白了

 

yw              表示拷贝从当前光标到光标所在单词结尾的内容

dw              表示删除从当前光标到光标所在单词结尾的内容

y0              表示拷贝从当前光标到光标所在行首的内容

d0              表示删除从当前光标到光标所在行首的内容

y$              表示拷贝从当前光标到光标所在行尾的内容

d$              表示删除从当前光标到光标所在行尾的内容

yfa          表示拷贝从当前光标到光标后面的第一个a字符之间的内容

dfa          表示删除从当前光标到光标后面的第一个a字符之间的内容

 

特殊地:

yy              表示拷贝光标所在行

dd              表示删除光标所在行

D             表示删除从当前光标到光标所在行尾的内容

 

关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询

 

11 撤销操作   

     u撤销一次

 

 12   快速移动光标

   在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑 因此能更快一点移动光标是很有用的

w(e)          移动光标到下一个单词
b             移动光标到上一个单词

0             移动光标到本行最开头
^             移动光标到本行最开头的字符处
$             移动光标到本行结尾处

H             移动光标到屏幕的首行
M             移动光标到屏幕的中间一行
L             移动光标到屏幕的尾行
gg              移动光标到文档首行
G             移动光标到文档尾行
c-f          (即 ctrl 键与 f 键一同按下) 本命令即 page down
c-b          (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up

''          此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查
            找到某个单词后, 再输入此命令则回到上次停留的位置

'              此命令相当好使, 它移动光标到上一次的修改行

`              此命令相当强大, 它移动光标到上一次的修改点

 

 

 

 

 

四、用户管理 

  1.添加用户 useradd 用户名  创建的用户放在home目录下,用户信息存在/etc/passwd文件下 

  2.修改用户密码 passwd 用户名 -g 组名 

  3.添加组 groupadd 组名 组信息存在/etc/group 文件下 

  4.修改用户的组 usermod -g 组名 用户名 

  5.删除用户 userdel 用户名  删除用户时 home目录下的用户还是存在,还要执行 rm -rf 用户名 

  6.切换用户su(switch user) 用户名 

  7.更改文件组 chgrp 组名 文件名 

  8 给用户添加管理员权限 

     vi /etc/sudoers 

     下面文字下面添加一个需要的用户就可以了

      ## Allow root to run any commands anywhere

      root    ALL=(ALL)       ALL

 

 

五、文件权限 

  1.文件权限的表示方式,共三种,r(读),w(写),x(执行), 

    例如:-rw-rw---r 第一个字符表示目录或文件(-为文件,d为目录),后面九位表示文件或目录的权限,前三位表示当前所有者的 

          权限,中间三位表示当前所有者同组用户的权限,后三位是其他组的权限。 

  2.修改文件或目录权限命令,有两种写法,例如: chmod +x 1.txt、chmod u+x 1.tx、chmod g+x 1.tx、chmod o+x 1.txt 

    或者 chmod 755 1.txt 

  3.修改文件或目录属有者:chmod 用户名 文件名 

 

 

六、linux ftp的使用(默认的ftp server 是vsftp) 

  1.架设ftp server 

  2.启动ftp命令:service vsftpd start;重启命令:service vsftpd restart 

  3.停止ftp命令:service vsftpd stop 

  4.修改vsftp server的参数在文件/etc/vsftpd/vsftpd.conf中 

  5.查看服务是否启动 

  6.设置网络的命令:ifconfig 

  7.  防火墙命令:

      1)重启后生效 

             开启: chkconfig iptables on 

            关闭: chkconfig iptables off 或者 /sbin/chkconfig --level 2345 iptables off

2) 即时生效,重启后失效

service 方式

开启: service iptables start 

关闭: service iptables stop

iptables方式

查看防火墙状态:

/etc/init.d/iptables status

暂时关闭防火墙:

/etc/init.d/iptables stop

重启iptables:

/etc/init.d/iptables restart

 

 

  8.ftp的根目录:/var/ftp 

  9.默认的匿名用户(anonymous)可以下载不能上传 

  10.vsftp 拒绝访问用户配置文件:/etc/vsftpd/vsftpd.user_list和vsftpd.ftpusers 把里面特定的用户删了就可以登录了 

  11.上传命令:put 

  12.vsftpd开机自启动,有两种方式,第一种是该rc.local文件,在文件中加/user/local/bin/vsftpd & (&表示是一个后台进程), 

     第二中方式是用chkconfig --level 5 vsftpd on。 

 

七、jdk的安装 

  1.安装jdk,下载jdk的安装文件(.bin文件,也可以是其他文件),在jdk目录下敲命令./jdk安装文件就可以执行了,执行完后 

    默认安装在了/usr/java目录下,如果是rpm文件,那么就直接执行命令:rpm -ivh jdk的rpm文件 

  2.设置临时环境变量(linux关闭,重开环境变量不再起作用),如JAVA_HOME,命令JAVA_HOME=jdk安装目录 回车 

    再输入命令 export JAVA_HOME 

    设置全局环境变量(重启后不变):修改/etc/profile文件或/etc/rc.local文件 在文件中加JAVA_HOME=jdk安装目录 回车 

    再输入命令 export JAVA_HOME 

    显示环境变量:echo $JAVA_HOME 

   如: 设置完了应该如下:

       export JAVA_HOME=/usr/local/jdk1.6.0_11

        export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

       export CLASSPATH=$JAVA_HOME/lib/:$JAVA_HOME/jre/lib:$CLASSPATH

 

  3.jdk卸载 

    首先用命令查看linux操作系统下都安装了那些jdk的包,命令:rpm -qa | grep jdk 

    然后用命令:rpm -e 找到的jdk包或rpm -e --nodeps  找到的jdk包(把依赖的包也删了) 

   

   4 一些常用格式文件的安装方法。

       http://lanxuezaipiao.blog.163.com/blog/static/93779965201291275419888/

八、安装tomcat 

  1、到网上下载tomcat的压缩文件,如.gz的压缩文件,先用gzip命令解压成tar文件,例如:gzip -d tomcat的gz文件,解压出来的 

     tar文件在用tar命令解压文件,例如:tar -xvf tomcat的tar文件 

  2.启动tomcat命令:在tomcat的bin目录下敲:./startup.sh 注意执行这个命令前一定要设置JAVA_HOME环境变量

 九 linux间文件传输scp 

     scp介绍:主要可以再两个linux主机间复制文件(远程到本地或本地到远程都可以)

     命令格式:scp:  [可选参数] file_source file_target (是需要输入密码的)

     本地文件拷贝到远程文件: 

    scp local_file remote_username@remote_ip:remote_folder 

   scp -r /web/hadoop-2.2.0/ node1  将目录/web/hadoop-2.2.0/ 复制到机器node1中相同的目录内

十、ssh生成秘钥

    1  在master中生成公钥

        ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

        -t 秘钥类型,有两种RSA和DSA

        将生成一个公私钥的目录,这个目录是隐藏的,可以用ls -a  看到 

    2 将公钥拷贝一份并换成另一个名字

       cat id_dsa.pub >> authorized_keys 

 十一、GRUB引导程序

      linux中GRUB是系统的引导程序,可以再开机的使用按Esc键就可以进入该引导程序

 

  十二、hosts位置  :/etc/hosts ;

            环境变量位置:/etc/profile 

 

  十三、启动bat文件时候如果关闭窗口程序自动停止,需要后台运行 ,这是要添加  & 

         ./start.bat & 

 

   十四、 lrzsz 上传下载工具 

      安装   yum install lrzsz         使用: sz 文件名   rz 文件名

   

   十五、监听tomcat是否正在运行,没有的话就重启 ,需要卸载任务里面。

     netstat -tln |awk '{print $4}' |grep 9000  || {

   #/usr/local/php/bin/php-cgi -q -b 9000 -c /usr/local/php/bin/php.ini &

   sh /opt/apache-tomcat-6.0.20/bin/startup.sh

     } 

 

 

摘自网络 

 

 

你可能感兴趣的:(编程,linux)