linux基础总结
来源:互联网 发布:windows运行python脚本 编辑:程序博客网 时间:2024/05/07 21:31
linux学习总结
linux U盘安装报错:
centos7 /dev/root does not exist;由于找不到U盘所以安装失败了;sda 是我的硬盘对应的文件名(我机子只有一块硬盘),所以sdb就是U盘对应的文件名了,可以看到是sdb4。查看U盘设备名称,在install centos 7 选项上按下e键进行编辑;修改启动的引导内容即可完成;至此我们重启一下,回到第一个图片所示的界面处,然后按下Tab键将vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 改为:vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quite
操作系统基础
硬件----》kernel内核---》library,API接口-----》应用程序;application program interface;不同的操作系统库是不一样的;CPU有四个级别,最内层是特权级别,只有内核才能运行。应用程序是无法直接操作0级别的。
linux系统基础
shell:shell,bash shell,csh,ksh,zsh,tcsh;不同shell操作命令可能不同。一般是bash。用户登陆:有个UID进行标识,系统是根据UID来进行识别不同用户的。注意:为了最大化发挥应用程序的性能,最好是不要用别人已经编译好的进行安装,由于编译过的应用程序 可能无法很好的结合你现有的硬件,所以,为了最大化发挥软件效果最好使用源码进行编译安装、运行。 gentoo这个系统很多是需要进行重新编译的。发行版:fedora,redhat,centos,suse,debian(ubuntu,mint),gentoo,LFS(构建一个linux)
linux文件管理命令
目录管理: ls: cd: pwd: mkdir: rmdir: tree:文件管理: touch: stat: file: rm: cp:复制一个文件到一个文件或者多个文件到一个目录。如果是链接文件默认复制是链接的那个文件,而并非该链接默认-l。 选项:-r:复制目录。-a:复制该文件及其属性,常用于备份。-f:强制复制。-d:保持链接。 注意:一般来说谁复制的一般归属在该用户下的。-p来保留原来文件的归属属性。 eg:# cp anaconda-ks.cfg /opt/my mv:命令,移动一个文件或者目录到目标位置(重命名功能)。 install:复制一个文件并且可以指定其中属性。创建目录 选项:-d:用来创建目录。 nano:日期时间: date: clock: hwclock: cal:文本查看: cat:连接并显示文件,多个文件可以进行连接。从标准输入读取内容,从标准输出进行输出。 选项:-n:显示行号;-E:end显示每一行的行结束符,linux结束符$,windows为$\n -A:显示所有内容。 tac:内容与cat相反,从尾部显示到头部。 more:查看文件内容,可以使用; less:经常使用查看文件的命令。可以向前向后翻。 head:查看前n行,默认是10; 选项:-n num:加行数; tail:查看文件末尾n行,默认是10; 选项:-f:显示文件内容并不马上退出,(可以实时查看尾部新内容进行显示的); 非常有用的命令,日志什么的都可以使用这个进行实时操作。文本处理: cut:文本处理,连接使用join。文本切割。 选项:-d 分隔符:使用什么进行分隔的,指定分隔符,默认是空格; -f 字段值:显示第几个字段。-f 1,3:显示第一列和第三列;-f 1-3:显示从第一列到第三列。 eg:文本文件内容:tom:123:程序员:未婚:/bin/bash;cut -d : -f 1-3 /etc/passwd文本排序: sort:默认为升序,sort 文本文件。根据ascii码进行排序的。可以指定分割符然后进行字段排序。 选项:-r:反向排序。-n:按照数字大小进行排序。 -t:指定分隔符。-k:表示以哪个字段为关键字进行排序。 -u:相同内容相同行只是显示一个。 -f:排序时忽略字符大小写。 sort -t -k3 /etc/passwd sort -t -k3 -n /etc/passwd:按照第三个字段进行数字方式排序。 uniq:报告或者忽略相同的行。(只有相邻的相同的行才叫重复行) 选项:-d:只显示重复的行。-D显示所有的重复的行。 -c:显示每一行重复的次数。文本统计: wc:(word count)文本统计命令。 wc /etc/fstab; 选项:-c:字节数;-m:字符数;-l:行数。-w:单词数。 tr:转换或者删除字符。eg:tr 'ab' 'AB';使用输入重定向进行字符替换。tr 'ab' 'AB' < /etc/passwd tr 'a-z' 'A-Z' < /etc/passwd; 选项:-d:删除出现在字符集中的所有字符。逐个字符进行处理的。
bash特性
不同的shell运行,每个shell就是一个进程。在每个进程看来,当前主机上只存在内核和当前进程,看不到其他进程。进程是程序的副本,进程是程序执行的实例。可以在shell进程中启动另一个shell进程。shell有父子进程。可以使用“pstree”来查看进程之间的关系。命令别名:为命令启用一个命令别名。在shell中定义的别名,仅仅在当前生命周期有效。 alias查看别名。 alias:alias cmdalias=command [options] [arguments] help alias eg:alias cls=clear alias ll="ls -l"$(命令):将命令执行结果返回。命令替换。反引号:`命令` eg:echo "the current dir is $(pwd)" 返回当前目录的路径。 touch ./file-$(date +%F-%H-%M-%S).txt bash支持的引号: ``:反引号,命令替换。 "":弱引用,可以实现变量替换。 '':强引用,不完成变量替换。文件名通配:globbing。 *,?,[],
命令行编辑:
ctrl+a:跳到命令行首。ctrl+e:跳到行尾。 ctrl+u:删除光标至命令行首的内容。ctrl+k:删除光标至命令行尾的内容。ctrl+l:直接清除屏幕;
命令历史
history:查看历史命令功能。命令历史在内存缓存中。退出shell后面就没有了,在内存中的命令会保存到文件中。 在用户的根目录下:.bash_history文件中,存放着用户的命令历史。默认缓存保存1000条;选项:-c:清空命令历史。 -d 500:删除第500个。 -d 500 10:删除从第500个接下来的10个。-d offset [n] -w:将缓冲区的命令写到文件中。 echo $HISTSIZE 1000条。 !n:执行命令历史中的第N条命令。 !-n:执行命令历史中倒数第N条命令。 !!:执行上一条命令; !string:执行命令历史中最近一个以指定字符串开头的命令。 !$:引用前一个命令最后一个参数。
用户权限管理
机器识别用户根据每个用户的UID进行识别。识别用户组有个gid;进程的安全上下文:每个用户发起操作计算机,就是发起进程,进程就是用户操作计算机的代理。这个进程能访问那些权限,取决于操作这个用户的权限。权限:rwx;文件:r:可读,类似cat等命令查看文件内容。w:可写,可以编辑或者删除文件。x:可执行,可以命令提示符下当做命令提交给内核。目录: r:可以对目录执行ls列出内部文件。w:可以创建文件。x:可以使用cd切换到次目录,可以使用ls -l查看内部文件详细信息;用户:UID :数据库/etc/passwd;(用户名:密码:用户ID:基本组ID:家目录;执行shell)可以使用man /etc/passwd mysql:x:1000:1001::/home/mysql:/bin/bash memcache:x:1001:1002::/home/memcache:/bin/bash nginx:x:1002:1003::/home/nginx:/bin/bash组:GID,/etc/group查看组的数据库;影子口令:用户密码在/etc/shadow;组密码在/etc/gshadow用户类别UID: 管理员: 0 ; 普通用户: 1-65535 系统用户:1-499;一般用户:500 - 60000用户组类别: 私有组:创建用户时,如果没有指定所属组,系统会自动为其创建一个用户同名的组; 基本组:用户的默认组; 附加组:额外组,默认组以外的其他组;程序执行的权限判断: 进程运行:tom tom 使用该进程运行的用户和用户组来匹配对象(文件)中:rwxrw-r-- jerry tom a.txt tom用户执行:ls ,匹配到了其他用户权限,r-x;执行后进程ls 运行用户tom 组tom; 对象:rwxr-xr-x root root /bin/ls 使用ls a.txt;检测发起者tom的所属组;来匹配a.txt的权限。whatis passwd查看passwd可以看出这个有几个级别的man; passwd (1) - update user's authentication tokens sslpasswd (1ssl) - compute password hashes passwd (5) - password file(这个级别的就是用户密码文件)man 5 passwd 可以查看/etc/passwd这个文件帮助信息;查看密码文件: /etc/shadow mysql:!!:16923:0:99999:7::: 登陆账户:加密密码crypt(3):最后一次密码修改日期:1970年到现在的天数。 最小密码天数:这个表示这个密码修改最小周期,这个周期内只能修改一次。 最大密码天数: 密码提醒警告; 密码宽限期:在密码过期的情况下,宽限期,一定要修改密码后才能进行操作。 账户到期日期;锁定账户。 备用字段; whatis shadow;man 5 shadow查看密码文件帮助信息加密方法:md5:128位定长。 sha1:160位定长。sha256;sha512; 对称加密:同一个密码; 公钥加密:非对称加密,公钥私钥对; 单向加密:散列加密,提取数据特征码。常用语数据完整性校验。 添加用户: [root@iZ233y80y23Z ~]# ls -l `which useradd` -rwxr-x--- 1 root root 114056 Mar 6 2015 /usr/sbin/useradd [root@iZ233y80y23Z ~]# ll `which adduser` lrwxrwxrwx 1 root root 7 May 2 12:17 /usr/sbin/adduser -> useradd [root@iZ233y80y23Z ~]# cd /etc/default/ [root@iZ233y80y23Z default]# ls grub nss useradd [root@iZ233y80y23Z default]# file useradd useradd: ASCII text [root@iZ233y80y23Z default]# cat useradd # useradd defaults file GROUP=100 HOME=/home //如果没有给用户指定家目录就是这个默认目录底下创建家目录 INACTIVE=-1 //定义宽限期限 EXPIRE= //定义默认的过期期限 SHELL=/bin/bash //定义默认的shell SKEL=/etc/skel // CREATE_MAIL_SPOOL=yes用户组: cat /etc/group(用户组:密码:组ID:附加组) memcache:x:1002:用户管理: useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage组管理: groupadd,groupdel,groupmod,gpasswd权限管理: chown,chgrp,chmod;
用户管理
useradd [option] USERNAME 用户添加。【option】选项: -u UID:指定用户uid,记得要大于500,useradd -u 1000 userA -g 用户组:指定将要创建的用户的所属组,组名必须存在;useradd -g mygroup userA -G GID,... 可以为将要创建用户添加多个附加组,多个使用逗号隔开; useradd -G mygroup,group user3; tail /etc/group来查看组信息; -c "COMMENT":备注信息; -d /path/to/somedirectory 指定某个家目录; useradd -c "Tony blare" -d /home/bare user4; -s 指定shell路径。这个shell最好是/etc/shells底下的shell;一定是这个文件中的某一行。 SKEL:运行shell中的骨架;环境配置文件。-m 指定skel骨架; [root@iZ233y80y23Z ~]# ll -a /etc/skel/ -rw-r--r-- 1 root root 18 Nov 20 2015 .bash_logout -rw-r--r-- 1 root root 193 Nov 20 2015 .bash_profile -rw-r--r-- 1 root root 231 Nov 20 2015 .bashrc -M :不给用户创建家目录。 -r:添加一个系统用户。环境变量: PATH HISTSIZE SHELL;echo $SHELL查看当前用户shell;userdel [option] USERNAME ;默认不会删除用户家目录 -r:同时删除用户家目录;id [option] [USERNAME]:查看用户信息;不加任何信息展示当前用户信息;finger USERNAME:查看用户账户信息;usermod [option] USERNAME:修改用户账户属性,参数是跟useradd基本一样的。 -L:锁定用户账户; -U:解锁用户账户;chsh USERNAME:修改用户shell,默认shell;chfn USERNMAE:修改备注信息的。passwd USERNAME:密码修改。 --stdin:标准的输入,从标准输入读取密码;pwck:检查密码文件的完整性;pwck;pwcheck;groupadd:创建组; -g:指定gid -r 添加为系统组;groupmod:-g GID:设置GID;-n GRPNAME:groupdel删除一个组;gpasswd:给组加上相关的密码;对于切换组的时候如果有设置密码需要输入密码;newgrp:临时切换新的组作为当前用户的组;exit退出组;chage: -d:最近一次修改时间 -E:过期时间 -I:非活动时间 -m:最短使用期限。 -M:最长使用期限。 -W:警告时间。eg:groupadd -g 3003 distrogroupadd linuxuseradd -u 2002 -g distro -G linux mandrivausermod -u 4004 -g linux -G distro,fedora mandrivapasswd -n 2 -x 50 fedorausermod -s /bin/bash mandirvauseradd -r -s /sbin/nologin hbaseuseradd -c "Fedora Community" -s /bin/tcsh fedora
用户权限
u:拥有者;g:所属组;o:其他用户chown:改变文件所属用户。chown feddora nohup.c;文件和目录都可以直接操作。 -R:修改目录及其内部文件的所属主。 --reference=/path/to/somefile file,...:参照权限,参照某个文件的权限来设置文件权限。 chown USERNAME:GROUPNAME file,...修改拥有者和所属组。 chown USERNAME.GROUPNAME file,...同上。chgrp:修改用户所属组; -G:修改目录及其内部文件的所属组。chmod:修改文件权限。 -R ,--reference=/path/to/somefile file,... 修改某类用户权限;u,g,o,a chmod u=rwx,g=rw,o=r-x file;修改用户权限。 chmod u-x,g-w,o+w file:修改用户的某位权限。+-符号。 a选项:表示三类用户的权限统一设置。练习: 新建一个没有家目录用户test #useradd -M testbc:计算器;scale=2:保留两位的精度。whatis passwd:查看命名相应的帮助信息。umask:权限掩码。创建文件就是666-umask 目录就是777-umask注意:文件默认不能具有执行权限,如果算得的结果中有执行权限,会将其权限加1;默认一定不会有执行权限。在用户登录的角度来说,shell的类型: 登录式shell:正常通常某终端登录,su - USERNAME su -l USERNAME; 非登录式shell:su USERNAME,图形终端下打开命令窗口,自动执行的shell脚本。bash的配置文件: 全局配置:/etc/profile,/etc/profile.d/*.sh,/etc/bashrc;对所有用户生效。 个人配置:~/.bash_profile,~/.bashrc;个人用户生效。profile类的文件: 设定环境变量。放在全局对所有用户生效。放在个人只对个人有用。 运行命令或者脚本。bashrc类的文件: 设定本地变量。 定义命令别名。登录式shell如果读取配置文件: /etc/profile---->/etc/profile.d/*.sh--->~/.bash_profile--->~/.bashrc--->/etc/bashrc非登录式shell读取配置文件: ~/.bashrc--->/etc/bashrc-->/etc/profile.d/*.sh 由于非登录shell不读取用户环境配置文件等配置文件。所以,相当于半切换。修改配置文件并使用命令:source来重新加载配置文件。bash. 脚本解释器。
管道与IO重定向
程序:指令和数据。控制器:运算器;存储器;地址总线:内存寻址。数据总线:传输数据;控制总线:控制指令;寄存器:CPU暂时存储器。 系统设定: 默认输出设备,标准输出,stdout,1;默认键盘 默认输入设备,标准输入,stdin,0:显示器 标准错误输出,stderr,2:显示器I/O重定向: 改变数据的输出、输入来源。linux:重定向>:覆盖输出,>>追加输出,<来表示。set:linux的设置命令。设置某些功能开关。set -C,set +C; type set set is a shell builtin输出重定向: ls /varr > /tmp/var.out 2> /tmp/err.out对正确或者错误的都输出到文件中。 &>:重定向标准输出或者错误输出到同一个文件中; ls /var6 &> /tmp/var5.out输入重定向: cat < /etc/fstab tr 'a-z' 'A-Z' < /etc/fstab<<:此处文档,没有什么追加输入的。 cat << END the first line the second line END[root@iZ233y80y23Z test]# cat >> /data/test/input.txt << EOF> this is first line> this is second line> EOF[root@iZ233y80y23Z test]# cat input.txt 管道:把前面的结果作为后一个命令的输入;前一个命令的输出作为后一个命令的输入。、# echo 'hello world' | tr 'a-z' 'A-Z'# cut -d: -f3 /etc/passwd | sorttee:从标准输入读取数据并且写到标出输出;[root@iZ233y80y23Z test]# echo "hello, world" | tee /data/test/tee.txthello, world使用管道来切换到所要的结果。[root@iZ233y80y23Z test]# wc /etc/passwd 35 65 1722 /etc/passwd[root@iZ233y80y23Z test]# wc -l /etc/passwd35 /etc/passwd[root@iZ233y80y23Z test]# wc -l /etc/passwd | cut -d' ' -f1 file *:查看该目录下所有文件的属性;tee.txt: ASCII text[root@iZ233y80y23Z test]# file `ls /var/log`agent.log: cannot open (No such file or directory)anaconda: cannot open (No such file or directory) head -6 /etc/inittab | tail -1tail -9 /etc/passwd | head -1 | cut -d: -f7 | tee /tmp/users
0 2
- 总结LINUX基础
- Linux 基础总结(二)
- linux 基础学习总结
- LINUX基础文档总结
- Linux驱动基础总结
- Linux基础总结
- Linux简介基础总结
- 基础linux命令总结
- linux基础总结
- Linux基础命令总结
- Linux基础总结
- linux基础总结
- linux 基础总结
- Linux基础总结
- Linux基础---鸟哥Linux总结
- 【Linux技术总结】linux 基础
- 【基础】Linux文件系统(总结)
- Linux 基础经典笔记总结
- android 文档api
- JAVA 基于贪心算法求解TSP问题
- Android设置全屏显示
- Java内存区域与内存溢出异常
- 字符串处理函数
- linux基础总结
- 反转单链表
- 关于jboss在jdk6下webservice不正常问题的解决
- WEB标准系列-HTML元素嵌套
- 为背景添加渐变样式(线性和放射性两种)
- Yii框架开发问题总结
- Oracle修改已有数据的字段类型
- SEO算法解析:打造专题页面的优势竟如此之多
- Brackets 下配置git教程