知识内容:
1.目录及文件操作
2.命令行编辑快捷键
3.用户、群组与权限
4.重定向、管道
5.系统命令
6.其他命令
Linux命令规则:目录名 [选项] [参数]
一、目录及文件操作
1.ls
简述:ls是list的缩写,用于列出指定目录或文件
常用选项:
1 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出) 2 -A:显示除影藏文件“.”和“..”以外的所有文件列表; 3 -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表; 4 -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等
1 ls 列出当前目录下的文件和目录。不含隐藏文件 2 ls -a 列出当前目录下的所有文件和目录,包含隐藏文件 3 ls -l 列出详细信息(不含隐藏文件) 4 ls /home/ 列出指定目录下的文件和目录
ls -l命令输出如下:
上述每一行的信息可以分成七段:
第一段信息表示文件或文件夹的权限,完整表示为drwxrwxrwx,第一个字符d表示文件类型为文件夹
后面的rwx 分别表示权限,read | write | excute,3组rwx分别表示,文件使用者的权限,使用者同组人员权限,其他*限,如果为 – 表示用户没有这个权限
第二段信息表示文件硬链接数量
第三段信息表示所有者: root
第四段信息表示所属用户组: root
第五段信息表示文件大小,单位为byte
第六段信息表示修改时间
第七段信息表示文件名
2.cd
简述:cd是change directory的缩写,用于变更用户所在目录
1 cd 进入当前用户的根目录(root用户的根目录是/root,其他用户的根目录是/home下的用户目录) 2 cd . 进入当前目录(cd ~也是进入当前目录) 3 cd .. 进入上一级目录 4 cd /.../.. 进入某目录(绝对目录) 5 cd .. 进入某目录(相对目录) 6 cd - 进入上一次所在的目录
注:cd后面跟目录名就会直接切换到指定的目录中,但cd后不能跟文件名,有文件名就会报错!.表示当前目录,..表示上一级目录
3.pwd
简述:pwd是print work directory的缩写,用来打印当前工作目录
1 pwd 打印当前工作目录
4.mkdir
简述:mkdir是make directory的缩写,用于创建目录
1 mkdir dirname 直接在当前目录下创建新目录 2 mkdir -p dirname1/dirname2/... 一次性创建多级目录
5.rmdir
简述:rmdir是remove directory的缩写,用来删除空目录,该目录只能用来删除目录不能删除文件 -> 一般都使用rm代替rmdir
1 rmdir dirname 删除当前目录下的某目录 2 rmdir -p dirname 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除
6.du与df
du:查看目录下文件占用磁盘空间情况
df: 查看整个磁盘空间占用情况
1 du 显示当前目录下文件所占的空间 2 du filename 显示指定文件所占的空间 3 du catalogname 显示指定目录下所占的空间 4 5 df 查看系统磁盘设备,默认是KB为单位 6 df -h 使用-h选项以KB以上的单位来显示查看系统磁盘设备,可读性高 7 df -a 查看全部文件系统的磁盘设备
7.touch
简述:创建新的空文件;如果要创建的文件已存在则把已存在文件的时间标签更新为系统当前的时间(默认方式),原来的数据将保留
1 touch new_file 在当前目录下建一个空文件
8.cat
简述:显示文件的内容,将其打印在屏幕上
1 cat -n 打印行号
2 cat -A显示所有内容包括特殊字符
与cat类似的其他命令,均是用来显示文件,后跟文件名
1 tac 和cat一样也是打印文件内容到屏幕,不过是从倒数第一行开始打印
2 more Ctrl+D向上翻屏,Ctrl+F向下翻屏,q退出 3 less 空格键翻页,j向下移动,k向上移动 4 head 显示文件前10行,可以用head -n显示前n行 5 tail 显示文件最后10行,也可以用tail -n显示最后n行
9.rm
简述:rm是remove的缩写,用来删除文件或目录
1 rm 删除文件,会有提示 2 rm -r 删除目录,可以用来删除非空目录,若目录非空则会提示 3 rm -f 强制删除目录,不会提示 4 rm -rf 删除文件或目录,不会提示
注: Linux中删除文件前最好备份,尤其是一些重要文件
1 mv filename /opt/filename.bak 2 rm -rf filename
10.cp
简述:cp是copy的缩写,用于复制文件或文件夹,命令格式为cp [选项] [来源文件][目的文件]
选项:
1 -f:强行复制文件或目录,不论目标文件或目录是否已存在; 2 -i:覆盖既有文件之前先询问用户; 3 -l:对源文件建立硬连接,而非复制文件; 4 -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; 5 -b:覆盖已存在的文件目标前将目标文件备份;
1 cp -r 递归地复制文件夹(目录) 2 cp -i 安全选项,遇到一个已存在的文件会询问是否覆盖
11.mv
简述:mv是move的简写,用于移动文件或目录,还可以用来重命名,命令格式为mv [选项] [源文件或源目录] [目标文件或目录]
该命令有如下几种情况:
- 目标文件是目录,但目录不存在 -> 重命名源目录
- 目标文件是目录,但目录存在 -> 将源文件或源目录移动到该目录下
- 目标文件是文件,但文件不存在 -> 重命名源文件
- 目标文件是文件,但文件存在 -> 会询问是否覆盖
12.搜索文件的相关命令
(1)which:用于查找并显示给定命令的绝对路径
1 $ which ls 2 /bin/ls 3 $ which cd 4 $ which mkdir 5 /bin/mkdir
(2)whereis:用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径
1 $ whereis tomcat 2 tomcat: 3 $ whereis python 4 python: /usr/bin/python2.7-config /usr/bin/python3.5 /usr/bin/python2.7 /usr/bin/python3.5m /usr/bin/python /usr/lib/python3.5 /usr/lib/python2.7 /etc/python3.5 /etc/python2.7 /etc/python /usr/local/lib/python3.5 /usr/local/lib/python2.7 /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz
(3)find:用来在指定目录下查找文件
(4)locate:实是find -name
的另一种写法,但是要比后者快得多
13.cmp与diff
(1)cmp:比较两个文件是否有差异
1 cmp testfile testfile1 #比较两个指定的文件
(2)diff:在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作
14.grep
简述:是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
二、命令行编辑快捷键
1 ctrl + a 移动到命令第一个字符 2 ctrl + e 移动到命令结尾 3 ctrl + u 删除光标处到命令行第一个字符 4 ctrl + k 删除光标处到命令行最后一个字符 5 ctrl + l 清屏 6 ctrl + c 取消 7 ctrl + 方向键 每次移动一个单词
三、用户、群组与权限
1.用户管理相关命令
(1)su与sudo
su: 切换用户
sudo: 表示获取临时的root权限命令
1 su 切换到root用户 2 su - root 切换到root用户 3 su - username 切换到普通用户 4 sudo后面跟操作表示进行某些特殊操作
(2)who系列
1 whoami;显示的是当前用户下的用户名 2 who am i:显示的是登录时的用户名 3 who:显示当前真正登录系统中的用户(不会显示那些用su命令切换用户的登录者)
(3)useradd
简述: 创建的新的系统用户
选项如下:
1 -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; 2 -d<登入目录>:指定用户登入时的启始目录; 3 -D:变更预设值; 4 -e<有效期限>:指定帐号的有效期限; 5 -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; 6 -g<群组>:指定用户所属的群组; 7 -G<群组>:指定用户所属的附加群组; 8 -m:自动建立用户的登入目录; 9 -M:不要自动建立用户的登入目录; 10 -n:取消建立以用户名称为名的群组; 11 -r:建立系统帐号; 12 -s<shell>:指定用户登入后所使用的shell; 13 -u<uid>:指定用户id。
1 useradd test1 直接添加用户 2 useradd test2 -u 1000 -g test 指定uid和gid添加用户
(4)userdel
简述:用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件
选项如下:
-f:强制删除用户,即使用户当前已登录
-r:删除用户的同时,删除与用户相关的所有文件
1 userdel username 删除用户账号而不删除相关文件 2 userdel -f username 强制删除用户 3 userdel -r username 删除用户的同时删除与用户的相关文件
(5)usermod
简述:用于修改用户的基本信息
选项如下:
1 -c<备注>:修改用户帐号的备注文字; 2 -d<登入目录>:修改用户登入时的目录; 3 -e<有效期限>:修改帐号的有效期限; 4 -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号; 5 -g<群组>:修改用户所属的群组; 6 -G<群组>;修改用户所属的附加群组; 7 -l<帐号名称>:修改用户帐号名称; 8 -L:锁定用户密码,使密码无效; 9 -s<shell>:修改用户登入后所使用的shell; 10 -u<uid>:修改用户ID; 11 -U:解除密码锁定。
1 usermod -d /home/new test 将test用户的家目录修改为/home/new 2 usermod -G ttt test 将test用户添加到ttt组中 3 usermod -g ttt test 将test用户的gid变为ttt 4 usermod -L test 锁定test用户 5 usermod -U test 解锁test用户
(6)passwd
简述:用于设置用户的认证信息,包括用户密码、密码过期时间等
选项如下:
1 -d:删除密码,仅有系统管理者才能使用 2 -f:强制执行 3 -k:设置只有在密码过期失效后,方能更新 4 -l:锁住密码 5 -s:列出密码的相关信息,仅有系统管理者才能使用 6 -u:解开已上锁的帐号
1 passwd 不带任何选项和参数是更改root用户密码 2 passwd username 更改username的密码
(7)id
简述:显示用户信息
1 id user 显示用户user的信息 2 id 显示当前登录的用户的信息 3 4 注:用户root的UID号码 = 0,GID号码 = 0
注:与用户、组账户信息相关的文件
存放用户信息:
1 /etc/passwd 2 /etc/shadow
存放组信息:
1 /etc/group 2 /etc/gshadow
2.用户组管理相关命令
groupadd:用于创建一个新的工作组,新工作组的信息将被添加到系统文件中
groupdel:用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组
groupmod:更改群组识别码或名称
用户组管理相关命令的使用类似用户管理命令在此不详细解释
3.权限管理相关命令
四、重定向与管道
五、系统命令
apt-get install/remove 安装删除文件
top 动态查看系统进程信息 (q 退出)
ps 查看系统进程信息
kill 杀死进程
六、其他命令
1.clear -> 用于清除当前屏幕终端上的任何信息
2.date与cal
date简述:用来显示或设定系统的日期与时间
cal简述: 显示日历
1 date 输出当前时间 2 date '050316552018' 设置时间 3 cal 输出日历(现在所在的月份的日历) 4 cal year 输出某年的日历 5 cal month year 输出某年的某月的日历
关于date命令详细看此:https://www.cnblogs.com/hunttown/p/5470527.html
3.man、help、info
man:man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息
help:用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看
info:是Linux下info格式的帮助指令。就内容来说,info页面比man页面编写得要更好、更容易理解,也更友好,但man page使用起来确实要容易。一个man 页面只有一页,而info页面几乎总是将它们的内容组织成多个区段。理解info命令的窍门就是学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换,实际上学习和使用起来更困难
4.echo
简述:用于在shell中打印shell变量的值,或者直接输出指定的字符串
详细解释:http://man.linuxde.net/echo
1 echo "hello" 向屏幕输出hello
5.exit
简述:等同于退出shell,并返回给定值。在shell脚本中可以终止当前脚本执行。执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败
退出当前shell:
1 root@wyb:/home/wyb# exit 2 exit 3 $