Linux-基本命令

一.命令提示符

1.Linux 系统的命令提示符

root@localhost ~#

  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $

2.家目录(又称主目录)

Linux 系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家:

  • 超级用户的家目录:/root。
  • 普通用户的家目录:/home/用户名。
  • 命令cd/cd ~ 都能快速回到家目录

3.命令的基本格式

命令[选项][参数]

命令格式中的 [] 代表可选项,有些命令可以不写选项或参数,也能执行

①.选项的作用,调整命令的功能,显示更加丰富的数据

ls -l

②.参数的作用,参数是命令的操作对象,一般文件、目录、用户、进程都可以是操作对象

ls -l anaconda-ks.cfg

-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg

③.为何可以省去参数,因为有默认参数

二、常用基础命令

1.cd命令:Change Directory ,用来切换工作目录

cd [相对路径或绝对路径]

~代表当前登录用户的主目录

# 返回上次所在目录
cd -
# 返回当前目录
cd .
# 返回上级目录
cd ..
# 切换到当前用户目录
cd ~

引申

# 获取当前角色
whoami
# 切换角色
su root

2.pwd命令:Print Working Directory ,显示当前路径


3.ls命令:list,查看目录下文件

ls [选项] 目录名称

# 时间顺序显示
ls -lt
# 时间逆序显示
ls -lrt
# 带单位显示
ls -lh

4.mkdir命令:make directories,创建目录(文件夹)

mkdir [-mp] 目录名

  • -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
  • -p 选项递归创建所有目录
# 创建test1文件夹
mkdir test1
# 递归创建所有目录
mkdir -p test2/test3/test4
# 给创建的目录设置权限
mkdir -m 222 test3

5.rmdir命令:remove empty directories,删除空目录 **

rmdir [-p] 目录名

# rm比rmdir更好
# 从最底层删起,这样就保证每层都是空目录
rmdir -p test2/test3/test4

6.touch命令:创建文件

主要是修改时间参数(访问时间,数据修改时间,状态修改时间-文件权限/属性改变)
引申:可用于DockerFile添加jar后,更新为当前时间

touch [选项] 文件名

选项:

  • -a:只修改文件的访问时间;
  • -c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
  • -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
  • -m:只修改文件的数据修改时间。
  • -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm
# touch 命令创建文件。
# 建立名为 a.txt 的空文件
touch a.txt

7.ln链接

硬链接:一个文件修改,多个文件都会生效

ln 源文件名称 硬链接文件名称

软链接:为某一个文件在另外一个位置建立一个不同的链接

当删了原文件,则软链接就会变成红色字体

ln -s 源文件名称 软链接文件名称

取消链接

# 添加 源文件名称 软链接文件名称
ln -s /usr/jboss4.0.5.GA/ jboss
# 删除 !!!注意!!!血泪教训
# rm -rf xxxx/ 加了个/ 这个是删除文件夹
# rm -rf xxxx 没有/ 这个才是删除软链接
# 小心使用tab补充,多/造成删除数据无法恢复
rm jboss

8.cp命令:copy files and directories,复制文件和目录

cp[选项] 源文件 目标文件

  • -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
  • -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
  • -i:询问,如果目标文件已经存在,则会询问是否覆盖;
  • -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
  • -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
  • -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
  • -r:递归复制,用于复制目录;
  • -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用;
# 复制文件kw到test1文件夹下
cp 源文件 目标文件夹位置
# 复制文件并改名**kw到test2文件夹下并改名为dkw(若存着同名文件夹,则覆盖)
# 其中**复制文件夹改名**需要 -r
cp 源文件 目标文 件夹位置+新名字
# 复制文件夹,递归复制
cp -r 源文件夹位置 目标文件夹位置

9.rm命令:remove files and directories,删除文件或目录

rm[选项] 文件或目录

  • -f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
  • -i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
  • -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
# 递归删除,目录及以下所有内容
rm -r 文件/文件夹
# 防止误删文件/文件夹
rm -ri 文件/文件夹
# 强制删除所有文件和目录
rm -rf 文件/文件夹

10.mv命令:move,移动文件或改名

