在计算机的世界里,Linux操作系统以其强大的功能和灵活性受到了广大程序员和IT爱好者的喜爱。然而,对于初学者来说,Linux的操作命令可能会显得有些复杂和难以理解。今天,我们就来一起探索一些Linux常用操作命令,让你的计算机操作更加流畅。一、目录操作首先带大家了解一下Linux系统目录:
在计算机的世界里,Linux操作系统以其强大的功能和灵活性受到了广大程序员和IT爱好者的喜爱。然而,对于初学者来说,Linux的操作命令可能会显得有些复杂和难以理解。
今天,我们就来一起探索一些Linux常用操作命令,让你的计算机操作更加流畅。
首先带大家了解一下Linux 系统目录:
├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
下面我们来看目录操作命令有哪些
pwd 查看当前工作目录
clear 清除屏幕
cd ~ 当前用户目录
cd / 根目录
cd - 上一次访问的目录
cd .. 上一级目录
查看目录内信息
ll 查看当前目录下内容(LL的小写)
创建目录
递归创建目录(会创建里面没有的目录文件夹)
mkdir -p temp/nginx
搜索命令
重命名
mv 原先目录 文件的名称 mv tomcat001 tomcat
剪切命令(有目录剪切到制定目录下,没有的话剪切为指定目录)
mv /aaa /bbb 将根目录下的aaa目录,移动到bbb目录下(假如没有bbb目录,则重命名为bbb);
mv bbbb usr/bbb 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv bbb usr/aaa 将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa;
复制目录
cp -r /aaa /bbb:将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaa
cp -r /aaa /bbb/aaa:将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;
强制式删除指定目录
rm -rf /bbb:强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,不会提示;
删除目录
查看树状目录结构
tree test01/
批量操作
需要采用{}进行参数的传入了。
mkdir {dirA,dirB} # 批量创建测试目录
touch dirA/{A1,A2,A3} # dirA创建三个文件dirA/A1,dirA/A2,dirA/A3
删除
rm -r a.java 删除当前目录下的a.java文件(每次会询问是否删除y:同意)
强制删除
创建文件
touch testFile
递归删除.pyc格式的文件
find . -name '*.pyc' -exec rm -rf {} \;
打印当前文件夹下指定大小的文件
find . -name "*" -size 145800c -print
递归删除指定大小的文件(145800)
find . -name "*" -size 145800c -exec rm -rf {} \;
递归删除指定大小的文件,并打印出来
find . -name "*" -size 145800c -print -exec rm -rf {} \;
split拆分文件
split命令:可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
使用split命令将上面创建的date.file文件分割成大小为10KB的小文件:
[root@localhost split]# split -b 10k date.file
[root@localhost split]# ls
date.file xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度:
[root@localhost split]# split -b 10k date.file -d -a 3
[root@localhost split]# ls
date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009
为分割后的文件指定文件名的前缀:
[root@localhost split]# split -b 10k date.file -d -a 3 split_file
[root@localhost split]# ls
date.file split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009
使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件:
split -l 10 date.file
修改文件内容
cat a.java 查看a.java文件的最后一页内容;
more a.java从 第一页开始查看a.java文件内容,按回车键一行一行进行查看,按空格键一页一页进行查看,q退出;
less a.java 从第一页开始查看a.java文件内容,按回车键一行一行的看,按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出。
总结下more和less的区别
实时查看文件后几行(实时查看日志)
tail -f a.java 查看a.java文件的后10行内容;
前后几行查看
文件内部搜索指定的内容
终止当前操作
Ctrl+c和Ctrl+z都是中断命令,但是作用却不一样。
Ctrl+Z就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
Ctrl+C也扮演类似的角色,强制终端程序的执行。
你还在苦恼找不到真正免费的编程学习平台吗?可以试试【云端源想】!课程视频、知识库、微实战、云实验室、一对一咨询……你想要的全部学习资源这里都有,重点是现在还是免费的!点这里即可免费学习!
重定向功能
可以使用 > 或 < 将命令的输出的命令重定向到test.txt文件中(没有则创建一个)
echo 'Hello World' > /root/test.txt
1、grep(检索文件内容)
grep [options] pattern file
// 从test开头文件中,查找含有start的行
grep "start" test*
// 查看包含https的行,并展示前1行(-A),后1行(-B)
grep -A 1 -B 1 "https" wget-log
2、awk(数据统计)
awk [options] 'cmd' file
awk '{print $1,$3}' email.out
2)将email.out进行切分,当第1列为tcp,第2列为1的列,全部打印
awk '$1=="tcp" && $2==1{print $0}' email.out
3)在上面的基础上将表头进行打印(NR表头)
awk '($1=="tcp" && $2==1)|| NR==1 {print $0}' email.out
4) 以,为分隔符,切分数据,并打印第二列的内容
awk -F "," '{print $2}' test.txt
5)将日志中第1/3列进行打印,并对第1列的数据进行分类统计
awk '{print $1,$3}' email.out | awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}'
6)根据逗号,切分数据,并将第一列存在文件test01.txt中
awk -F "," '{print $1 >> "test01.txt"}
3、sed(替换文件内容)
sed替换标记
g # 表示行内全面替换。\ p # 表示打印行。\ w # 表示把行写入一个文件。\ x # 表示互换模板块中的文本和缓冲区中的文本。\ y # 表示把一个字符翻译为另外的字符(但是不用于正则表达式)\ \1 # 子串匹配标记\ & # 已匹配字符串标记
1)替换解析
sed -i 's/^Str/String/' replace.java
2)将末尾的.替换为;(转义.)
sed -i 's/\.$/\;/'
3)全文将Jack替换为me(g是全部替换,不加只替换首个)
sed -i 's/Jack/me/g/ replace.java
4)删除replace.java中的空格(d是删除)
sed -i '/^ *$/d' replace.java
5)删除包含Interger的行(d是删除)
sed -i '/Interger/d' replace.java
6)多命令一起执行
grep 'input' 123.txt | sed 's/\"//g; s/,/\n/g'
7)替换后将数据保存在文中
grep 123.txt | sed -n 's/\"//gw test01.txt'
4、管道操作符|
可将指令连接起来,前一个指令的输出作为后一个指令的输入
find ~ |grep "test"
find ~ //查找当前用户所有文件
grep "test" //从文件中
使用管道注意的要点
1)从email.log文件中查询包含error的行
grep 'error' email.log
2)获取到error的行,并取[]含有数字的
grep 'error' email.log | grep -o '\[0-9\]'
3)并过滤掉含有当前进程
ps -ef|grep tomcat |grep -v
4)替换后将数据保存在文中
grep 123.txt | sed -n 's/\"//gw test01.txt'
5)将文件123.txt,按,切分,去除",按:切分后,将第一列存到文件test01.txt中
grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"//g; s/,/\n/g' | awk -F ":"
5、cut(数据裁剪)
\ 文件截取
[root@VM-0-9-centos shell]# cut -d ":" -f 1 cut.txt
管道截取
[root@VM-0-9-centos shell]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# 按:分割。截取第3列
[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3
/usr/sbin
# 按:分割。截取第3列之后数据
[root@VM-0-9-centos shell]# echo $PATH | cut -d ":" -f 3-
/usr/sbin:/usr/bin:/root/bin
[root@VM-0-9-centos shell]#
查看某文件下的用户操作日志\ 到达操作的目录下,执行下面的程序:
cat .bash_history
1、创建软连接
ln -s /usr/local/app /data
注意:创建软连接时,data目录后不加 / (加上后是查找其下一级目录);\
2、删除软连接
rm -rf /data
注意:取消软连接最后没有/,rm -rf 软连接。加上/是删除文件夹;\
tar\ \ 压缩(-c)
tar -cvf start.tar a.java b.java //将当前目录下a.java、b.java打包
tar -cvf start.tar ./* //将当前目录下的所欲文件打包压缩成haha.tar文件
tar -zcvf start.tar.gz a.java b.java //将当前目录下a.java、b.java打包
tar -zcvf start.tar.gz ./* //将当前目录下的所欲文件打包压缩成start.tar.gz文件
解压缩(-x)
tar -xvf start.tar //解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local //(C为大写,中间无空格)
//解压start.tar压缩包,到/usr/local目录下;
tar -zxvf start.tar.gz //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local //(C为大写,中间无空格)
//解压start.tar.gz压缩包,到/usr/local目录下;
解压缩tar.xz文件
tar xf node-v12.18.1-linux-x64.tar.xz
unzip/zip
压缩(zip)
zip lib.zip tomcat.jar //将单个文件压缩(lib.zip)
zip -r lib.zip lib/ //将目录进行压缩(lib.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar //将多个文件压缩为zip文件(lib.zip)
解压缩(unzip)
unzip file1.zip //解压一个zip格式压缩包
unzip -d /usr/app/com.lydms.english.zip //将`english.zip`包,解压到指定目录下`/usr/app/`
R:Read w:write x: execute执行
-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar
更改文件的权限
chmod u+x web.xml (---x------) 为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x---) 为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml (---x--x--x) 为所有用户分类,添加可执行权限;
chmod 222 web.xml (--w--w--w-) 为所有用户分类,添加可写入权限;
chmod 444 web.xml (-r--r--r--) 为所有用户分类,添加可读取权限;
command [-options] [parameter]
说明:
查阅命令帮助信息
-help: 显示 command 命令的帮助信息;\ -man: 查阅 command 命令的使用手册,man 是 manual 的缩写,是 Linux 提供的一个手册,包含了绝大部分的命令、函数的详细使用。
使用 man 时的操作键
以上就是一些Linux常用操作命令的介绍,希望对你有所帮助。
虽然这些只是Linux命令的冰山一角,但它们足以让你自如地运用Linux操作系统,记住,每一个命令都有其独特的用途和魅力。掌握了这些命令,你就能更加自如地在Linux世界中遨游。愿你在探索的道路上,发现更多的惊喜和乐趣!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!