LINUX开发基础整理笔记

来源:互联网 发布:芭蕾舞服淘宝 编辑:程序博客网 时间:2024/05/14 11:42

LINUX基础学习完了,经过一周的学习也学到了很多东西,于是再把笔记好好整理了一遍复习了一遍,包括老师课上讲的,自己课外看的,和大家分享下吧~

命令行编辑的几个辅助操作

    快捷键Ctrl+alt+回车:全屏/退出

    快捷键Ctrl+alt+shift+F2:进入linux非图形界面

    Alt+F7:退出LINUX非图形界面

  Tab键:自动补齐
  反斜杠“\”:强制换行
  快捷键 Ctrl+U:清空至行首
  快捷键 Ctrl+K:清空至行
  快捷键 Ctrl+L:清屏
  快捷键 Ctrl+C:取消本次命令编辑
  •上述快捷键操作中一般使用小写字母(大小字母效果也相同)
  •Ctrl+L快捷键操作相当于内部命令“clear”的功能
  •Ctrl+C快捷键实际起中断的作用,还可以用于中止前台程序的运行
ls命令
  用途:列表(List)显示目录内容
  格式:ls  [选项]...  [目录或文件名]
  常用命令选项
  -l :以长格式显示
  -a:显示所有子目录和文件的信息,包括隐藏文件
  -d:显示目录本身的属性
  -A:类似于“-a”,但不显示“.”和“..”目录的信息
  -h:以更易读的字节单位(K、M等)显示信息
  -R:递归显示内容
  --color:以颜色区分不同类型文件
 
touch 创建文件和时间修改命令
       touch 文件名 创建新文件
     touch 用法 -a 仅修改访问时间  -c仅修改文件时间  -d 欲修改的时间 -m mtime修改 -t 格式YYMMDDHHMM 
 
cp 复制文件或目录

例:cp a.txt b 

*cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到b目录下*

mv 为文件或目录更名

例mv a.txt c.txt将a.txt移动成为c.txt (相当于重命名rename)

rm 删除文件或目录

rm a.txt
删除a.txt
rm -r /home/vamei 
删除从/home/vamei向下的整个子文件系统。-r表示recursive, 是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。
 rm -rf /   它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… )

mkdir创建一个新的目录

mkdir /home/vamei/good

rmdir 删除一个空目录

 

pwd 查看在哪个目录下
 
cd改变工作目录
格式 cd[路径] 
 
su 用户切换
格式 su[选项][使用者]
file命令
  用途:查看文件类型
  格式: file  文件名…
 
find命令

  用途:用于查找文件或目录
  格式:find  [查找范围]  [查找条件]
  常用查找条件
    -name:按文件名称查找
    -size:按文件大小查找
    -user:按文件属主查找
    -type:按文件类型查找
               -print : 打印查找结果

(我不太常用find,我一般都用locate命令查找,但在使用该命令前要先updatedb下
该命令是用来更新当天新建的内容,要更新后才能查找)
 

history的命令历史
  保存用户曾经执行过的命令操作

    历史保存文件~/.bash_history中
  查看历史命令
  history

目录 文件
  文件权限前的第一个字母用来标识文件类型:
  -:一般文件
  d:目录文件
  b:块设备文件
  c:字符设备文件
  l:链接文件
  p:人工管道

文件权限系统,将操作文件的用户都分成三类
  文件的拥有者(u)
  文件所属组的成员(g)
  其他用户(o)

  读(r)4 :用户是否有权力读文件的内容
  写(w)2 :用户是否有权利改变文件的内容
  执行(x)1 :用户是否有权利执行文件

