17、lunix 基础命令1
文章目录
什么是shell
内部命令和外部命令
内部命令:内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。
外部命令:外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当我们执行“ls”(通常被保存在/bin目录下)命令时,然后/bin/ls被执行
linux 命令行的格式
编辑linux命令行的辅助操作
Tab 键:自动补齐
反斜杠“\”:强制换行
Ctrl+U组合键:清空至行首
Ctrl+K组合键:清空至行尾
Ctrl+L组合键:清屏
Ctrl+C组合键:取消本次命令编辑
Ctrl+U组合键
Ctrl+E组合键:光标跳到行尾
Ctrl+A组合键:光标跳到行头
linux 基础常用命令
1、命令帮助help和–help
显示命令的帮助信息,命令的参数和用法等
help 查看内部命令
–help 查看外部命令
2、man手册的使用
linux的命令手册大全
用法:man cd
备注:Man手册 信息汇总成手册页
Help echo
Help cd
Ls –-help
Useradd --help
Man cd
Man ls |(管道符号) col -b > lshelp.txt 拷贝
man ls | col -b > lshelp.txt
在这个例子中,col 是一个命令程序,用于过滤文本中的一些特殊控制字符;另外还使 用了“|”和“>”符号,这是 Shell 环境中的两种特殊功能应用,
分别称为管道、重定向输出。
重点掌握
管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对 象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。
重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将 保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。
3、查看当前工作目录:pwd
[root@localhost ~]# pwd
/root
4、切换工作目录:cd (相对路径、绝对路径)
cd /home #后面跟绝对路径,切换到home目录
cd ./hmoe #后面跟相对路径,切换到home目录
cd ~ #切换到当前用户的家目录(宿主目录)
cd #切换到当前用户的家目录(宿主目录)
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录 上一次
cd … #切换到上一层目录(父目录) 上一层
重点理解上一层与上一次的关系
思考:如何切换到父目录的父目录(cd …/…/)
绝对路径:以根 / 开始 现场坏境用 /root/home/
相对路径:不以根为开始
(1)绝对路径
从根目录开始,依次将各级子目录的名字组合起来,形成的路径就称为某个文件的绝对路径。例如,根目录(/)下有目录usr,usr目录下有子目录bin,bin目录下有文件chsh,则chsh文件的绝对路径就是:/usr/bin/chsh
(2)相对路径
相对当前所在路径的位置,例如当前所在的位置为/usr,也就是在根目录的usr子目录下,则chsh文件相对当前位置的路径为:bin/chsh
目录和文件的管理命令
1、列表显示目录内容ls(常用选项、可结合通配符)(运维必用)
命令字 [选项] [参数]
操作 功能 要执行的对象
通用 元素
-l #将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R #递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d #查看目录本身信息,不显示目录下的内容
-i #显示inode值
-h #友好显示文件大小
-a #遍历所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-A #跟-a 唯一的不同是不列出当前目录和上一层目录
a 和 A 的区别:ls -A 不包括 .和… (. 是当前 …是上层)
ls -lh 常用
ls -Ra 递归显示所有
颜色区别
黑色是数据文件
绿色 可执行文件
黄色 块设备文件
红色 压缩包
蓝色 文件夹
天蓝色 连接文件(快捷方式)
查看日志文件大小
ls -lh /var/log/*.log .log 后缀不可少
案列查看
[root@localhost mnt]# ll
#长格式
总用量 0
drwxr-xr-x 3 root root 16 8月 21 10:39 aa
第一个字段 d 代表文件类型比如 d是目录 - 是普通文件
第2-9(rwxr-xr-x)字母表示该文件的权限
root 文件所有者
root 文件所属组
16 文件大小
21 10:39 文件的最近使用时间
aa 文件或目录名称
ls -lh
通配符扩充
符号 | 效果 |
---|---|
? | 匹配一个字符 f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 “.” 开头的文件,即隐藏文件 |
{1…10} | 1到10 |
{a…z} | a b c …z |
{A…Z} | A B C …Z |
[123] | 取其中之一有就显示没有也无所谓 |
[a-z] | 范围需要注意 |
[0-9] | 匹配数字范围(0123456789) |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
2、给命令设置别名alias
alias #查看系统当前所有可用别名
alias cp=‘cp -i’
alias egrep=‘egrep --color=auto’
alias fgrep=‘fgrep --color=auto’
alias grep=‘grep --color=auto’
alias l.=‘ls -d .* --color=auto’
alias ll=‘ls -l --color=auto’
alias ls=‘ls --color=auto’
alias mv=‘mv -i’
alias rm=‘rm -i’
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde’
alias mynw=‘vim /etc/syscnofig/network-scirpts/ifcfg-ens33’
alias ll=‘ls -lt’ #设置别名
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号
unalias ll #删除别名
永久生效
vim /root/.bashrc
临时修改
- alias 命令别名 = “命令”
- unalias 别名命令 删除别名
- \加命令 原始命令
修改
-
在/etc/bashrc 会影响全部
-
/root/.bashrc只影响当前用户
补充:
别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
init 6 重启命令
3、统计目录及文件空间占用情况du
-h:显示出每一个文件以及大小,单位是KB,MB,GB
-s:显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
du -sh * #生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况
du –ah * 友好方式 大小
4、创建新目录mkdir
mkdir /opt/sj #创建目录,注意:父目录必须存在
-p:创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时,递归创建
例如
cd /home/ceshi/
rm -rf ./* 删除当前所有目录 小数点很重要
mkdir a
ls
mkdir b c d 创建多个文件
mkdir {e…z} 创建集合
mkdir 文件名称{1…10}
通配符扩充 {} 、 【】
5、创建空文件touch
创建文件方法一:touch
①文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
②文件不存在:创建新文件
touch [文件名]
touch [文件名] [文件名]
下面是touch的高级用法
[root@localhost opt]# touch {1,2,3}
[root@localhost opt]# ls
1 2 3 rh
[root@localhost opt]# tuoch {1,2,3}.txt
[root@localhost opt]# ls
1 1.txt 2 2.txt 3 3.txt rh
[root@localhost opt]# touch {4…8}.txt
[root@localhost opt]# ls
1 1.txt 2 2.txt 3 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt rh
如果要删除则rm -rf 1\ 2\ 3
touch f{A…Z}.log
[123] 取其中之一有就显示没有也无所谓
tuoch f[zhou].log
ls f[zhou].log //四个其中的之一有就全显示
创建文件方法二:
echo “ky njzb” > ceshi 自动生成一个ceshi 文件,生产常用 类似于实际中创建一个文件,先写内容,在改名称,用于生成各种日志
创建文件方法三 :
vim 编辑器
如 vim
dome 编辑用
里面打sds 保存退出
6、创建链接文件ln(软链接、硬链接)
ln 命令用于为文件或目录建立链接文件(类似于 Windows 系统中的快捷方式),提高 用户定位文件或定位目录的效率
链接文件包括软链接和硬链接两种类型,其中软链接又称为符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同
ln -s 创建软链接,相当于创建一个快捷方式
ln 创建硬链接,相当于复制了一份副本
软链接
可以用于跨任何设备 用途广泛
软链接建立时原始文件可以不存在
如果删除源文件之后又重新建立源文件,那么软链接照样可以用
删除之后不能访问
软链接文件的大小就是软链接文件本身的文件名字符长度!
可以给目录做软链接,为了防止目录被删
硬链接
复制文本 删除之后 可以访问 不能用于跨分区建立连接 用的极少
案列
[root@kgc home]# echo “this is kgc” > demo.txt
[root@kgc home]# ln -s demo.txt test.txt
删除demo.txt 验证
rm -rf
[root@kgc home]# echo “this is kgc” > demo1.txt
[root@kgc home]# echo “this is kgc2” > demo2.txt
[root@kgc home]# ln demo1.txt test2.txt
root@localhost ~]# mkdir /bin/wx
[root@localhost ~]# ln -s /bin/bzip2 /bin/wx/
[root@localhost ~]# ls -lh /bin/wx/bzip2
lrwxrwxrwx 1 root root 10 9 月 16 14:05 /
7、复制文件或目录cp
-p:连属性一起复制
-a:保留权限,复制软链接本身,递归复制
-r:递归复制 目录一定要 -r
-f:强制复制,不与用户交互
-i:提醒覆盖
cp的高级用法:cp -v file1.txt{,.bak} 常用于备份
有时候需要更改默认别名 才能进行cp 操作
常用
cp -r
cp -rp 生产常用
8、删除文件或目录rm
-i:删除文件或目录时提醒用户确认
-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。
-f:删除文件或目录时不进行提醒,而直接强制删除
常见用法:rm -rf /* 慎用
当前etc etc/
整个 etc /etc/
最后的/ 如果没有 就全没有了
要加上/* 删掉那个humj后面的文件
删除空目录:rmdir
9、移动文件或目录/改名mv
用法:
mv [文件名] [目录名]
mv [文件名] [文件名]
-i:若指定目录已有同名文件,则先询问是否覆盖旧文件
-f:在 mv 操作要覆盖某已有的目标文件时不给任何指示
当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作
10、查找命令/文件存放目录which
which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量 PATH 决定(可以执行“echo $PATH”命令查看),
这个范围也是 Linux 操作系统在执行命令或程序时的默认搜索路径。
[root@localhost ~]# which ping //外部命令的磁盘路径 -a 所有
/usr/bin/[root@localhost ~]# which help //内部命令找不到
/usr/bin/which: no help in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# whereis echo //相关文档的帮助的命令
echo: /usr/bin/echo /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz
11、find命令 及其重要
命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
-name 按名称查找:
-size按 大小查找:
-user 按文件属主:
-type 按类型查找:
常用 - 普通文件、 d目录文件
工作常用 : “*.log"
普通文件(f)、
目录(d)、
块设备文件(b)、
字符设备文件©、
链接(1)
块设备 指的是成块读取数据的设备(如硬盘、内存等),
而字符设备 指的是按单个字符读取数据的设备(如键盘、鼠标等)
11.1 Find工具-name参数案列:
find /etc -name “resol*.conf”
find /data/ -name “.txt” #查找/data/目录以.txt结尾的文件;
find /data/ -name "[A-Z]* ” #查找/data/目录以大写字母开头的文件;
find / data /-name “ test* ”#查找/data/目录以test开头的文件;
11.2 Find工具-size参数案列
find /data/ -size +1M #查文件大小大于1Mb的文件;
find /data/ -size 4M #查文件大小为10M的文件;
find/ data/ -size -1M #查文件大小小于1Mb的文件;
11.3Find工具-type参数案列:
find / boot -type d
find /data/ -type d#查找/data/目录下的文件夹;
find /data/ ! -type d#查找/data/目录下的非文件夹;
find /data/ -type l #查找/data/目录下的链接文件。
11.4 查找存在的用户的文件
find /home -user 用户名
find /home -user 用户名 -group 组名
设置 find 命令的查找条件时,若需要使用* 或 “?” 通配符,最好将文件名用双引号括起来,以避免当前目录下符合条件的文件干扰查找结果
find /boot -size +1024k -a/-o -name “vmlinuz*”
使用“-a”“-o”组合两个条件,前者表示两个条件必须同时满足, 后者表示只需满足其中任何一个条件即可
扩展
xargs
可以和管道配合 重点掌握
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh
-atime – 访问时间
Linux中日志放在/var/log sylog
-mtime – 文件内容修改时间
-ctime – 文件属性修改时间
ctime ##以天为单位
cmin ##以分钟为单位
find ./ -name “syslog.*.gz” -mtime -5 -exec ls -lh {} ; # +5是五天以前 #-5天以内
在当前目录下(包含子目录),删除所有txt文件
find ./ -name “*.txt” -exec rm {} ;
在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行
find ./ -name “*.txt” - exec grep “bin” {} ;
多条件查找
-a:并且
-o:或者
[root@localhost ~]# find /mnt -user root -a -size +5m
[root@localhost ~]# find /mnt -user root -o -size +5m
-not表示非;即反向选择
[root@localhost ~]# find /mnt -not -user root
按权限查找:-perm
[root@localhost ~]# find /bin/ -perm 755 # 等于 0755 权限的文件或目录
[root@localhost ~]# find /bin/ -perm -644 #-perm -644 至少有 644 权限的文件或目录
生产案列
find /backup/ -type f -name “* .log” -exec rm {} ; #删除备份文件
find /backup/ -type f -name “* .dmp” -exec rm {} ;#删除日志文件
find /backup/ -type f -name “*.tar.gz” -mtime +5 -exec rm -rf {} ; #删除5天前的备份
(注意:{} \中间有空格)
总结:
主要认识了什么是shell,什么是内部命令和外部命令,绝对路径和相对路径如何辨析,Linux辅助行的一些快捷操作、两个基础命令(help、man手册、pwd、cd)、十一个常见目录和管理命令(ls、alias、du、mkdir 、touch ln 、cp 、 rm 、mv、 which 、find )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具