Linux学习之命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习之命令相关的知识,希望对你有一定的参考价值。

                           Linux学习之命令【1】

一·命令总览
?????? 1.基本简单命令
??????? ?1.0 pwd
1.1 echo
?????????1.2 date
?????????1.3 cal
1.4 cd
?????????1.4 ls
?????????1.5 tab
1.6 clear
1.7帮助命令
??????? 1.7.1 help
????????? 1.7..2 man
? ??? 2.用户信息查看编辑命令
????????? 2.1 who??
????????? 2.2 passwd
????????? 2.3 useradd
????????? 2.4 userdel
????????? 2.5 su
????????? 2.6 sudo
????? 3.文件操作命令
?????????3.1 touch
3.2 cat
???????? 3.3 cp
???????? 3.4 mv
???????? 3.5 rm??
????? 4.系统状态管理命令
???????? 4.1 poweroff
????? ?4.2 init
?????? 4.3 shutdown
??????二 命令详解
1.基本简单命令
1.0 pwd 显示当前工作目录的绝对路径

说明:该命令不带任何选项和参数。通过该命令可知道当前工作在那个目录下。
使用示例
技术分享图片
1.1 echo
(1) 将命令行中的参数显示到标准输出(即屏幕)上。输出的字符串间以空白字符隔开, 并在最后加上换行号
如下:
技术分享图片
(2)选项:
-E 持 (默认)不支持 \ 解释功能
-n 不自动换行
例如:
技术分享图片