mv 【选项】 源文件 目标文件

  • -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
  • -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖;
  • -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
  • -v:显示文件或目录的移动过程;
  • -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级
# 文件移动到文件夹
mv 文件 文件夹    
# 移动文件夹(文件夹中有文件也不需要-r)  
mv 文件夹 文件夹       
# 移动文件并改名(可以当前目录,单文件改名)
mv 文件名a 文件名b     
# 移动文件夹并改名(可以当前目录,单文件改名)
mv 文件夹名a 文件夹名b

11.Tab补全文件名


12.tar命令&其他:将许多文件一起保存到一个单独的磁带或磁盘中进行归档;从归档文件中还原所需文件

tar [选项] 源文件或目录

.tar.gz 和 .tgz

# 打包:
tar cvf FileName.tar DirName
# 解包:
tar xvf FileName.tar


# 压缩:
tar zcvf FileName.tar.gz DirNam
# 解压:
tar zxvf FileName.tar.gz
# 解压到指定目录
tar zxvf FileName.tar.gz -C ./

报错:

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
# 未使用z命令,导致
tar xvf FileName.tar.gz即可

.gz

# 解压1:
gunzip FileName.gz
# 解压2:
gzip -d FileName.gz
# 压缩:
gzip FileName

.bz2

# 解压1:
bzip2 -d FileName.bz2
# 解压2:
bunzip2 FileName.bz2
# 压缩:
 bzip2 -z FileName

.tar.bz2

# 压缩:
tar jcvf FileName.tar.bz2 DirName
# 解压:
tar jxvf FileName.tar.bz2

.bz

# 解压1:
bzip2 -d FileName.bz
# 解压2:
bunzip2 FileName.bz

.tar.bz

# 解压:
tar jxvf FileName.tar.bz

.Z

# 解压:
uncompress FileName.Z
# 压缩:
compress FileName

.tar.Z

# 解压:
tar Zxvf FileName.tar.Z
# 压缩:
tar Zcvf FileName.tar.Z DirName

.rar

# 下载linux包
wegt https://www.rarlab.com/rar/rarlinux-x64-5.8.0.tar.gz
# 解压编译
tar zxvf rarlinux-3.8.0.tar.gz &&
cd rar &&
make &&
make install 
# 添加到环境变量;可以不添加,直接全路径执行


# 解压:
rar x FileName.rar
# 压缩:
rar a FileName.rar DirName 

13.zip压缩命令

将当前目录下的所有文件和文件夹全部压缩成m.zip文件,-r表示递归压缩子目录下所有文件.

