Linux常用命令
一、终端(Terminal)与提示符
1、终端
退出终端程序:
-
输入
exit
-
使用快捷键
ctrl+d
2、提示符
[username@host~]$
-
username:表示当前用户名
-
host:主机名
-
~
:表示默认用户主目录 -
$
:表示当前用户是普通用户,#
:表示超级用户
二、简单命令
可以使用--help
选项查看命令的帮助。
1、who
列出所有正在使用系统的用户、所用终端名和注册到系统的时间:
2、echo
将命令行中的参数显示到标准输出(即屏幕)上。
echo -n
输出字符串后光标不换行
3、clear
清除屏幕上的内容,类似于DOS中的cls
。
4、pwd
显示当前目录的绝对路径
5、ls
列出指定目录的内容,无参数时列出当前目录的内容。
6、date
显示或设置系统的日期和时间,如果命令没有选项和参数,则直接显示系统当前的日期和时间。
7、cal
显示公元1~9999年中任意一年或者任意一个月的日历。
cal 2010
显示2010年的日历
cal 6 2012
显示2012年6月的日历
8、passwd
修改当前用户的密码
9、su
更改用户的身份
设置root用户(初始)密码:
sudo passwd
输入两次密码后,提示passwd:password updated sucessfully
表示修改成功。
10、uname
查看系统相关信息(内核版本号、硬件架构、主机名称、操作系统类型(多少位)等)
显示的信息中含有i686 i386
表示32位系统;含有x86_64
表示64位系统。
详细信息请参考:https://www.cnblogs.com/kerrycode/p/3785768.html
三、目录操作命令
1、mkdir
在当前目录或指定的目录下创建目录
-
常用选项
-
-m,--mode=MODE
设置目录的存取权限为MODE
-
-p,--parents
建立多个目录时,如果新建目录所在路径中的父目录不存在,则自动创建它们
-
2、rmdir
删除一个或多个空的子目录。当前工作目录必须在被删除目录之上,不能是删除目录本身或者是被删除目录的子目录。
-
常用选项
-
-p,--parents
递归删除目录,当子目录删除后如果其父目录也为空,则一同删除。如果有非空的目录,则该目录不会被删除。
-
-v,--verbose
对每个被处理的目录输出具体操作信息。
-
3、cd
改变工作目录
-
格式
cd [dir]
-
用法
-
cd /home/wzk
将当前目录切换到
/home/wzk
目录 -
cd
或cd ~
将当前目录切换到用户主目录
-
cd ..
或cd ../
将当前目录切换到父目录
-
4、ls
列出指定目录的内容,如果参数FILE是目录,则列出该目录中的所有子目录与文件信息;如果FILE是文件,则列出该文件的属性。
-
常用选项
-
-a,--all
显示指定目录下的所有子目录和文件,包括以’.’开头的隐藏文件
-
-A,--almost-all
显示指定目录下的所有子目录和文件,包括以’.’开头的隐藏文件,但不列出’.’和’..’目录项
-
-b,--escape
如果文件名中包含不可显示的字符,则用三位八进制数形式显示该字符
-
-c
按文件的修改时间排序
-
-l
以长格式显式文件的详细信息,输出的信息分为多列,依次是:文件类型与权限 链接数 文件主 文件组 文件大小 建立时间或修改时间 文件名。
-
-d
如果参数是目录,则只显示其名字(不显示它的子目录和文件);通常与
-l
一起使用,显示目录的详细信息。 -
-F,--classify
在列出的文件名后面添加不同的符号来区分不同类型的文件:
-
/
:目录 -
*
:可执行文件 -
@
:符号链接文件 -
|
:管道文件 -
=
:套接字文件
-
-
四、文件操作命令
1、cp
复制文件或目录,如果是复制目录,需要使用-r
选项,将整个目录下的所有文件和子目录都复制到目标位置。
- 格式
cp [选项] 源文件或目录 目标文件或目录
-
常用选项
-
-a
递归地将源目录下的所有子目录和文件都复制到目标位置,并且保留文件链接和文件属性不变,通常在复制目录时使用此参数。
-
-f,--force
如果目标文件不能打开,则不提示强行删除。
-
-i,--interactive
交互式复制,在覆盖目标文件之前提示用户并请求用户确认。
-
-P
除复制源文件的内容外,也将其修改时间和存取权限也复制到新文件中。
-
-R,-r,--recursive
递归地将源目录下的所有子目录和文件都复制到目标位置。
-
-l
不复制,只是创建指向源文件的链接文件,链接文件名由目标文件给出。
-
-
示例
-
cp hi.txt test/xi.txt
将
hi.txt
文件复制到test目录下,并改名为xi.txt
-
cp -r dir/subdir test
将
dir/subdir
下的所有文件和子目录复制到test目录中 -
cp ../dir/A*.java .
将父目录中dir目录下的以A开头的java文件复制到当前目录
-
2、mv
重命名文件或目录,或者将文件从一个目录移动到另一个目录。如果目标位置是目录,则源文件会被移动到此目录下;如果目标位置不是目录,那么源文件名(只能有一个)会变为目标文件名,并覆盖已存在的同名文件。
- 格式
mv [选项] 源文件或目录 目标文件或目录
-
常用选项
-
-f,--force
在覆盖已有的目标文件时不提示
-
-i,--interactive
交互式操作,如果源文件与目标文件同名,则询问用户是否覆盖目标文件。
-
-t,--target-directory=DIRECTORY
把所有的源文件或目录都移动到DIRECTORY中。
-
-
示例
-
mv xi.txt C.java
将
xi.txt
重命名为C.java
-
mv ../dir/* .
将父目录dir中的所有文件移动到当前目录中
-
3、rm
删除指定的文件,默认不能删除目录。
- 格式
rm [选项] 文件
-
常用选项
-
-f,--force
忽略不存在的文件,不提示。
-
-i,--interactive
交互式地删除文件。
-
-R,-r,--recursive
递归地删除指定目录下的子目录和文件。
-
-
示例
-
rm C.java
删除当前目录下的
C.java
文件 -
rm ?i.txt
删除当前目录下文件名以任意字符开头且以
i.txt
结尾的文件 -
rm -r *
删除当前目录中除隐藏文件之外的所有文件和目录
-
rm -r -i /home/wzk/document/test
交互式地删除
/home/wzk/document
下的test目录
-
4、rename
用字符串替换的方式批量改变文件名,语法:
rename FROM TO FILE...
-
参数说明
-
FROM
需要替换的原文件名(字符串)
-
TO
想要替换成的目标文件名(字符串)
-
FILE…
要修改文件名的文件列表
-
-
示例
-
普通替换
将
source.c
重命名为destination.c
rename source.c destination.c source.c
-
使用通配符
修改所有
.htm
文件的后缀为.html
rename .htm .html *.htm
-
五、文件权限
1、文件类型及权限
使用ls -l
命令的结果中第一列表示文件类型和权限:-rwxrwxrw-
-
-
第一个字符表示文件类型,每个字符表示的含义如下:
-
-:普通文件
-
l:符号链接文件
-
d:目录
-
s:套接字文件(socket)
-
p:命名管道文件(pipe)
-
b:块设备文件
-
c:字符设备文件
-
-
剩下的每三个字符表示不同用户的权限
-
第一组表示文件主的权限
-
第二组表示同组用户的权限
-
第三组表示其他用户的权限
-
-
权限字符的含义
-
文件
-
r:可读(可以使用cat、more等命令)
-
w:可写(可以使用vi、cp等命令)
-
x:可执行
-
-:无存取权限
-
-
目录
-
r:允许列出该目录下的文件
-
w:允许从目录中添加或删除文件,通常只有目录主才有写权限
-
x:允许在目录中进行查找,也可以用cd命令将该目录改为工作目录
-
-:无存取权限
-
-
2、chmod
只有文件主或超级用户root才有权用chmod命令改变文件或目录的存取权限。
- 以符号模式改变权限
chmod [OPTION]... MODE[,MODE]... FILE...
-
常用选项
-
-v,--verbose
显示命令处理每个文件的详细信息
-
-c,--changes
与
-v
选项类似,只是在发生改变时才显示详细信息 -
-R,--recursive
递归地修改文件或目录的权限
-
-
MODE
MODE由:[who] [操作符号] [mode] 三部分组成:
-
who
由以下字母中的一个或多个组成:
-
u(user:文件主)
-
g(group:同组用户)
-
o(others:其他用户)
-
a(all:所有用户,默认值)
-
-
操作符号
-
+
:添加 -
-
:移除 -
=
:赋予
-
-
mode
表示权限,可由r、w、x任意组合
-
-
示例
-
chmod a+x shell.sh
给所有用户都添加对
shell.sh
文件的执行权限 -
chmod u=rwx,g+x,o-r shell.sh
将
shell.sh
的权限设置为文件主和同组用户可以读、写、执行,其他用户没有权限
-
-
以绝对方式改变权限
chmod [OPTION]... OCTAL_MODEL... FILE...
使用8进制数表示权限,8进制数的每一位分别表示是否拥有读(r)、写(w)和执行(x)的权限,为1时表示有权限,为0时表示没有权限。
-
示例
-
chmod 744 shell.sh
将文件
shell.sh
的权限设置为:用户主具有读、写、执行的权限,同组用户和其他用户只有读的权限。
-
4、umask
设置新建文件时的默认权限(掩码),它的8进制数表示创建文件时不能被赋予的权限。
例如:umask值为002表示新建文件和目录的默认权限分别是:664(666-002)和775(777-002)。
- 格式
umask [-p] [-S] [mode]
mode以数字开头时,被解释为8进制数;否则被解释为符号方式。
- 查看当前掩码的设置
umask u=rwx,g-wx,o=
设置新建文件的默认权限为用户主可以读、写和执行,同组用户只读,其他用户没有权限。
不能直接利用umask命令创建一个可执行文件,用户只能在创建后使用chmod命令设置它的执行权限;如果创建的是目录或是通过编译程序创建的文件,则不受此限制。
umask 0002
使用8进制数值来设置
六、改变用户组和文件主
1、chgrp
修改文件或目录所属的用户组
- 格式
chgrp [OPTION]... GROUP FILE...
-
示例
-
chgrp alliance ./test.txt
修改当前目录下的
test.txt
文件的用户组为alliance -
chgrp -R friend /home/wzk/document
修改
/home/wzk/document
以及它的子目录下的所有文件的用户组为friend
-
2、chown
修改文件或目录的所有者和(或)所属组
- 格式
chown [OPTION]... OWNER[:[GROUP]] FILE...
chown [OPTION]... :GROUP FILE...
-
chown -R Tom ./mydir
将当前目录中的mydir目录以及mydir中的所有文件和子目录的文件主改为Tom
七、联机帮助命令
1、man
格式化显示联机帮助手册页
man [OPTION]... name...
man chown
查看chown命令的帮助手册
2、help
查看所有shell内置命令的帮助信息
help [-s] [pattern ...]
help cd
查看内置命令cd
的用法
help -s cd
只显示cd命令使用方法的简要说明