Linux基础命令

Linux基础命令

1、shell

1.1 shell简介

Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

常见的shell有两种,一种是图形界面,即GUI,一种是命令行终端,即CLI

1.常用的GUI:Graphic User Interface

  • Windows
  • X‐Window
    • Gnome
    • KDE
    • Xfce

2.常用的CLI:Command Line Interface

  • bash
  • sh
  • csh
  • zsh
  • ksh
  • tcsh

Redhat Linux使用的是:bash shell

1.2 本地控制台访问命令行

命令行是可被用来输入指令到计算机系统中的基于文本的界面。 Linux的命令行是通过一个叫做shell程序提供。Redhat系统默认的shell为Bourne‐Again Shell(bash)。 Bash是在类UNIX系统中,是Bourne shell(sh)使用的最成功的其中一个shell的改进版本。

当shell被交互使用时,它将显示一个字符串时,它从用户等待一个命令。这就是所谓的shell提示符。当一个普通用户启动一个shell,默认提示以$字符结束。
管理员用户:

[root@jlin ~]#

普通用户:

[root@jlin ~]$

2、Linux基础命令

2.1 命令格式

命令 [选项] [参数]

选项:(可以有0个或多个)
	短选项:‐
		多个选项可以组合: ‐a ‐b = ‐ab
	长选项:‐‐
		长选项通常不能组合

参数:命令的作用对象(可以有0个或多个)

2.2 命令类型

Linux命令分为两种类型:

  • 内部命令:shell内置
  • 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type	#显示指定命令属于哪种类型
[root@jlin ~]# type cd
cd 是 shell 内建

2.3 基础命令

2.3.1 目录管理命令

ls命令 列出目录内容

‐l	# 长格式
	以长格式显示的第一段含义:
	第一个字符:文件类型
	‐	#普通文件(f)
	d	#目录文件
	b	#块设备文件(block)
	c	#字符设备文件(character)
	l 	#符号链接文件(symbolic link file)
	p	#命令管道(pipe)
	s	#套接字文件(socket)
	后面九位字符:文件权限
	9位,每3位一组,每一组:rwx(读,写,执行)
	以长格式显示的第二段含义:
		文件硬链接的次数
	以长格式显示的第三段含义:
		文件的属主(owner)
	以长格式显示的第四段含义:
		文件的属组(group)
	以长格式显示的第五段含义:
		文件大小(size),单位是字节
	以长格式显示的第六,七,八段含义:
		时间戳(timestamp),最近一次被修改的时间
		访问	#access
		修改	#modify,文件内容发生改变
		改变	#change,metadata(元数据)
‐h	#做单位转换
‐a	#显示以.开头的隐藏文件
.	#表示当前目录
..	#表示父目录
‐d	#显示目录自身属性
‐i	#显示文件的inode(index node)
‐r	#逆序显示
‐R	#递归(recursive)显示

// 示例
[root@jlin ~]# ls -l
总用量 8
-rw-------. 1 root root 1766 5月  27 02:15 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 5月  27 02:18 Desktop
drwxr-xr-x. 2 root root    6 5月  27 02:18 Documents
drwxr-xr-x. 2 root root    6 5月  27 02:18 Downloads
-rw-r--r--. 1 root root 1797 5月  27 02:17 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 5月  27 02:18 Music
drwxr-xr-x. 2 root root    6 5月  27 02:18 Pictures
drwxr-xr-x. 2 root root    6 5月  27 02:18 Public
drwxr-xr-x. 2 root root    6 5月  27 02:18 Templates
drwxr-xr-x. 2 root root    6 5月  27 02:18 Videos

[root@jlin ~]# ls -h
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

[root@jlin ~]# ls -a
.                .bash_profile  .dbus      .ICEauthority         Public
..               .bashrc        Desktop    initial-setup-ks.cfg  .tcshrc
anaconda-ks.cfg  .cache         Documents  .local                Templates
.bash_history    .config        Downloads  Music                 Videos
.bash_logout     .cshrc         .esd_auth  Pictures              .viminfo

[root@jlin ~]# ls .
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

