LINUX二十个基础命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX二十个基础命令相关的知识,希望对你有一定的参考价值。
LINUX二十个基础命令
一、 useradd命令
1.命令格式:
useradd 选项 用户名
2.命令功能:
添加新的用户账号
3.常用参数:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
4.常用实例:
例1:
# useradd –d /usr/sam -m sam
此命令创建了一个用户sam,
其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
例2:
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
二、PASSWD 命令
1.命令格式:
PASSWD 选项 用户名
2.命令功能:
passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码;
3.常用实例:
实例1:[[email protected] ~]# passwd
passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;
实例2:[[email protected] ~]# passwd beinan
如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建。
三、groupadd 命令
1.命令格式:
groupadd 选项 用户组
2.命令功能:
增加一个新的用户组
3.常用参数:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
4.常用实例:
实例1:# groupadd group1
此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
实例1:#groupadd -g 101 group2
此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101
四、chmod命令
1.命令格式:
chmod [who] [+ | - | =] [mode] 文件名
2.命令功能:
chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含
字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
3.常用参数:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
4.常用实例:
实例1:chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取
实例2:chmod 750 wch.txt
R-4,W-2,X-1
即设定wchtxt这个文件的属性为:-rwxr-x---
文件主本人(u)inin 可读/可写/可执行权
与文件主同组人(g) 可读/可执行权
其他人(o) 没有任何权限
五、chgrp命令
1.命令格式:
chgrp [选项] [组] [文件]
2.命令功能:
chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户。
3.命令参数:
-c 当发生改变时输出调试信息
-f 不显示错误信息
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细的处理信息
--dereference 作用于符号链接的指向,而不是符号链接本身
--no-dereference 作用于符号链接本身
4.使用实例:
实例1:改变文件的群组属性
命令:
chgrp -v bin log2012.log
输出:
[[email protected] test]# ll
---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log
[[email protected] test]# chgrp -v bin log2012.log
“log2012.log” 的所属组已更改为 bin
[[email protected] test]# ll
---xrw-r-- 1 root bin 302108 11-13 06:03 log2012.log
说明:
将log2012.log文件由root群组改为bin群组
实例2:通过群组识别码改变文件群组属性
命令:
chgrp -R 100 test6
输出:
[[email protected] test]# chgrp -R 100 test6
[[email protected] test]# ll
drwxr-xr-x 2 root users 4096 11-30 08:39 test6
[[email protected] test]# cd test6
[[email protected] test6]# ll
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root users 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users 61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
六、CHOWN指令
1.命令格式:
chown [选项]... [所有者][:[组]] 文件...
2.命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
3.命令参数:
必要参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
4.使用实例:
实例1:改变拥有者和群组
命令:
chown mail:mail log2012.log
输出:
[[email protected] test6]# ll
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root users 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users 61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
[[email protected] test6]# chown mail:mail log2012.log
[[email protected] test6]# ll
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 mail mail 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users 61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
[[email protected] test6]#
实例2:改变文件群组
命令:
chown :mail log2012.log
输出:
[[email protected] test6]# ll
总计 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root root 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users 61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
[[email protected] test6]# chown :mail log2012.log
[[email protected] test6]# ll
总计 604
---xr--r-- 1 root users 302108 11-30 08:39 linklog.log
---xr--r-- 1 root mail 302108 11-30 08:39 log2012.log
-rw-r--r-- 1 root users 61 11-30 08:39 log2013.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2014.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2015.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2016.log
-rw-r--r-- 1 root users 0 11-30 08:39 log2017.log
-rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log
七、PWD指令
1.命令格式:
pwd [选项]
2.命令功能:
查看”当前工作目录“的完整路径
3.常用参数:
一般情况下不带任何参数
如果目录是链接时:
格式:pwd -P 显示出实际路径,而非使用连接(link)路径。
4.常用实例:
实例1:用 pwd 命令查看默认工作目录的完整路径
命令:
pwd
输出:
[[email protected] ~]# pwd
/root
[[email protected] ~]#
实例2:目录连接链接时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径
命令:
pwd -P
输出:
[[email protected] soft]# cd /etc/init.d
[[email protected] init.d]# pwd
/etc/init.d
[[email protected] init.d]# pwd -P
/etc/rc.d/init.d
[[email protected] init.d]#
八、cd指令
1. 命令格式:
cd [目录名]
2. 命令功能:
切换当前目录至新目录
3. 常用范例
3.1 例一:进入系统根目录
命令:
cd /
输出:
[[email protected] ~]# cd /
说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了
命令:
cd .. 或者 cd .. //
输出:
1[[email protected] soft]# pwd
2 /opt/soft
3[[email protected] soft]# cd ..
4 [[email protected] opt]# cd ..//
5 [[email protected] /]# pwd
6 /
说明:
进入系统根目录可以使用“ cd .. ”一直退,就可以到达根目录
例2:使用 cd 命令进入当前用户主目录
“当前用户主目录”和“系统根目录”是两个不同的概念。进入当前用户主目录有两个方法。
命令:
cd ~
输出:
1 [[email protected] ~]# cd /opt/soft/
2 [[email protected] soft]# pwd
3 /opt/soft
4 [[email protected] soft]# cd ~
5 [[email protected] ~]# pwd
6 /root
例3:跳转到指定目录
命令:
cd /opt/soft
输出:
1[[email protected]localhost ~]# cd /opt/soft
2 [[email protected] soft]# pwd
3 /opt/soft
4[[email protected] soft]# cd jdk1.6.0_16/
5 [[email protected] jdk1.6.0_16]# pwd
6 /opt/soft/jdk1.6.0_16
7[[email protected] jdk1.6.0_16]#
说明:
跳转到指定目录,从根目录开始,目录名称前加 / ,当前目录内的子目录直接写名称即可
九、ls命令
1. 命令格式:
ls [选项] [目录名]
2. 命令功能:
列出目标目录中所有的子目录和文件。
3. 常用参数:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合 -l:显示 ctime 但根据名称排序否则:根据 ctime 排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是‘never‘、‘always‘或‘auto‘其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-o 类似 -l,显示文件的除组信息外的详细信息。
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开
4. 常用范例:
例一:列出/home/peidachang文件夹下的所有文件和目录的详细资料
命令:ls -l -R /home/peidachang
在使用 ls 命令时要注意命令的格式:在命令提示符后,首先是命令的关键字,接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。在以上这条命令“ ls -l -R /home/peidachang”中,“ls” 是命令关键字,“-l -R”是参数,“ /home/peidachang”是命令的操作对象。在这条命令中,使用到了两个参数,分别为“l”和“R”,当然,你也可以把他们放在一起使用。
例二:列出当前目录中所有以“t”开头的目录的详细内容,可以使用如下命令:
命令:ls -l t*
可以查看当前目录下文件名以“t”开头的所有文件的信息。其实,在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ ls ”,则将会列出当前工作目录的内容清单。
十、ln指令
1.命令格式:
ln [参数][源文件或目录][目标文件或目录]
2.命令功能:
创建一个连接指向一个文件夹,可以通过连接查看指向文件夹里的内容。 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
3.命令参数:
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
4.使用实例:
命令:
ln -s log2013.log link2013
输出:
[[email protected] test]# ll
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[[email protected] test]# ln -s log2013.log link2013
[[email protected] test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
十一、cat 指令
1.命令格式:
cat [选项] [文件]...
2.命令功能:
cat主要有三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file
3.命令参数:
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
4.使用实例:
实例一:把 log2012.log 的文件内容显示出来
命令:
cat log2012.log
输出:
[[email protected] test]# cat log2012.log
2012-01
2012-02
======[[email protected] test]# cat log2013.log
2013-01
2013-02
2013-03
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
命令:
cat -b log2012.log log2013.log log.log
输出:
[[email protected] test]# cat -b log2012.log log2013.log log.log
1 2012-01
2 2012-02
3 ======
4 2013-01
5 2013-02
6 2013-03
7 ======[[email protected] test]#
十二、VI指令
1.命令格式
vi <filePathAndName>
示例:vi test.conf,vi /tmp/test.conf,...
2.命令功能:
文件编辑器,用于文件的编辑。
3.进入后操作方式
1、屏幕翻页
Ctrl+u: 向上翻半屏
Ctrl+f: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+b: 向下翻一屏
2、移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):
space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n$: 光标移至第n行尾
0: 光标移至当前行首
$: 光标移至当前行尾
3、插入删除指令
常用插入、删除指令如下:
i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o: 在光标所在行下面新增一行(并进入输入模式)
O: 在光标所在行上方新增一行(并进入输入模式)
x: 删除光标所在字符,等同于[Delete]功能键
X: 删除光标前字符,相当与[Backspace]
dd: 删除光标所在的行
r: 修改光标所在字符
R: 替换当前字符及其后的字符,直到按 [ESC]
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
do: 删至行首
d$: 删至行尾
四、vi退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:
:w ——保存当前文件
:wq —— 存盘退出(与指令 :x 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出
十三、cp指令
1.命令格式:
用法:
cp [选项]... [-T] 源 目的
或:cp [选项]... 源... 目录
或:cp [选项]... -t 目录 源...
2.命令功能:
将源文件复制至目标文件,或将多个源文件复制至目标目录。
3.命令参数:
-a, --archive 等于-dR --preserve=all
--backup[=CONTROL 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
--copy-contents 在递归处理是复制特殊文件内容
-d 等于--no-dereference --preserve=links
-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项
存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随源文件中的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是跟随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 不跟随源文件中的符号链接
-p 等于--preserve=模式,所有权,时间戳
--preserve[=属性列表 保持指定的属性(默认:模式,所有权,时间戳),如果
可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive 复制目录及目录内的所有项目
4.命令实例:
实例一:复制单个文件到目标目录,文件在目标文件中不存在
命令:
cp log.log test5
输出:
[[email protected] test]# cp log.log test5
[[email protected] test]# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxr-xr-x 2 root root 4096 10-28 14:53 test5
[[email protected] test]# cd test5
[[email protected] test5]# ll
-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log
-rw-r--r-- 1 root root 0 10-28 14:53 log.log
说明:
在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。
实例二:目标文件存在时,会询问是否覆盖
命令:
cp log.log test5
输出:
[[email protected] test]# cp log.log test5
cp:是否覆盖“test5/log.log”? n
[[email protected] test]# cp -a log.log test5
cp:是否覆盖“test5/log.log”? y
[[email protected] test]# cd test5/
[[email protected] test5]# ll
-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log
-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
说明:
目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
实例三:复制整个目录
命令:
cp -a test3 test5
输出:
目标目录存在时:
[[email protected] test]# cp -a tes
以上是关于LINUX二十个基础命令的主要内容,如果未能解决你的问题,请参考以下文章