LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

linux基础命令注意:Linux命令区分大小写,小心输入内容

2022年12月1日 144点热度

linux执行bin文件命令_linux打包bin文件命令_linux执行sh文件命令

为啥要学linux?

您可能熟悉 Windows XP、Windows 7、Windows 10和 Mac OS X 等操作系统。Linux 就是这样一种强大的操作系统,如今在应用程序和使用中无处不在。根据超级计算机鹰派TOP500的最新统计数据,“Linux 现在为世界 500 强超级计算机提供 100% 的支持”。这不是令人难以置信吗?操作系统是计算机和所有现代计算设备的灵魂和思想。它是一种管理与台式机或笔记本电脑相关的所有硬件资源的软件。换句话说,操作系统管理您的软件和硬件之间的通信。Linux 无处不在,以至于它出现在手机、汽车、冰箱和 Roku 设备中。它运行着大部分互联网和几台超级计算机。事实上,世界上几个国家的证券交易所都在 Linux 上运行。Linux 成为在全球范围内运行台式机、服务器和嵌入式系统的平台linux培训班,因为它是可用的最可靠、最安全和最强大的操作系统之一。

linux基础命令

注意: Linux 命令区分大小写,因此您需要小心输入的内容。

1. ls 显示目录内容列表

ls命令 就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件 。

举例
ls       # 仅列出当前目录可见文件
ls -l    # 列出当前目录可见文件详细信息
ls -hl   # 列出详细信息并以可读大小显示文件大小
ls -al   # 列出所有文件(包括隐藏)的详细信息
ls --human-readable --size -1 -S --classify # 按文件大小排序
du -sh * | sort -h # 按文件大小排序(同上)

2. cd 切换用户当前工作目录

举例
cd    # 进入用户主目录;
cd /  # 进入根目录
cd ~  # 进入用户主目录;
cd ..  # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..  # 返回上两级目录;
cd !$  # 把上个命令的参数作为cd参数使用

3. grep 强大的文本搜索工具

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能配合多种命令使用,使用上十分灵活。

举例:
在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行
grep match_pattern file_name
grep "match_pattern" file_name
在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...

4. su 用于切换当前用户身份到其他用户身份

su命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

举例:
变更帐号为root并在执行ls指令后退出变回原使用者
su -c ls root
变更帐号为root并传入-f选项给新执行的shell
su root -f
变更帐号为test并改变工作目录至test的家目录
su -test

5、sudo 以其他身份来执行命令

sudo命令 用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

举例:
 sudo su -
# env | grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'
这个命令相当于使用root超级用户重新登录一次shell,只不过密码是使用的当前用户的密码。而且重要是,该命令会 重新加载/etc/profile文件以及/etc/bashrc文件等系统配置文件,并且还会重新加载root用户的$SHELL环境变量所对应的配置文件 ,比如:root超级用户的$SHELL是/bin/bash,则会加载/root/.bashrc等配置。如果是/bin/zsh,则会加载/root/.zshrc等配置,执行后是完全的root环境。
$ sudo -i
# env | grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'
这个命令基本与 sudo su - 相同,执行后也是root超级用户的环境,只不过是多了一些当前用户的信息。
$ sudo -s
# env|grep -E '(HOME|SHELL|USER|LOGNAME|^PATH|PWD|TEST_ETC|TEST_ZSH|TEST_PRO|TEST_BASH|TEST_HOME|SUDO)'  --color
这个命令相当于 以当前用户的$SHELL开启了一个root超级用户的no-login的shell,不会加载/etc/profile等系统配置 。所以/etc/profile文件中定义的TEST_ETC环境变量就看不到了,但是会加载root用户对应的配置文件,比如root用户的$SHELL是/bin/zsh,那么会加载/root/.zshrc配置文件,执行完后,不会切换当前用户的目录。

linux打包bin文件命令_linux执行sh文件命令_linux执行bin文件命令