[root@jlin ~]# ls ..
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

[root@jlin ~]# ls -d
.
[root@jlin ~]# ls -i
100663375 anaconda-ks.cfg  100663397 initial-setup-ks.cfg    1830150 Templates
 68012286 Desktop          100674629 Music                  33586201 Videos
 68012287 Documents          1830151 Pictures
100674628 Downloads         33586200 Public

[root@jlin ~]# ls -r
Videos     Public    Music                 Downloads  Desktop
Templates  Pictures  initial-setup-ks.cfg  Documents  anaconda-ks.cfg

[root@jlin ~]# ls -R
.:
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

./Desktop:

./Documents:

./Downloads:

./Music:

./Pictures:

./Public:

./Templates:

./Videos:

cd命令 切换目录

cd	#切换到用户家目录
cd /mnt	#切换到/mnt目录
cd ..	#切换到当前目录的上一级目录

// 示例
[root@jlin ~]# cd /mnt
[root@jlin mnt]# cd ..
[root@jlin /]# cd
[root@jlin ~]#

pwd命令 查看当前所在目录路径

// 示例
[root@jlin ~]# pwd
/root

tree命令 查看目录树

‐d	#只显示目录
‐L	#level,指定显示的层级数目
‐P	#pattern,只显示由指定pattern匹配到的路径

// 示例
[root@jlin ~]# tree -d
.
├── Desktop
├── Documents
├── Downloads
├── Music
├── Pictures
├── Public
├── Templates
└── Videos

[root@jlin ~]# tree -l
.
├── anaconda-ks.cfg
├── Desktop
├── Documents
├── Downloads
├── initial-setup-ks.cfg
├── Music
├── Pictures
├── Public
├── Templates
└── Videos

[root@jlin ~]# tree -p
.
├── [-rw-------]  anaconda-ks.cfg
├── [drwxr-xr-x]  Desktop
├── [drwxr-xr-x]  Documents
├── [drwxr-xr-x]  Downloads
├── [-rw-r--r--]  initial-setup-ks.cfg
├── [drwxr-xr-x]  Music
├── [drwxr-xr-x]  Pictures
├── [drwxr-xr-x]  Public
├── [drwxr-xr-x]  Templates
└── [drwxr-xr-x]  Videos

echo命令 回声

// 显示普通字符串
[root@jlin ~]# echo "test"
test

// 显示转义字符
[root@jlin ~]# echo "\"test\""
"test"

// 显示命令执行结果
[root@jlin ~]# echo `pwd`
/root

// 显示结果定向至文件
[root@jlin ~]# echo "test" >> test
[root@jlin ~]# cat test
test

// 显示密码并修改用户密码
[root@jlin ~]# echo "123qwe" | passwd --stdin qingyu
更改用户 qingyu 的密码 。
passwd:所有的身份验证令牌已经成功更新。

2.3.2 文件管理命令

mkdir命令 创建目录

‐p	#创建目录时若父目录不存在则自动创建
‐v	#显示目录创建过程