-e 用 启用 \
(3)显示变量
echo "$VAR_NAME“ 变量会替换,弱引用
echo ‘$VAR_NAME‘ 变量不会替换,强引用
技术分享图片
启用命令 选项-e, , 若字符串中出现以下字符,则特
别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\ 字符
\0nnn 插入nnn (八进制)所代表的ASCII 字符
echo -e ‘\033[43;31;5mmagedu\033[0m‘
\xHH 插入HH (十六进制)所代表的ASCII字 字

1.2 date
显示日期和时间
技术分享图片
选项:
+%Y 年
+%m 月
+%d 日
+%H 时
+%M 分
+%S 秒
+%w 星期
+%A 星期几 (Sunday..Saturday)
+%F 年-月-日
+%T 时:分:秒

    date +%Y%m%d???????? //显示现在天年月日

date +%Y%m%d --date="+1 day"? //显示后一天的日期
date +%Y%m%d --date="-1 day"? //显示前一天的日期
date +%Y%m%d --date="-1 month"? //显示上一月的日期
date +%Y%m%d --date="+1 month"? //显示下一月的日期
date +%Y%m%d --date="-1 year"? //显示前一年的日期
date +%Y%m%d --date="+1 year"? //显示下一年的日期
1.3 cal 显示公元1~9999年中任意一年或者任意一个月的日历。

用法示例:
 (1)不带参数
      $cal            --显示当前月份和日历
 (2)带一个参数
      $cal 10         --列出公元10年的日历
 (3)带两个参数
      $cal 9 2017     --显示2017年九月份的日历
 (4) 拓展

-1?显示一个月的月历
-3?显示系统前一个月,当前月,下一个月的月历
-s?显示星期天为一个星期的第一天,默认的格式
-m?显示星期一为一个星期的第一天
? ? ? -j??显示在当年中的第几天(一年日期按天算,从1月1号算 起,默认显示当前月在一年中的天数)
-y??显示当前年份的日历

1.4 cd 改变工作目录
命令格式:cd 路径名(dirname)
使用示例
cd /app 切换当前工作目录到app目录
cd????? 进入用户主目录;
cd? ~? 进入用户主目录;
cd? -? 返回进入此目录之前所在的目录;

cd? ..? 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..? 返回上两级目录;
技术分享图片
1.5 ls 用来显示文件目录列表

命令格式
$ls (选项) (参数)
选项
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-c 配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)配合?-l:显示?ctime?但根据名称排序否则:根据?ctime?排序
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是‘never‘、‘always‘或‘auto‘其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-g 类似 -l,但不列出所有者
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
-i, –inode 印出每个文件的 inode 号
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-x 逐行列出项目而不是逐栏列出
用法示例
$ ls -a 显示目录下的所有目录及文件(包括隐藏目录和文件)
技术分享图片
$ ls -l(小写字母) 长格式列出 当前目录下目录和文件(不包括隐藏目录和文件文件)
技术分享图片
$ls -1(数字1) 竖直显示当前目录和文件
技术分享图片
$ls -m 水平显示 当前目录和文件
技术分享图片
$ls -ld 显示指定当前目录的详细信息。
技术分享图片
$ls -S 按文件大小降序排列
技术分享图片
1.6tab 命令补全/路径补全
(1)命令补全
外部命令:bash 根据PATH 环境变量定义的路径,自左而
右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令,即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次Tab
(2)路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录
下搜索以指定的字符串开头的文件名。如果惟一:则直接补全
否则:再次Tab 给出列表
1.7 clear 清屏
功能:清除屏幕上的信息。清屏后,提示符移到屏幕的左上角。
1.8 帮助命令
1.8.1 help
功能:可查看所有shell内置命令的帮助信息
格式:help [选项] [参数]
用法示例
(1) 不带任何参数,则显示help命令的用法,列出shell命令的内置列表
技术分享图片
(2)带参数
$help cd 查看cd命令的用法
1.2.2 man
功能:格式化并显示某一命令的联机帮助手册页
格式 【选项】命令名
使用示例
$man ls 显示ls命令帮助信息
2.用户信息查看编辑命令
2.1 who 列出正在使用的用户,所用终端名和注册到系统的时间。
示例:
技术分享图片
2.2 passwd
更改用户密码
2.3 useradd 创建一个新用户
命令格式:useradd 【选项】 用户名
选项:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id。

用法示例:
$Useradd -u 520 liubei 创建一个新用户,并指定用户id为520
2.4 userdel 删除用户
命令格式:userdel 【选项】 用户名
选项:
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:
userdel liubei 删除用户liubei,但不删除其家目录及文件;
userdel -r liubei 删除用户liubei,其家目录及文件一并删除;

3.文件操作命令
3.1 touch 创建一个文件
命令格式:touch 【选项】 文件名或者目录名
选项:
? -a ?只修改文件的access(访问)时间.
? ? -c ?或--no-create? 不创建不存在的文件。
? ? -d ?使用指定的日期时间,而非现在的时间
? ? -m 指修改Modify(修改)时间,而不修改access(访问)时间
? ? -r ?file ?使用指定file文件的时间戳(access,modify)更新文件的时间戳(access,modify)
-t ?将时间修改为参数指定的日期,如:11221420代表11月22号14点20分
? ? ?注:access?表示最后一次访问(仅仅是访问,没有改动)文件的时间
? ? ? ? ? ? ? ? ? ? ?modify 表示最后一次修改文件的时间
? ? ? ? ? ? ? ? ? ? ?change?表示最后一次对文件属性改变的时间,包括权限,大小,属性等等
用法示例:
$touch hello.c 在当前文件夹下创建名为hello.c的文件

  3.2 cat   该命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 

命令格式:【选项】 文件名
选项:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白
用法示例 :
$ cat?-n? f1 一次编号显示名为f1的文件所有内容。

$ cat? > filename 从键盘创建一个文件。只能创建新文件,不能编辑已有文件.

$cat?? file1?? file2? > file 将几个文件合并为一个文件。

???????? 3.3 cp 复制文件或目录
命令格式:【选项】 源文件或者目录 目标文件或者目录
选项:
-a 或 --archive????此参数的效果和同时指定"-dpR"参数相同
???? -b 或 --backup????? 删除、覆盖目的文件先备份,备份的文件
或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force?????强行复制文件或目录, 不论目的文件或目录是否已经存在
???? -i 或 --interactive 覆盖文件之前先询问用户
???? -l 或 --link?????? 对源文件建立硬链接,而非复制文件
???? -p 或 --preserve??? 保留源文件或目录的属性,包括所有者、所属组、权限与时间
???? -P 或 --parents???? 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
???? -r???????????递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
???? -R 或 --recursive?? 递归处理,将指定目录下的文件及子目录一并处理
??? -s 或 --symbolic-link? 对源文件建立符号链接,而非复制文件
??? -u 或 --update????? 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
??? -v 或 --verbose???? 显示执行过程
?用法示例
$ cp f2 /app/f0 将文件复制到目录app下,并改名为f0
$cp -r /app/test/ /app/new 将目录/app/test下的所有文件及其子目录复制到目录/app/new中

???????? 3.4 mv 对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
命令格式:mv 【参数】 源文件或目录 目标文件或目录
选项:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t :指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
用法示例:
$mv f1 new 将文件改名为new
$mv /etc/* . 将/etc文件下的所有文件移到当前目录

???????? 3.5 rm?? 删除文件和目录
命令格式:【选项】 文件列表
选项:
-d --directory 删除可能仍有数据的目录 (只限超级用户)
-f --force 略过不存在的文件,不显示任何信息,强制删除
-i --interactive 进行任何删除操作前必须先确认
-r/R --recursive 同时删除该目录下的所有目录层
-v --verbose 详细显示进行的步骤
用法示例
$rm -i f1 删除f1前需确认
$rm -rf f1file 将 f1file子目录及子目录中所有档案删除,并且不用一一确认

4.系统状态管理命令
???????? 4.1 poweroff 关闭计算机
用法格式:poweroff 【选项】
选项:
-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
???????? 4.2 init
用法格式: init 【选项】
选项:
0:关机
1:单用户形式,只root进行维护
2:多用户,不能使用net file system
3:完全多用户
5:图形化
4:安全模式
6:重启
用法示例
$Init 0 立即关机。

???????? 4.3 shutdown 安全关机命令,需拥有root权限才能使用
用法格式: shutdown 【选项】
选项:
-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;
-F:重新启动时执行fsck;
-h:将系统关机;
-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;
-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

用法示例
$shutdown -h now 立即关机
$shutdown +5 定时五分钟后关机,可用ctrl+c取消关机

以上是关于Linux学习之命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习导航

学习Linux须知1.2之Linux命令的实战

N天学习一个Linux命令之帮助命令:man

三Linux学习之命令基本格式篇

《Linux学习并不难》Linux字符界面:重启Linux系统之reboot命令

Linux每天学习一个命令之cp命令