配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 visudo默认的是在vi里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理,就像: >>> sudoers file: syntax error, line 22 << 此时我们有三种选择:键入“e”是重新编辑,键入“x”是不保存退出,键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。 现在,我们一起来看一下神秘的配置文件,学一下如何编写它。让我们从一个简单的例子开始:让用户Foobar可以通过sudo执行所有root可执行的命令。以root身份用visudo打开配置文件,可以看到类似下面几行: # Runas alias specification # User privilege specificationroot ALL=(ALL)ALL 我们一看就明白个差不多了,root有所有权限,只要仿照现有root的例子就行,我们在下面加一行(最好用tab作为空白): foobar ALL=(ALL) ALL 保存退出后,切换到foobar用户,我们用它的身份执行命令: [foobar@localhost ~]$ ls /root ls: /root: 权限不够 [foobar@localhost ~]$ sudo ls /root PassWord: anaconda-ks.cfg Desktop install.log install.log.syslog 好了,我们限制一下foobar的权利,不让他为所欲为。比如我们只想让他像root那样使用ls和ifconfig,把那一行改为: foobar localhost= /sbin/ifconfig, /bin/ls 再来执行命令: [foobar@localhost ~]$ sudo head -5 /etc/shadow Password: Sorry, user foobar is not allowed to execute '/usr/bin/head -5 /etc/shadow' as root on localhost.localdomain. [foobar@localhost ~]$ sudo /sbin/ifconfigeth0 Linkencap:Ethernet HWaddr 00:14:85:EC:E9:9B... 现在让我们来看一下那三个ALL到底是什么意思。第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明foobar可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了。例如,我们想让foobar用户在linux主机上以jimmy或rene的身份执行kill命令,这样编写配置文件: foobar linux=(jimmy,rene) /bin/kill 但这还有个问题,foobar到底以jimmy还是rene的身份执行?这时我们应该想到了sudo -u了,它正是用在这种时候。 foobar可以使用sudo -u jimmy kill PID或者sudo -u rene kill PID,但这样挺麻烦,其实我们可以不必每次加-u,把rene或jimmy设为默认的目标用户即可。再在上面加一行: Defaults:foobar runas_default=rene Defaults后面如果有冒号,是对后面用户的默认,如果没有,则是对所有用户的默认。就像配置文件中自带的一行: Defaults env_reset 另一个问题是,很多时候,我们本来就登录了,每次使用sudo还要输入密码就显得烦琐了。我们可不可以不再输入密码呢?当然可以,我们这样修改配置文件: foobar localhost=NOPASSWD: /bin/cat, /bin/ls 再来sudo一下: [foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg Desktop install.log install.log.syslog 当然,你也可以说“某些命令用户foobar不可以运行”,通过使用!操作符,但这不是一个好主意。因为,用!操作符来从ALL中“剔出”一些命令一般是没什么效果的,一个用户完全可以把那个命令拷贝到别的地方,换一个名字后再来运行。 日志与安全

linux执行bin文件命令_linux执行sh文件命令_linux打包bin文件命令