// 示例
[root@jlin ~]# mkdir jlin
[root@jlin ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  jlin                  Pictures  Templates

[root@jlin ~]# mkdir -p JLL/LLJ
[root@jlin ~]# ls JLL/
LLJ

[root@jlin ~]# mkdir -pv LLL/JJJ
mkdir: 已创建目录 "LLL"
mkdir: 已创建目录 "LLL/JJJ"

rmdir命令 删除目录,只能删除空目录

// 示例
[root@jlin ~]# rmdir jlin/
[root@jlin ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  LLL    Pictures  Templates
Desktop          Downloads  JLL                   Music  Public    Videos

touch命令 创建一个空文件

touch jlin	#创建jlin文件
touch {1..17}	#创建1-17文件
touch test{1-17}	#创建test1-17文件

// 示例
[root@jlin ~]# touch jlin
[root@jlin ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  jlin                  Pictures  Templates

[root@jlin ~]# touch {1..17}
[root@jlin ~]# ls
1   12  15  2  5  8                Desktop    initial-setup-ks.cfg  Pictures   Videos
10  13  16  3  6  9                Documents  jlin                  Public
11  14  17  4  7  anaconda-ks.cfg  Downloads  Music                 Templates

[root@jlin ~]# touch test{1..17}
[root@jlin ~]# ls
1   14  3  8                Downloads             Public     test12  test17  test6
10  15  4  9                initial-setup-ks.cfg  Templates  test13  test2   test7
11  16  5  anaconda-ks.cfg  jlin                  test1      test14  test3   test8
12  17  6  Desktop          Music                 test10     test15  test4   test9
13  2   7  Documents        Pictures              test11     test16  test5   Videos

stat命令 显示文件或文件系统的状态

stat jlin	#查看文件jlin的状态

// 示例
[root@jlin ~]# stat jlin 
  文件:"jlin"
  大小:0               块:0          IO 块:4096   普通空文件
设备:fd00h/64768d      Inode:100830766   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2021-07-08 02:24:15.185879499 -0400
最近更改:2021-07-08 02:24:15.185879499 -0400
最近改动:2021-07-08 02:24:15.185879499 -0400
创建时间:-
[root@jlin ~]#

rm命令 删除文件

‐r	#递归删除,删除目录时必须使用此选项
‐f	#强制删除,不询问
rm -rf test*	#强制删除以test开头的所有文件
rm -rf {1..17}	#强制删除1-17文件

// 示例
[root@jlin ~]# rm -f jlin 
[root@jlin ~]# ls
1   14  3  8                Downloads             Templates  test13  test2  test7
10  15  4  9                initial-setup-ks.cfg  test1      test14  test3  test8
11  16  5  anaconda-ks.cfg  Music                 test10     test15  test4  test9
12  17  6  Desktop          Pictures              test11     test16  test5  Videos
13  2   7  Documents        Public                test12     test17  test6
[root@jlin ~]# rm -rf test*
[root@jlin ~]# ls
1   12  15  2  5  8                Desktop    initial-setup-ks.cfg  Public
10  13  16  3  6  9                Documents  Music                 Templates
11  14  17  4  7  anaconda-ks.cfg  Downloads  Pictures              Videos
[root@jlin ~]# rm -rf {1..17}
[root@jlin ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

cp命令 复制文件

‐a //归档复制,常用于备份
‐r //递归拷贝,拷贝目录时必须使用此选项
‐p //拷贝时保留原权限

mv命令 移动文件

mv JLin /mnt	#将JLin文件移动到/mnt下
mv /mnt/Jlin /root/JJJ	#将/mnt/JLin移动到/root下并重命名为JJJ
// 示例
[root@jlin ~]# mv JLin /mnt/
[root@jlin ~]# ls /mnt/
JLin

[root@jlin ~]# mv /mnt/JLin /root/JJJ
[root@jlin ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
Desktop          Downloads  JJJ                   Pictures  Templates

install命令 复制文件并且设置属性

‐m	MODE
‐o	OWNER
‐g	GROUP

2.4 如何获取命令帮助

//内部命令
	help COMMAND
//外部命令
	COMMAND ‐‐help
//在线文档
	info COMMAND
//命令手册 manual
	man COMMAND
//文档
	/usr/share/doc
whatis COMMAND	//用于查看COMMAND出现在man的哪一章节中。
	//查询man帮助中此命令的作用

//man是分章节的,以下是每一章节的内容介绍:
	1 用户命令(/bin,/usr/bin,/usr/local/bin);
	2 系统调用;
	3 库调用;
	4 特殊文件(设备文件);
	5 文件格式(配置文件 的语法);
	6 游戏;
	7 杂项(Miscellaneous);
	8 管理命令(/sbin,/usr/sbin,/usr/local/sbin)

//man手册注意事项:
	[]	//可选
	<>	//必选
	...	//可以出现多次
	|	//多选一
	{}	//分组
	NAME	//命令名称及功能简要说明
	SYNOPSIS	//用法说明,包括可用的选项
	DESCRIPTION	//命令功能的详尽说明,可能包括每一个选项的意义
	OPTIONS	//说明每一个选项的意义
	FILES	//此命令相关的配置文件
	BUGS	//报告bug
	EXAMPLES	//使用示例
	SEE ALSO	//另外参照

//man翻屏
	SPACE	//向后翻一屏
	b	//向前翻一屏
	enter	//向后翻一行
	k	//向前翻一行

//查找
	/KEYWORD	//向后
	?KEYWORD	//向前
	n	//下一个
	N	//前一个
	q	//退出

3、bash特性

3.1 bash支持以下特性:

支持命令历史、命令补全
支持管道、重定向
支持命令别名
支持命令行编辑
支持命令行展开
支持文件名通配
支持变量
支持变成

3.2 bash支持的引号

``	//反引号,键盘左上角Esc下面的键,用于命令替换
""	//双引号,弱引用,可以实现变量替换
''	//单引号,强引用,不完成变量替换

3.3 bash常用操作

//光标跳转
Ctrl+a	//跳到命令行首
Ctrl+e	//跳到命令行尾
Ctrl+u	//剪切光标至命令首的内容
Ctrl+k	//剪切光标至命令尾的内容
Ctrl+<--	//光标定位到离自己最近的一个单词前面
Ctrl+p	//重复上一次命令
Ctrl+w	//剪切前面的字符至上一个空格处
Ctrl+y	//粘贴或者恢复上次的删除
Ctrl+l	//清屏
Ctrl+s	//暂时冻结当前shell的输入
Ctrl+q	//解冻

//命令历史
history	//查看命令历史
	-c	//清空命令历史
	-d OFFSET [n]	//删除指定位置的命令历史
	-w	//保存命令历史至历史文件~/.bash_history中

    //命令历史的使用技巧
	!n	//执行命令历史中的第n条命令
	!-n	//执行命令历史中的倒数第n条命令
	!!	//执行上一条命令
	!string	//执行命令历史中最近一个以指定字符串开头的命令
	!$	//应用前一个命令的最后一个参数
	esc .	//按下esc松开后按.,应用前一个命令的最后一个参数

    //控制命令历史的历史方式
	//环境变量 HISTCONTROL
	    ignoredups	//忽略重复的命令(连续且相同方为“重复”)
	    ignorespace	//忽略所有以空格开头的命令,如“ls -l”
	    ignoreboth	//ignoredups和ignorespsce均生效

	修改环境变量HISTCONTROL值的方式
	    export HISTCONTROL=ignoreboth

//命令补全
    搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件
    如果多于一个,两次tab,可以给出列表,否则将直接补全

//路径补全
    搜索我们给出的起始路径下的每个文件名,并试图补全

//命令别名
    alias Aliasname='COMMAND [options] [arguments]'

    配置文件所在:/etc/bashrc

    在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围为当前的shell前程

//命令转换(命令转义)	//把命令中某个子命令替换为其执行结果的过程
    $(COMMAND)	//推荐方式
	或
    'COMMAND'

//命令行常见符号
    ~	//展开为用户的家目录
    ~USERNAME	//展开为指定用户的家目录
    {}	//课承载一个以逗号分隔的列表,并将其展开为多个路径
	/tmp/{a,b} = /tmp/a, /tmp/b
	/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

//文件名通配 globbing
    * //匹配任意长度的任意字符
    ? //匹配任意单个字符
    [] //匹配指定范围内的任意单个字符
	[abc],[a‐m],[0‐9]
	[[:space:]] //表示空白字符
	[[:punct:]] //表示标点符号
	[[:lower:]] //表示小写字母
	[[:upper:]] //表示大写字母
	[[:alpha:]] //表示大小写字母
	[[:digit:]] //表示数字
	[[:alnum:]] //表示数字和大小写字母
使用man 7 glob命令可以获得以上字符集合的帮助信息!!!
    [^] //匹配指定范围之外的任意单个字符

//环境变量
    PATH	//命令搜索路径
    HISTSIZE	//命令历史缓冲区大小
    SHELL	//当前shell

//bash内置变量
    RANDOM	//保存着0‐32768之间的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉只只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值