zip -r m.zip ./*

zip解压

# 直接解压到当前目录下
unzip yasuo.zip
# 把myfile.zip文件解压到 /home/sunny/
# -o:不提示的情况下覆盖文件;-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下
unzip -o -d /home/sunny myfile.zip

14.cat命令:concatenate(连接、连续),连接文件并打印输出到标准输出设备

cat [选项] 文件名

cat 命令常用选项及含义

# 显示行号
cat -n 文件名
# 文件12合并成文件3
cat 文件1 文件2>文件3 
# 在文件中匹配字符串
cat 路径/文件名 |grep 字符串
# 在文件中匹配字符串前后10行
cat 路径/文件名 |grep 字符串 -A10
cat 路径/文件名 |grep 字符串 -C10
# 统计关键字出现次数
cat  XXX.log|grep ''|grep '条件'| wc -l   单个条件统计

15.tail命令:显示文件结尾的内容

# 实时显示最后50行
tail -50f sys.log

16.重定向

# 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。
命令 > 文件
# 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。
命令 >> 文件
# 将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。
# 注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。
命令 >> 文件 2>&1

17.grep(global regular expressions print)命令详解:查找文件内容

grep [选项] 模式 文件名

grep 命令常用选项及含义

# 仅列出文件中包含模式的行数。
-c
# 忽略模式中的字母大小写。
-i
# 列出带有匹配行的文件名。
-l
# 在每一行的最前面列出行号。
-n
# 列出没有匹配模式的行。
-v
# 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。
-w
# 递归搜索
-r


# 假设有一份 emp.data 员工清单,现在要搜索此文件,找出职位为 CLERK 的所有员工,则执行命令如下:
grep CLERK emp.data
# 而在此基础上,如果只想知道职位为 CLERK 的员工的人数,可以使用“-c”选项,执行命令如下:
grep -c CLERK emp.data
# 搜索 emp.data 文件,使用正则表达式找出以 78 开头的数据行,执行命令如下:
grep ^78 emp.data

正则表达式的通配符

# 将匹配 0 个(即空白)或多个字符 c(c 为任一字符)。
c*
# 将匹配任何一个字符,且只能是一个字符。
.
# 匹配方括号中的任意一个字符。
[xyz]
# 匹配除方括号中字符外的所有字符。
[^xyz]
# 锁定行的开头。
^
# 锁定行的结尾。
$ 

18.find命令:在目录中查找文件--按照文件名搜索文件,还可按照权限、大小、时间、inode 号等来搜索文件

find 搜索路径 [选项] 搜索内容

find 是比较特殊的命令,它有两个参数:

  • 第一个参数用来指定搜索路径;
  • 第二个参数用来指定搜索内容。

选项:

  • -name: 按照文件名搜索;
  • -iname: 按照文件名搜索,不区分文件名大小;
  • -inum: 按照 inode 号搜索;
# 在当前目录查找指定文件
find . -name "*.pl"        
# 查找当前目录下的普通文件
find . -type f            
# 查找权限775
find . -perm 775   
# 查找文件       
find . -size +/-1k 

19.which命令:列出命令的所在路径

# which和 whereis 命令的区别在于:
# 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
whereis
# 命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。
which ls

20.whereis命令:査找二进制命令、源文件和帮助文档

whereis [选项] 命令

  • -b: 只査找二制命令;
  • -m: 只查找帮助文档;
# 查找命令帮助文档
whereis -m 命令

21.stat命令:显示文件或文件系统的详细信息(访问时间、数据修改时间、状态修改时间)

stat [选项]文件名或目录名

  • -f:査看文件所在的文件系统信息,而不是査看文件的信息。
  • -a:文件名/文件夹名 显示文件系统的详细信息

22.file命令,查看文件类型

file 文件名    查看文件类型


23.yum命令,在线安装

# 在线安装全是yes
yum -y install 文件

24.rpm命令,安装软件


25.systemctl

提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动**

# 示例mariadb命令
systemctl status mariadb
systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb

26.chmod 改变文件权限

权限,执行脚本等都需要用到

# 增加用户读权限
chmod u+r
# 增加所有人写权限
chmod a+w
# 增加组执行权限
chmod g+x
# 更改文件权限为rwx-xr-x (r=4 w=2 x=1)值相加
chmod 755 文件名

27.su 切换用户


28.history 历史命令

# 显示历史命令
history
# 删除本次登录执行的命令
history -c
# 情况所有历史命令
在root用户的根目录下找到.history
>.history

29.alias给命令定义别名

取消默认

30.date查看服务器时间

# 服务器时间校准
yum install ntpdate
ntpdate cn.pool.ntp.org
date
# 手动修改服务器时间
date -s 20091103
date -s 17:55:55

31.uptime查看服务器运行时间


32.sz/rz  下载上传


33.scp 远程复制

服务器之间的文件复制

https://www.cnblogs.com/zhwang1216/p/12115842.html

# 将本地服务器文件拷贝到远程服务器
scp /root/install.* root@192.168.1.12:/usr/local/src
# 将远程服务器文件拷贝到本地服务器
scp root@192.168.1.12:/src/1.log /root/
# 将本地服务器文件夹拷贝到远程服务器
scp -r /home/txt1 root@192.168.0.1:/home/test2 
# 将远程服务器文件夹拷贝到本地服务器
scp  -r root@192.168.0.1:/home/test2 /home/txt1
# 指定远程服务器端口
scp -P 17382 gx_dcms.sql  root@192.168.220.184:/data/test/dingkw/sql

34.xargs传递参数

# 示例
docker images | grep '\<${del_imagesi}>'|awk '{print $1":"$2}' |awk 'NR>2'|xargs docker rmi

35.corntab -e定时任务


posted @ 2021-09-11 22:46  难删亦删  阅读(160)  评论(0)    收藏  举报