添加用户帐号
       useradd命令
  格式:useradd  [选项]...  用户名
  常用命令选项
    -u:指定 UID 标记号
    -d:指定宿主目录,缺省为 /home/用户名
    -e:指定帐号失效时间
    -g:指定用户的基本组名(或UID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shell

用户帐号的初始配置文件
  ~/.bash_profile:用户每次登录时执行
  ~/.bashrc:每次进入新的Bash环境时执行
  ~/.bash_logout:用户每次退出登录时执行

 

修改用户帐号的属性
  usermod命令
  格式:usermod  [选项]...  用户名
  常用命令选项
  -l:更改用户帐号的登录名称
  -L:锁定用户账户
  -U:解锁用户账户
  以下选项与useradd命令中的含义相同
  -u、-d、-e、-g、-G、-s

删除用户帐号
  格式:userdel  [-r]  用户名
  添加 -r 选项时,表示连用户的宿主目录一并删除

useradd 增加用户
userdel  删除用户
usermod  修改用户
groupadd  增加组
groupdel  删除组
groupmod  修改组
passwd   设置密码
chpasswd  用文件配置修改密码

更改文件的所有权
  改变文件的所有权命令chown
  改变用户分组命令chgrp
  改变文件属性命令chmod

修改密码的有效期
  chage命令
  格式:chage [选项]...  用户帐号名
  常用命令选项
  -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  -M 密码保持有效的最大天数。
  -W 用户密码到期前,提前收到警告信息的天数。
  -E 帐号到期的日期。过了这天,此帐号将不可用。
  -d 上一次更改的日期
  -i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

  

设置文件系统的自动挂载
       /etc/fstab配置文件
       包含了需要开机后自动挂载的文件系统记录

       [root@localhost ~]# vim  /etc/fstab
  设备位置                              挂载点     文件系统类型                     开机是否检测         优先级
                                                                                                      磁盘错误               (默认为0)
  (1:检测 0:不检测)
  /dev/VolGroup00/LogVol00       /             ext4      defaults                 0                         0

  UUID=硬盘的UUID号                        /boot         
  (设备位置建议使用UUID号)

Linux 定时任务
命令:     at
  用于在制定的时间点一次性的执行命令.
  打开at服务:
  service atd start
  at 23:45
  at> shutdown -h now     此处输入要执行的命令
       完成按ctrl + d 结束

    

文件内容操作命令—— grep
  用途:在文件中查找并显示包含指定字符串的行
  格式:grep  [选项]...  查找条件  目标文件
  常用命令选项
  -i:查找时忽略大小写
  -v:反转查找,输出与查找条件不相符的行
  查找条件设置
  要查找的字符串以双引号括起来
  “^……”表示以……开头,“……$”表示以……结尾
  “^$”表示空行

              基本的正则表达式

d文字:字母 “d”dog*修饰符:前一个字符出现零次或多次hel*o.通配符:任意单个字符test.txt[]通配符:集合中的任意单个字符file[1234][^]通配符:不在集合中的任意单个字符file[^0-9]^定位点:行首^test$定位点:行尾test$.*.(任一字符)与*(零或以上)的组合^test.*123\将下一个字符视为文字test\.$\<锚定单词的开始\<love                     lovea lover\>锚定单词的结束love\>                    alove glove

 

归档及压缩命令 —— tar
  tar命令
    用途:制作归档文件、释放归档文件
    格式:tar  [选项]...  归档文件名  源文件或目录
             tar  [选项]...  归档文件名  [-C 目标目录]

    常用命令选项
      -c:创建 .tar 格式的包文件
      -x:解开.tar格式的包文件
      -v:输出详细信息
      -f:表示使用归档文件
      -p:打包时保留原始文件及目录的权限
      -t:列表查看包内的文件
      -C:解包时指定释放的目标文件夹
      -z:调用gzip程序进行压缩或解压
      -j:调用bzip2程序进行压缩或解压

制作压缩包文件
         tar jcf test.tar.bz2 /etc/httpd/
释放压缩包文件
         tar jxf test.tar.bz2 -C /

系统监视
    uname:显示系统信息
  hostname:显示主机名
  last:列出最近的用户登录
  lastlog:列出每一个用户的最近登录情况
  free:显示内存使用状况
  top:系统监视器
查询进程的指令:
  ps  [option]
  pstree可以用来以树状的方式表现进程的父子关系
  top是一个常用的系统监视工具。

 

规划硬盘中的分区
  fdisk命令
  用途:在交互式的操作环境中管理磁盘分区
  格式:fdisk  [磁盘设备]
  fdisk -cu /dev/sdb
  交互模式中的常用指令
    m:查看操作指令的帮助信息
    p:列表查看分区信息
    n:新建分区
    d:删除分区
    t:变更分区类型
    w:保存分区设置并退出
    q:放弃分区设置并退出
在分区中创建文件系统
  将新硬盘分好区以后,还需要对分区进行格式化(即创建文件系统),并挂载到Linux系统中的指定目录下,然后才能用于存储文件、目录等数据

mkfs命令
       用途:Make Filesystem,创建文件系统(格式化)
       格式:mkfs -t 文件系统类型 分区设备

  -t 的参数如下
       ext4         ext3     ...
  查看RHEL支持的分区类型,可以输入 mkfs. 再两次tab查看.
  mkfs.cramfs     mkfs.ext3     mkfs.ext4dev     mkfs.vfat
  mkfs.ext2        mkfs.ext4     mkfs.msdos
  去掉 mkfs.就是 -t 的参数

  

free命令 查看内存
  功能说明:显示内存状态。

  补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

  参  数:
   -b  以Byte为单位显示内存使用情况。
   -k  以KB为单位显示内存使用情况。
   -m  以MB为单位显示内存使用情况。
   -o  不显示缓冲区调节列。
   -s<间隔秒数>  持续观察内存使用状况。
   -t  显示内存总和列。
   -V  显示版本信息。

光盘制作iso镜像
         cp /dev/cdrom /aaa.iso

挂载光盘镜像
         mount  -o loop  ISO镜像文件  挂载点目录

              

ifconfig 查看网络接口信息
       -a 查看所有接口
       eth 第一个以太网卡.
            route 查看主机的路由信息.

       ping查看网络连通性
            traceroute测试当前主机到目标主机之间经过的所有网络节点.
            hostname显示当前主机名称.
       nslookup可以进行域名的查询.

ip配置命令
        ifconfig eth0 192.268.0.1    
  设置网关
        route add default gw 192.168.0.154
  主机名设置命令
         hostname server2.example.com
  以上命令即时生效, 重启后丢失

 

VIm编辑器

     vim配置文件 /etc/vimrc

     在该配置文件中编辑

     :set nu显示行号 

     :set ts=3缩进宽度

     :set mouse=a用鼠标滚动查看

     重启也会有效


     VIm中指令模式下按G切换到最后一行,nG切换到第n行,1G切换到第一行
   H 将光标移动到屏幕的最上行

     :wq保存并退出

       yy复制

       p粘贴

       u撤销一次

 

vim命令就不多说啦,还是比较好撑握的 

 

ssh服务
  主要软件包:openssh-server、openssh-clients
  服务名:sshd
  服务端主程序:/usr/sbin/sshd
  客户端主程序:/usr/bin/ssh
  服务端配置文件:/etc/ssh/sshd_config
  客户端配置文件:/etc/ssh/ssh_config

    

Samba服务
       Samba服务器的主要程序
  smbd:提供对服务器中文件、打印资源的共享访问
  nmbd:提供基于NetBIOS主机名称的解析
  安装
    yum install samba

  启动服务
         service smb start
  Samba的配置文件
        /etc/samba/smb.conf

  创建samba用户
            从系统用户创建samba用户
              smbpasswd管理命令,常用的选项:
      -a:添加指定的Samba帐号
      -d:禁用指定的Samba帐号
      -e:启用指定的Samba帐号
      -x:删除指定的Samba帐号
      -h:显示帮助信息
      不指定选项时可以修改指定Samba帐号的密码

配置共享目录项
       [name]          共享目录名
        comment:对共享目录的注释、说明信息
    path:共享目录在服务器中对应的实际路径
    browseable:该共享目录在“网上邻居”中是否可见
    guest ok:是否允许所有人访问,等效于“public”
    writable:是否可写,与read only的作用相反
 Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限


       如果远程登录可以看到目录无法打开是由于SELinux拒绝.
  输入 chcon -t samba_share_t /path 解决
                      详细参照samba配置文件

NFS的基本概念
       NFS是系统间进行文件共享的一种网络协议
       在NFS的应用结构中有服务器和客户机两种角色
       NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录
       在同一台主机中即可以是NFS服务器也可以作为NFS客户机
       软件包: nfs-utils

NFS服务器的配置文件
      /etc/exports
    “exports”文件用于配置NFS服务器中输出的共享目录
      /home/share     *(sync,ro)
     nfs共享目录名     客户端主机地址(设置选项)
              查询某一主机的共享目录
         showmount -e 192.168.0.111

     nfs服务进程名: nfs
     查询服务器的状态
     为了保证NFS服务器能够正常工作,系统中需要运行portmap和nfs两个服务程序
    # service nfs status
  启动服务器
    # service nfs start
  停止服务器运行
    # service nfs stop

 

 

Linux 防火墙
       setup用于打防火墙设置来关闭或打开

由init进程调用执行
    完成设置网络、主机名、加载文件系统等初始化工作

    /etc/rc.d/rc脚本文件
      由init进程调用执行
      根据指定的运行级别, 加载或终止相应的系统服务
    /etc/rc.local脚本文件
          由rc脚本调用执行
          保存用户定义的需开机后自动执行的命令
默认的7种运行级别
    0:关机状态
    1:单用户模式
    2:字符界面的多用户模式(不支持网络)
    3:字符界面的完整多用户模式
    4:未分配使用
    5:图形界面的多用户模式
    6:重新启动

  
  

Bash 编程
       Shell 变量
  
  引用和转义
    弱引用 “” 保留扩展(输出的是值)
    强引用  ‘’  禁用扩展(把其中内容原封不动的输出)
  转义   \

  循环
    for i in item1 item2;
    do
     cmd1; cmd2;
    done
  条件分支(判断)
    if cmd;
     then
      cmd1;
      cmd2;
     elif
      cmd3;
    fi

(3个以下的条件用if ,3个以上的条件用case)

  

    case VariableName in
   value1)
    instruction
    ;;
   value2)
    instruction
    ;;
   *)
   default
   ;;
  esac

 

