【linux】学习笔记

  1. 位、字、字节、kb

     位(bit):表示二进制位,0或1,计算机数据处理的【最小单位】,简写【b】。
     字节(Byte):每8位是一个字节,字节是计算机数据处理的【基本单位】,简写【B】。
     1【Byte】= 1【B】= 8【bit】= 8【b】
     512【Byte】= 0.5【KB】
     1【KB】= 1024【B】
     1【MB】= 1024【KB】
     1【GB】= 1024【MB】
     1【TB】= 1024【GB】
    
  2. linux常见指令

    1.ps                    查看系统当前活跃进程的命令
    2.netstat               显示网络状态,查看tcp连接
    3.df(disk free)       显示目前在linux系统上的文件系统磁盘使用情况
      df -lh                查看硬盘信息
    4.ifconfig  	        用于显示或设置网络设备,可以设置网络设备的状态或显示目前设置
    5.cat  			        从第一行开始显示文件所有内容 
      cat -n file1 file2    把文件1和文件2连接在一起,输出到屏幕,-n表示显示行号
    6.tac  				    从最后一行开始显示文件所有内容
    7.more  			    按页显示文件内容,只能向后翻页
    8.less  			    按页显示文件内容,可以通过按键控制前后翻页
    9.head  				显示文件前几行
    10.tail  				显示文件后几行
    11.arp -a 				显示arp缓冲区的所有条目
           -d 				从arp缓冲区删除指定主机的arp条目
    	   -D 				使用指定接口的硬件地址
    12.du   				显示目录或文件的大小或所占用的磁盘空间
    13.touch  				修改文件或目录的时间属性,若不存在该文件,就新建
    14.route  				用于显示和操作IP路由表,可以修改路由
    15.tcpdump  			监控网络接口上所有流过的数据包
    16.usermod -l new old 	修改用户账号名称
    17.ln file1 file2  		建立硬连接,file1为源文件,file2为目标文件(换句话说建立硬连接file2,并指向file1)
       ln -s file1 file2  	建立软连接
    18.history -n   		显示最近的n条记录
    		   -c  			将目前的shell中的所有history内容全部消除
    19.useradd -e   		指定账号有效期
    		   -m   		自动建立用户的登入目录
    		   -M   		不自动建立用户的登入目录
    		   -r   		建立系统账号
    		   -s  	指定用户登入后所使用的shell
    		   -d  	 		指定用户登入时的起始目录
    20.telnet  				远程登入
    21.ping    				用于检测主机,会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回消息。
    22.tracert 				跟踪路由,用于确定ip数据报访问目标所采取的路径。
    23.uptime  				用于查看服务器运行了多长时间以及有多个用户登录,快速获取服务器的负荷情况。
    24.tar -x  				从归档文件中释放文件
           -v  				详细列出要处理的文件
    	   -z  				通过gizp解压文件
    	   -f  				使用档案文件或设备
    25.jobs  				查看后台进程作业
    26.pg    				提供一次性的查看结果,但所提供的查看结果不是动态连续的
    27.option routers 192.168.0.1 				配置默认网关
       option subnet-mask 255.255.255.0 		配置子网掩码
       opthon domain-name-servers 192.168.1.1 	指定DNS服务器
       option domain-name-servers 				配置多个DNS服务器
    28.sed(采用流编辑模式,在sed处理数据之前需要余弦提供一组规则,sed会按规则编辑数据)
    	sed 's/AAA/BBB/g' xyz > xyz 将文件xyz中的单词AAA全部替换为BBB,(不修改源文件,只是把替换后的文件内容输出)
    	sed 's/AAA/BBB/g' xyz > xyz.tmp 或 sed -i 's/AAA/BBB/g' xyz > xyz.tmp (会修改源文件)
    29.lprm  				将一个工作由打印机列中移除
       lpq   				查看一个打印队列的状态及其所包含的打印任务
       lpd   				根据/etc/printcap的内容来管理本地或远端的打印机
       lpr   				讲一个或多个文件放入打印队列等待打印   
    
  3. 删除问题

    dd   	删除光标所在行
    ndd 	删除当前开始的连续n行
    dgg  	删除光标当前及以上的内容
    dG   	删除光标当前及以下的内容
    dH   	删除当前页面第一行至光标行
    n1,n2d  删除n1到n2行
    n,$d  	删除从n行开始至文本末尾
    p   	粘贴到光标下一行
    
  4. 文件类型和权限

    总共有10个字符。第一位表示文件的类型。
    d 	目录文件
    b 	块设备文件
    c 	字符设备文件
    s 	套接字文件
    p 	管道文件
    l 	链接文件
    
  5. vi全局替换方法

    :s/aa/bb/ 		替换当前行第一个aa为bb
    :s/aa/bb/g  	替换当前行所有aa为bb
    :n,$s/aa/bb/  	替换第n行开始到最后一行中每一行的第一个aa为bb
    :n,$s/aa/bb/g 	替换第n行开始到最后一行中的aa为bb
    :%s/aa/bb/g   	替换整个文件范围内的aa为bb
    :%s/aa/bb/    	替换每一行的第一个的aa为bb
    
  6. vi文本编辑器查找方式

    从上往下查找,\
    从下往上查找,?
    
  7. 输出重定向

    >   输出重定向到一个文件或设备,覆盖原来的文件
    >!  输出重定向到一个文件或设备,强制覆盖原来的文件
    >>  输出重定向到一个文件或设备,追加原来的文件
    <   输入重定向到一个程序
    
    【例子1】在bash中,在一条命令后加入“1>&2”的意义是:标准输出重定向到标准错误输出
    	标准输入-0,标准输出-1,标准错误输出-2;
    	>重定向,&2表示标准错误输出的通道
    	"1>2"表示标准输出重定向到文件名为2的文件。
    【例子2】当前目录下有a和b两个文件,执行命令“ls>c”,请问文件c里面的内容是什么?
    	(abc)
    	任何命令在执行时都会打开三个文件描述符,所以(ls>c)具体步骤是,
    	1.判断c是否存在,若不存在,则生成c文件
    	2.执行ls,其结果为abc
    	3.将结果通过管道重定向至c中
    
  8. 挂载设备和卸载设备

    挂载 mount
    卸载 umount + 设备名\挂载点
         umount /dev/hdc
         umount /mnt/cdrom
    
  9. linux重启开机等命令

    linux系统关机命令:halt 、shutdown -h now、poweroff
    linux重启:reboot、shutdown -r
    
  10. gcc编译指令

    -o 	用于指定输出的文本,若不指定,会默认输出.out文件
    -c 	对源程序.c进行预处理、编译、汇编,生成.o文件
    -s 	对源程序.c进行预处理、编译,生成.s文件
    -g 	加入GDB能够使用的调试信息,使得调试时比较方便
    
  11. 批量删除(当前目录)下的.c文件

    rm *.c
    find ./ -maxdepth 1 -name "*.c" | xrgs rm -rf
    
  12. 配置文件

    web服务器配置文件 	http.conf
    启动脚本配置文件  	initd.conf
    samba脚本   		rc.samba
    samba服务配置文件  	smb.conf
    
  13. 硬连接和软连接(符号链接)

    一、inode
        硬盘最小存储单位扇区,每个扇区存储512字节。当划分磁盘分区并且格式化时,整个分区会被划分为两个部分(inode取和data block区(实际数据存放的区域))
    当我们在访问目录或档案文件时,需要读取这个文件系统中的唯一标志Inumber。除此之外inode还包括三个时间信息:
        ctime,创建时间(inode上一次变动的时间);
        mtime,文件内容上一次变动的时间;
        atime,文件上一次打卡的时间;
    	以及链接数(有多少文件名指向这个inode)、文件数据block的位置、文件的读、写、执行权限。
    	查看inode号:ls -i [名称]
    
    二、软连接(自带不同的inode)
    方式:寻找源文件名-->源文件本身的inode-->源数据block
       	 ln -s [源文件/目录路径] [软连接放置的路径及名字]
       	 #设置连接时源文件要使用绝对路径, 不然链接会变红,无效
    
    三、硬连接
    透过文件系统的inode产生新的文件名,无法创建目录硬连接
    方式:硬连接别名+源文件名-->源文件本身的inode-->源数据block
        ln [源文件路径] [硬连接放置的路径及名字]
        #目录不能创建硬链接
        #不能跨分区系统创建硬链接
    
    四、硬连接和软连接的区别
        软连接支持文件和目录,且能跨分区系统;目录不能创建硬连接,且硬连接也不能跨分区系统创建;
        硬连接文件和源文件inode相同,软连接不同;
        删除软连接文件和硬连接文件,对源文件不产生影响;
        删除源文件,软连接失效,硬连接能继续访问内容;
        删除源文件和硬连接,整个文件会被真正删除。
        
    五、硬连接和软连接、拷贝的区别
        软连接:inode号不同,仅仅是一个快捷方式
        硬连接:inode号相同,实际是文件的一个别名
        拷贝:产生一个全新的文件,修改新文件内容和源文件无关
        
    六、磁盘满了通常是因为
       	inode号用完了(不经常)
       	磁盘空间用完了(经常)
    
  14. POSIX互斥量问题

    int pthread_mutex_destroy(pthread_mutex_t *mutex); 		销毁互斥锁
    int pthread_mutex_lock(pthread_mutex_t *mutex);   	    以原子操作方式给互斥锁加锁
    int pthread_mutex_trylock(pthread_mutex_t *mutex); 		非阻塞版本
    int pthread_mutex_unlock(pthread_mutex_t *mutex);  		以原子操作方式给互斥锁解锁    
    
  15. 文件

    etc文件  	一般存放程序所需要的整个文件系统的配置文件
    boot文件 	启动linux的核心文件,主要是与内核有关的相关文件
    usr文件  	软件安装的默认路径,本机软件和基本命令的文件
    bin文件  	存放的是可以被直接执行的指令,本机的所有用户都行 
    

你可能感兴趣的:(linux,服务器)