cd命令
cd切换目录:cd +目标目录
当前目录:. 上一级目录:.. 返回家目录:cd ~/cd 空格
切换到上次所在目录:cd -
打印当前用户名字:whomi
打印当前用户的用户编号和用户组编号:id
打印当前用户家目录:echo $HOME
打印当前目录:pwd
cd一个不存在的目录,直接报错,用echo $?可以查看是不是执行错误,如果返回值为0,执行正确,返回值不是0是其他字符或数字,执行错误。
ls命令
ls显示目录信息命令:ls +[选项] +[文件/目录]
不带任何选项,是对目录内容的普通显示;
选项-a:列出目录内的所有文件(包含隐含文件);
选项-l:列出文件的详细信息(包括文件权限和属性,所属用户,所属组,文件大小,文件创建时间,文件名等信息);
选项-d:列出目录本身的详细信息;
选项-t:按文件的最后更改时间排序;
选项-h:人性化选项
which命令
which命令:用来查找某个命令的绝对路径;
alias命令
设置命令别名--把一些较长的命令使用别名来简化;
alias vieth='vi /etc/sysconfig/network-scripts/ifcfg-etho'
alias s='ls -alt /var/' --使用s来代替命令ls -alt /var/
查看别名设置:which s 或 which vieth
取消别名:unalias vieth
在~/.bashrc文件中设置别名可以让别名在同一用户任何终端均可进行使用:
vi ~/.bashrc
把alias s='ls -alt /var/' 放到已存在的别名下方即可
注:~/bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取。
Linux环境变量
环境变量:环境变量可以让我们直接打出命令,而无需知道命令的具体路径;
环境变量目录查看:
将新目录加入环境变量:
永久生效:将新目录加入到环境变量中:
vi /etc/profile --打开profile文件
把PATH=$PATH:/root加入到最后一行
$后面是由特殊意义的变量,后不加$不会出错,但是没有意义;
Linux快捷键
Ctrl+C:终止当前命令;
Tab:补全命令或目录等;
Ctrl+D:退出当前终端,同样也可以输入exit;
Ctrl+Z:暂停当前进程,暂停的进程可以使用fg恢复它;
Ctrl+L:清屏,使光标移动到第一行;
Ctrl+U:快速删除光标前面的所有字符;
Ctrl+A:快速把光标定位到行首;
Ctrl+E:和Ctrl+A相反,快速把光标定位到行尾;
文件属性
文件的属性
在终端输入ls -l显示出当前目录下所有文件(非隐藏文件)的相关属性;
第1列:表示文件的权限,第一个字符表示文件类型。
第2列:表示为链接占用的节点(inode),如果是目录,那这个数值与该目录底下有多少一级子目录有关系。
第3列:表示该文件的所有者。
第4列:表示该文件的所属组。
第5列:表示该文件的大小。
第6、7、8列:为该文件的最近的修改日期,分别为月份日期以及时间。
第9列:文件名。
文件的权限
常见的文件类型:
Linux中一切皆文件,只是后缀名不一样,
“-”:表示是文件;
“d”:表示是目录,在Linux系统中,目录也是一种特殊的文件,它们用来包含文件,文件一定在某个目录下。
“l”:表示是连接文件,指向另一个文件,类似于windows下的快捷方式。
“b”:表示是设备文件里面的可供存储的接口设备。
“c”:表示是设备文件里面的串行端口设备,例如:键盘、鼠标等;dev文件下存的是设备。
“s”:表示该文件为套接字文件(socket),用于进程间同信。
可执行(x)权限的作用
当文件名为一个目录的时候,特别注意x的作用;
drwx------ 2 root root 4096 Oct 20 20:20 tmp/
可以看出这是一个目录,并且只有root又读写和执行权限;
drwx---r-- 2 root root 4096 Oct 20 20:20 tmp/
当其他用户有可读权限(r)时,是不能进入这个目录的,没有x权限也就无法进入tmp目录,这样即使有可读权限,也要先进入该目录后才能还行ls命令读取目录中的内容,但没有x权限就无法进入目录,所以特别注意如果想开放某个目录,一定要开启x权限。
文件名
如果文件名之前多一个“.”,表示这个文件是隐藏文件。
权限对文件的重要性
文件是实际含有数据的地方,权限对文件的意义如下:
r:可读取文件的实际内容,如读取文本文件的文字内容等;
w:可以编辑、新增或修改该文件的内容(但不含删除该文件);
x:该文件具有被系统执行的权限,这里注意前面讲的x权限的用法;
权限对目录的重要性
目录主要的内容是记录文件名列表,只要权限对文件的意义如下:
r:可读取目录结构列表的权限,所以具有r权限表示可以查询该目录下的文件名数据,即可以使用ls命令;
w:这个可写入权限对目录来说功能很强大,表示具有更改目录结构列表的权限。具体如下:新建新的文件或目录、删除已存在的文件或目录(无视文件权限)、重命名文件或目录、转移目录内的文件或目录。
x:目录并不能被执行,x权限对于目录来说就是代表用户能否键入该目录;
改变文件所属用户组
命令:chgrp +[选项]+ 组名称 文件名
- 选项-R:递归处理,修改该目录下所有子目录
注意:要改变的组名必须在/etc/group文件中存在,否则显示会错误;
改变文件所属用户
命令:chown + [选项] + 用户名 文件名
- 选项-R:底盖处理,修改该目录下所有子目录;
注意:要改变的用户名必须在/etc/passwd文件中存在,否则显示错误。
以上可以同时改变文件的所属用户,所属组;
改变文件权限
命令:chmod +[选项]+ 文件名/目录
选项的全部形式为:[R] [Who] [opt] [mod]
选项-R:对文件夹进行递归更改,即连同子目录下的所有文件、目录进行更新成当前who选项代表的用户;
选项opt:表示对文件的权限进行更改,“+”就是添加某个权限,“-”表示取消某个权限,“=”表示取消原先所有权限,赋予当前权限;
选项mod:表示文件的权限,可为“r”、“w”、“x”;
u:User,即文件或目录的拥有者。
g:Group,即文件或目录的所属群组。
o:Other,除了文件或目录拥有者所属群组之外,其他用户皆属于这个范围。
a:All,即全部的用户,包含拥有者,所属群组以及其他用户。
通过二进制的方式来表示文件/目录的权限
二进制表示:将三个权限组成三个二进制数,每个组内的每个权限分别表示以为二进制,有该权限则为“1”,无该权限则为“0”;即:具体规则为r=4,w=2,x=1,-等于0;
在Linux系统中,root用户,默认一个目录的权限为755,而一个文件
如:
rwxrw-r-- : 111 110 100 =764
rw-r-x--x : 110 101 001 =651
chmod修改权限时,可以通过八进制数字的方式来进行修改
命令:umask
umask语法:umask xxx(这里的xxx代表三个数字)
查看umask值只要输入“umask”然后回车。
umask预设是0022,先看看下面的规则:
若用户建立为普通文件,则预设没有可执行权限,只有rw两个权限,最大为666(-rw-rw-rw-)。
若用户建立为目录,则预设所有权限均开放,即777(drwxrwxrwx)。
umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。
所以目录的权限代表的含义为“rwxrwxrwx”-“----w--w-”=“rwxr-xr-x”,普通文件的权限为“rw-rw-rw”-“----w--w-”=“rw-r--r--”,umask的值是可以自定义的,比如设定umask为002,在创建目录或者文件时,默认权限分别为“rwxrwxr-x”和“rw-rw-r--”。
创建和删除目录
mkdir 创建目录:mkdir +[选项] +目录
- 不带任何选项是对单个目录进行操作;
选项-p:可以创建多层目录,当创建一个已经存在的目录时,它不会做任何事情,只是不报错;
选项-m:用来指定要创建目录的权限,不常用;
rmdir 删除空目录:rmdir +[-p] + 目录
- 不带任何选项是对单个目录进行操作;
选项-p:删除多层空目录;
所以,得出结论是,rmdir只能删除空目录,即使加上-p也只能删除一串的空目录,可见这个命令又很大的局限性,偶尔用下还可以。
创建文件
touch 创建文件:touch +[选项] +文件名
- 选项-a:即atime,只更改存取的时间;
选项-c:或--no-create 不建立任何文档;
选项-d:使用指定的日期时间,而非现在的时间;
选项-m:或--time=mtime或--time=modify 只更改变动时间;
选项-r:把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同;
选项-t:使用指定的日期时间,而非现在的时间;
删除目录/文件
rm 删除文件或者目录:rm +[选项] +文件/目录
- 不带任何选项默认会有操作提示;
选项-r:删除目录;
选项-f:强制删除,加上此选项删除不再提示是否要删除;
和rmdir不同的是,使用rm -r删除目录时,会问一下是否删除,如果输入y则会删除,输入n则不删除,但rm -r可以删除非空目录;
删除一个目录时,不加-r既是加上-f也会报错,所以删除目录一定要加上-r选项;
注:关于rm:使用最多的选项便是-rf两个合用了,不管删除文件还是目录都可以,但是方便的同时也要注意,
万一后面跟了“/”那样就会把你的系统文件全部删除的,这一点一定要注意。
命令通配符
*:匹配0个或多个字符;
?:只能匹配一个字符;
[]:指定范围,也可以组合范围;如:[Cc]hange[Ll]og将于Changelog、ChangeLog、changeLog以及changelog匹配。
拷贝目录/文件
cp文件或者目录拷贝:
cp +[选项] +源文件或者目录 +目标文件/目录
- 源参数是文件
如果目标参数不存在或存在且为文件夹,就是对源参数进行拷贝;
如果目标参数存在且为文件夹,则是对目标参数的覆盖,此时源文件不丢失。
源参数是文件夹
对该文件夹复制到目标参数中。(目标参数为文件是则不能复制)
选项-r:复制目录,如果要拷贝一个目录,必须要加上-r,否则是拷贝不了目录的,和rm类似。
选项-i:这是安全选项,和rm类似,如果遇到一个存在文件,会问是否覆盖,在Redhat/CentOS系统中,使用的cp其实就是cp -i;
文件/目录的移动(剪切)/重命名
mv命令
mv +[选项] +源文件/目录 +目标文件或目标目录
该命令有几种情况:
目标文件是目录,而且目标文件不存在;
目标文件是目录,而且目标文件存在;
目标文件不是目录不存在;
目标文件不是目录存在;
如果目标目录不存在,那么就是对源参数剪切到目标目录中,源文件消失。
如果目标目录是已经存在的文件或者目录,那么就是将源文件或者目录进行覆盖,此时源文件消失。
查看文件内容命令
cat显示文件全部内容:
cat + [选项] +文件名
- 选项-n:显示行号;
选项-A:显示所有内容,包括特殊字符;注意大小写
tac:逆序方式显示文件全部内容;
more/less:分页显示文件内容:
more/less + [选项] + 文件名
- more命令是将文件内容逐页在屏幕上显示,通过按SPACE(空格键)往下翻页,按b键网上翻页,按q键结束显示,显示文件后不可以上下键滚动。
不带选项是对文件的正常显示;
选项+n:从第n行开始显示文件;注意是“+”号
选项+/pattern:从文件中搜索符合pattern的字符串,并从该行的前两行开始显示;
less命令同more一样,区别就是less可以上下滚动;空格键同样可以翻页,而按j键可以向下移动,按k键可以向上移动,也可以使用快捷键Ctrl b和Ctrl f分别实现上翻页和下翻页,也可以按上下方向键的移动;
在使用more/less查看某个文件是,可以按一下“/”键,然后输入一个字符串,然后回车;就可以在文件中查找这个字符串,区别:more查找的结果标注,从显示在查找的第一个字符的前两行开始显示,而less查找的结果后把查找出来的结果标注出来。如果查找的这个字符有多个,可以按n键显示下一个;另外也可不按“/”而是按“?”后边同样跟搜索的字符串来搜索,唯一不同就是:“/”是在当前行向下搜索,而“?”是在当前行向上搜索,按G键可以快速到文本末端,然后按g可以快速返回到文件首部,按q键退出。
head/tail显示文件前几行或后几行:
head/tail + [选项] + 文件名
- head:后边直接跟文件名,则显示文件的前十行;
选项-x/-nx:显示前/后x行;
head -20 /etc/passwd
tail -n10 /etc/passwd
选项-f:动态显示文件的最后十行,如果文件是不断增加的,则用-f选项。如:
tail -f /var/log/messages
可以用来截取文件:如截取aaa.txt文件第10行至20行
head -20 aaa.txt | tail -10