sudo为安全考虑得很周到,不仅可以记录日志,还能在有必要时向系统管理员报告。但是,sudo的日志功能不是自动的,必须由管理员开启。这样来做: touch /var/log/sudo vi /etc/syslog.conf 在syslog.conf最后面加一行(必须用tab分割开)并保存: local2.debug /var/log/sudo 重启日志守候进程, ps aux grep syslogd 把得到的syslogd进程的PID(输出的第二列是PID)填入下面: kill –HUP PID 这样,sudo就可以写日志了: [foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg Desktop install.log install.log.syslog $cat /var/log/sudoJul 28 22:52:54 localhost sudo: foobar : TTY=pts/1 ; pwd=/home/foobar ; USER=root ; command=/bin/ls /root 不过,有一个小小的“缺陷”,sudo记录日志并不是很忠实: [foobar@localhost ~]$ sudo cat /etc/shadow > /dev/null cat /var/log/sudo...Jul 28 23:10:24 localhost sudo: foobar : TTY=pts/1 ; PWD=/home/foobar ; USER=root ; COMMAND=/bin/cat /etc/shadow 重定向没有被记录在案!为什么?因为在命令运行之前,shell把重定向的工作做完了,sudo根本就没看到重定向。这也有个好处,下面的手段不会得逞: [foobar@localhost ~]$ sudo ls /root > /etc/shadowbash: /etc/shadow: 权限不够 sudo 有自己的方式来保护安全。以root的身份执行sudo-V,查看一下sudo的设置。因为考虑到安全问题,一部分环境变量并没有传递给sudo后面的命令,或者被检查后再传递的,比如:PATH,HOME,SHELL等。当然,你也可以通过sudoers来配置这些环境变量。

6. pwd 显示当前工作目录的绝对路径

该命令是bash内建命令,相关的帮助信息请查看help命令。

举例
#当前目录为根目录下
[root@gzy-centos /]# pwd
/
#当前目录为root
[root@gzy-centos ~]# pwd
/root

8. passwd 用于让用户可以更改自己的密码

passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码.

举例
如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
[root@localhost ~]# passwd linuxde     # 更改或创建linuxde用户的密码;
Changing password for user linuxde.
New UNIX password:           # 请输入新密码;
Retype new UNIX password:    # 再输入一次;
passwd: all authentication tokens updated successfully.  # 成功;
普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。
[linuxde@localhost ~]$ passwd
Changing password for user linuxde.  # 更改linuxde用户的密码;
(current) UNIX password:    # 请输入当前密码;
New UNIX password:          # 请输入新密码;

linux执行bin文件命令_linux打包bin文件命令_linux执行sh文件命令

Retype new UNIX password: # 确认新密码; passwd: all authentication tokens updated successfully. # 更改成功;

7. mv 用来对文件或目录重新命名

mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下linux执行bin文件命令,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”linux执行bin文件命令,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

举例
将目录/usr/men中的所有文件移到当前目录(用.表示)中:
mv /usr/men/* .
移动文件
mv file_1.txt /home/office/
移动多个文件
mv file_2.txt file_3.txt file_4.txt /home/office/
mv *.txt /home/office/
移动目录
mv directory_1/ /home/office/
重命名文件或目录
mv file_1.txt file_2.txt # 将文件file_1.txt改名为file_2.txt
重命名目录
mv directory_1/ directory_2/
打印移动信息
mv -v *.txt /home/office
提示是否覆盖文件
mv -i file_1.txt /home/office
源文件比目标文件新时才执行更新
mv -uv *.txt /home/office
不要覆盖任何已存在的文件
mv -vn *.txt /home/office
复制时创建备份
mv -bv *.txt /home/office
无条件覆盖已经存在的文件
mv -f *.txt /home/office

9. cp 将源文件或目录复制到目标文件或目录中

cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

举例
实例

linux打包bin文件命令_linux执行sh文件命令_linux执行bin文件命令

下面的第一行中是 cp 命令和具体的参数(-r 是“递归”, -u 是“更新”,-v 是“详细”)。接下来的三行显示被复制文件的信息,最后一行显示命令行提示符。这样,只拷贝新的文件到我的存储设备上,我就使用 cp 的“更新”和“详细”选项。 通常来说,参数 -r 也可用更详细的风格 --recursive。但是以简短的方式,也可以这么连用 -ruv。 cp -r -u -v /usr/men/tmp ~/men/tmp 版本备份 --backup=numbered 参数意思为“我要做个备份,而且是带编号的连续备份”。所以一个备份就是 1 号,第二个就是 2 号,等等。 $ cp --force --backup=numbered test1.py test1.py $ ls test1.py test1.py.~1~ test1.py.~2~ 如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下: cp ../mary/homework/assign . 所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。 将文件file复制到目录/usr/men/tmp下,并改名为file1 cp file /usr/men/tmp/file1 将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 cp -r /usr/men /usr/zh 交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中 cp -i /usr/men m*.c /usr/zh 我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法: cp aaa/* /bbb # 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。 cp -r aaa/* /bbb # 这次依然需要按Y来确认操作,但是没有忽略子目录。 cp -r -a aaa/* /bbb # 依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。 cp -r -a aaa/* /bbb # 成功,没有提示按Y、传递了目录属性、没有略过目录。 递归强制复制目录到指定目录中覆盖已存在文件 cp -rfb ./* ../backup # 将当前目录下所有文件,复制到当前目录的兄弟目录 backup 文件夹中 拷贝目录下的隐藏文件如 .babelrc cp -r aaa/.* ./bbb # 将 aaa 目录下的,所有`.`开头的文件,复制到 bbb 目录中。 cp -a aaa ./bbb/ # 记住后面目录最好的'/' 带上 `-a` 参数 复制到当前目录 cp aaa.conf ./ # 将 aaa.conf 复制到当前目录

10、rm 用于删除给定的文件和目录

rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前linux操作系统简介,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

交互式删除当前目录下的文件test和example
rm -i test example
Remove test ?n(不删除文件test)
Remove example ?y(删除文件example)
删除当前目录下除隐含文件外的所有文件和子目录
# rm -r *
应注意,这样做是非常危险的!
rm 命令删除当前目录下的 package-lock.json 文件
find .  -name "package-lock.json" -exec rm -rf {} ;
rm 命令删除当前目录下的 node_modules 目录
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
rm 命令删除文件
# rm 文件1 文件2 ...
rm testfile.txt
rm 命令删除目录
    rm -r [目录名称] -r 表示递归地删除目录下的所有文件和目录。 -f 表示强制删除
rm -rf testdir
rm -r testdir
删除操作前有确认提示
    rm -i [文件/目录]
rm -r -i testdir
rm 忽略不存在的文件或目录
    -f 选项(LCTT 译注:即 “force”)让此次操作强制执行,忽略错误提示
rm -f [文件...]
仅在某些场景下确认删除
    选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。
rm -I file1 file2 file3
删除根目录
    当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认 rm 命令不支持在根目录上执行递归删除操作。 然而,如果你非得完成这个操作,你需要使用 --no-preserve-root 选项。当提供此选项,rm 就不会特殊处理根目录(/)了。
不给实例了,操作系统都被你删除了,你太坏了
rm 显示当前删除操作的详情
rm -v [文件/目录]

好啦,今天就先整理到这里!下次再见!!!

​

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux服务器 linux系统 sudo 大小写 文件目录
最后更新:2022年12月1日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
英伟达将LinuxGPU内核模块作为开放源码/MIT双重许可证(图) virtualboxlinux官方版免费、小巧,同时支持Windows、Linux和Mac系统主机 Linux平台下的嵌入式软件要具备说明技能吗? 图解linuxlinux内核结构框图对内核框图有个总体的把握 linux虚拟机的安装步骤是什么?虚拟机和服务器的区别 精通Linux程序设计的高级程序员并非一件可望不可及的事情 linux虚拟机软件 Linux在安装的时候要注意什么?Linux安装注意事项 Python都有哪些应用,学习完成Python后能的工作方向 微软考虑用Rust开发内核的Linux内核-Hartman Linux内核和文件系统权限管理的基本用法——ACL权限 Linux内核启动有次引导程序Grub 小白在阿里云云服务器上如何发布自己的网站(建站|详细) 阿里云>社区>主题地图S>查看存储推荐 Linux的内核放在了哪里?/boot的启动目录一览 Linux中修改文件权限的命令、创建者所在组、所有人 linux到底难不难学呢?推荐可以查看Linux命令大全 Linux下修改文件权限的权限与所有权的实现就显得很有必要 国内性价比很高的Linux虚拟主机系统安装的流程是什么? 1.Linux磁盘分区和目录Linux发行版本之间的差别很少? 基于命令修改文件的权限命令-ld
Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由腾讯云服务器上也搭建一套环境,安装成功自动启动个人笔记本安装Ubuntu20.04LTS下载地址启动第一步--加载BIOS当你打开计算机电源(组图)虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载指令中各个make-C~/linuxM=`pwd编译Linux启动过程中的几个部分内核的引导(图)如何在Linux上安装虚拟机的结果大多都是怎么安装的一个免费软件时间跟进的小白鼠是什么鬼?专题计算机是如何启动的?、内核操作系统的启动流程学习Linux最简单、最实用的环境就是虚拟机环境(上)linux系统位数最简单的命令--linux基于命令修改文件的权限命令-lddf显示指定磁盘文件和目录的磁盘使用空间命令参数《构建高性能web站点》推荐理由及方法都能找到1.Linux磁盘分区和目录Linux发行版本之间的差别很少?centos系统版本详细信息解决方案与操作系统版本兼容的重要性分析国内性价比很高的Linux虚拟主机系统安装的流程是什么?Linux下修改文件权限的权限与所有权的实现就显得很有必要
Linux上架构示意图munin的架构非常简单的配置和客户端插件 Ubuntu自带的显卡驱动Nouveau会与N卡冲突导致卡机黑屏 虚拟主机技术极大怎么样?如何选择多个网站.Q. 关于Linux系统版本命令的一些看法及解决办法的通知 Linux计算机上摆弄那些软件的软件,你知道吗? 2.5创建和配置虚拟机2.5.1创建虚拟机双击桌面的VMwarePlayer Python都有哪些应用,学习完成Python后能的工作方向 使用u盘在IBMx3650服务器上安装linux系统?我猜两种情况 Linux系统下如何定位出CPU使用率过高的进程?(组图) linux 创建链接文件 Linux链接分两种,一种被称为硬链接(SymbolicLink) LINUX设备驱动程序(第3版)-设备 安装Ubuntu.04,安装NVIDIA驱动配置和tensorflow环境 一下Linux系统启动过程 Ubuntu和其他Linux中安装最新的LibreOffice版本的快速指南 人用extundelete软件突然恢复,官网据说还能恢复小文件 Linux内核虚拟内存管理的难点分析与解决办法(一) linux解压zip文件命令 ,Linuxbzip2命令的使用主要介绍-上海怡健医学 Linux定时任务安全权限提升) 《深入linux设备驱动程序内核机制》(1)_社会万象_光明网(图) 关于IA-32/Linux进程内核空间的叙述中,错误的是
标签聚合
虚拟机 unix 电脑 软件 linux服务器 命令模式 文件目录 shell sudo linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年2月 / 1篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.