草庐IT

常用的Linux命令(面试/工作必备)

Rany.史迪休 2023-07-18 原文

一、Linux是什么?

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

二、Linux常用命令大全

一、关机重启

shutdown -h now        立刻关机
shutdown -h 5          5分钟后关机
poweroff               立刻关机
shutdown -r now        立刻重启
shutdown -r 5          5分钟后重启
reboot                 立刻重启        

二、目录操作

pwd                查看当前工作目录
clear             清除屏幕
cd ~            当前用户目录
cd /            根目录
cd -            上一次访问的目录
cd ..            上一级目录

查看目录内信息

ll                查看当前目录下内容(列表形式)
ls               查看当前目录的内容

创建目录 

mkdir    aaa            在当前目录下创建一个名为aaa的目录
mkdir    /usr/aaa       在指定目录下创建一个名为aaa的目录

 搜索命令

find / -name 'b'        查询根目录下(包括子目录),名以b的目录和文件; 
find / -name 'b*'    查询根目录下(包括子目录),名以b开头的目录和文件; 

重命名

 mv 原先目录 文件的名称   mv test001 test

 剪切命令

mv    /aaa /bb            将根目录下的aaa目录,移动到bbb目录下
mv    bbbb usr/bbb       将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv    bbb usr/aaa        将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa; 

复制目录 

 cp /usr/tmp/aaa  /usr                   将/usr/tmp目录下的aaa目录复制到 /usr目录下面

删除目录 

rm -r /bbb            普通删除,询问你是否删除每一个文件
rm -rf /bbb            强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,不会提示;

三、文件操作 

删除文件

rm -r a.java               删除当前目录下的a.java文件
rm -rf a.java               强制删除当前目录下的a.java文件
rm -rf ./a*               强制删除当前目录下以a开头的所有文件;
rm -rf ./*               强制删除当前目录下所有文件(慎用);

创建文件 

 touch test 创建test文件

 修改文件

 vi/vim 文件名
点击键盘i进入编辑模式
ESC 退出编辑模式到命令行模式
退出编辑:    :q
强制退出:    :q!
保存并退出:  :wq

文件的查看

cat:看最后一屏
more:百分比显示
less:翻页查看
tail:指定行数或者动态查看

 文件查看的几种方式具体使用 <点击这里访问具体使用方式>

四、创建与删除软连接 

创建软连接

ln -s /usr/local/app /data
注意:创建软连接时,data目录后不加 / (加上后是查找其下一级目录)

删除软连接

 ln -s /usr/local/app /data

五、压缩和解压缩 

                                【v:显示运行  f:指定文件名  x:代表解压 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文件 

解压缩 

tar -xvf start.tar                //解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local         //解压start.tar压缩包,到/usr/local目录下;

tar -zxvf start.tar.gz                     //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/loca                //解压start.tar.gz压缩包,到/usr/local目录下;

压缩(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.test.zip            //将`test.zip`包,解压到指定目录下`/usr/app/` 

六、查找命令

grep 

ps -ef | grep sshd                  查找指定ssh服务进程 
ps -ef | grep sshd | grep -v grep   查找指定服务进程,排除gerp身 
ps -ef | grep sshd -c               查找指定进程个数  

find 

find . -name "*.log" -ls           在当前目录查找以.log结尾的文件,并显示详细信息。 
find /root/ -perm 600              查找/root/目录下权限为600的文件 
find . -type f -name "*.log"       查找当目录,以.log结尾的普通文件 
find . -type d | sort              查找当前所有目录并排序 
find . -size +100M                 查找当前目录大于100M的文件

YUM是什么?

YUM(yellowdog updater modified)是一个RPM系统的自动更新和软件包安装/卸载器。它可以自动计算依赖和找出想要安装的软件包。这使得它更容易而不必手动更新每一个使用RPM维护机器的”软件组“。YUM有一个添加简单功能的插件接口。YUM也能够通过他的模块接口被其他的Python 程序使用。 

【yum 是一个交互式的、基于 rpm 的包管理器,是一种联网安装软件的方式。它可以安装软件、卸载软件、查询软件、更新软件以及系统、自动解决rpm包依赖问题】

 七、yum常用命令

yum install iptables-services       下载并安装iptables
yum list               列出当前系统中安装的所有包
yum search package_name           在rpm仓库中搜寻软件包
yum update package_name.rpm       更新当前系统中所有安装的rpm包
yum update package_name           更新一个rpm包
yum remove package_name               删除一个rpm包
yum clean all               删除所有缓存的包和头文件 

八、系统服务 

service iptables status           查看iptables服务的状态
service iptables start            开启iptables服务
service iptables stop             停止iptables服务
service iptables restart          重启iptables服务 
chkconfig iptables off            关闭iptables服务的开机自启动
chkconfig iptables on             开启iptables服务的开机自启动 

九、用户管理 

su - 用户名                         切换用户,并且切换目录
exit                               退出当前登录账户
注意:su 不接用户名,可以切换到 root ,但是不推荐使用,因为不安全

which 

/etc/passwd 是用于保存用户信息的文件
/usr/bin/passwd 是用于修改用户密码的程序
which 命令可以查看执行命令所在位置,例如:
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd 

十、其他命令 

查看当前目录:pwd 

 命令:pwd     查看当前目录路径

查看进程:ps -ef

命令:ps -ef    查看所有正在运行的进程

结束进程:kill

命令:kill pid 或者 kill -9 pid(强制杀死进程)           pid:进程号

网络通信命令:

ifconfig:查看网卡信息

命令:ifconfig 或 ifconfig | more

ping:查看与某台机器的连接情况

命令:ping ip

netstat -an:查看当前系统端口

命令:netstat -an

搜索指定端口

命令:netstat -an | grep 8080

配置网络 

命令:setup

重启网络 

命令:service network restart

关闭防火墙 (具体可查看 Linux关闭防火墙命令 - King-DA - 博客园 (cnblogs.com))

命令:chkconfig iptables off
     iptables -L;
     iptables -F;
     service iptables stop


修改文件权限

命令:chmod 777


清屏

命令:ctrl + l

有关常用的Linux命令(面试/工作必备)的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  4. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  5. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  6. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  7. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  8. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  9. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  10. ruby - `rescue $!` 是如何工作的? - 2

    我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的

随机推荐