for 变量名 in单词表

do

命令表

done

 

输出重定项

例ls  1>ls.txt

0标准输入

1标准输出

2标准错误

 

输入重定项

wc -l <smb.conf

wc -l 统计有多少行

wc -c 统计有多少字符

wc -w 统计有多少单词

 

管道“|”

cat smb.conf | grep "root"

将左边的指令做为输入源再给右边的指令

 

命令别名设定

alias   unalias

alias rm='rm -i' 定义

unalias -a rm    删除

 

 

 

 

yum 源安装 (本地源)

实现步骤

1.cd/etc/yum.repos.d 配置文件位置

2.屏蔽网络源 网络源名称(CentOs-Base.repo) 可以更名也可以删除

3.gedit CentOs-Media.repo 编辑文件

4.设置文本中从光盘挂载改为file:///mnt/cdrom

   再把enabled=0改为enabled=1 ,gpgchech=0

5.挂载光盘 mount /dev/cdrom /mnt/cdrom

6.yum search 软件名     (查找)

7.yum install 完整软件名  (安装)

8.卸载光盘 umount /mnt/cdrom

注:本地源改为网络源需先还原CentOs-Base.repo文件,打开CentOs-Base.repo修改enabled=0即可。

 

 

 


 以上先归纳到这里,关于shell里面的一些内容,gcc,make 下一篇文章会用举例的方式来说明