Java教程

shell基础命令

本文主要是介绍shell基础命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

shell基础命令

GNU bash

bash具有极强的可移植性,他能运行于大多数Unix风格的操作系统上。

posix,是一个可移植操作系统接口

创建用户,密码

[root@localhost ~]# useradd asd            添加用户
[root@localhost ~]# passwd asd             交互式环境设置密码
更改用户 asd 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。   
[root@localhost ~]# echo '123' | passwd --stdin asd    非交互式环境设置密码
更改用户 asd 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# 


# 代表超级管理员对应的命令行
$ 代表普通用户的命令行
root  当前登录的用户
localhost  主机名
~ 代表所在路径

shell命令的组成

(1) 命令:要执行的具体操作(必选)

(2) 选项:如何执行操作,通常以 _ , __ , + 开头(可选)

(3) 参数:具体执行操作的对象(可选)

[root@localhost ~]# cd /boot
[root@localhost boot]# ls
config-3.10.0-1160.el7.x86_64  initramfs-0-rescue-39e1259751d9445c8bb1864ed271e37e.img  vmlinuz-0-rescue-39e1259751d9445c8bb1864ed271e37e
efi                            initramfs-3.10.0-1160.el7.x86_64.img                     vmlinuz-3.10.0-1160.el7.x86_64
grub                           symvers-3.10.0-1160.el7.x86_64.gz
grub2                          System.map-3.10.0-1160.el7.x86_64
[root@localhost boot]# cd
[root@localhost ~]# ls /boot
config-3.10.0-1160.el7.x86_64  initramfs-0-rescue-39e1259751d9445c8bb1864ed271e37e.img  vmlinuz-0-rescue-39e1259751d9445c8bb1864ed271e37e
efi                            initramfs-3.10.0-1160.el7.x86_64.img                     vmlinuz-3.10.0-1160.el7.x86_64
grub                           symvers-3.10.0-1160.el7.x86_64.gz
grub2                          System.map-3.10.0-1160.el7.x86_64
[root@localhost ~]# ls -l /boot
总用量 98896
-rw-r--r--. 1 root root   153591 10月 20 2020 config-3.10.0-1160.el7.x86_64
drwxr-xr-x. 3 root root       17 6月  22 01:02 efi
drwxr-xr-x. 2 root root       27 6月  22 01:04 grub
drwx------. 5 root root      113 6月  22 10:15 grub2
-rw-------. 1 root root 62500154 6月  22 01:11 initramfs-0-rescue-39e1259751d9445c8bb1864ed271e37e.img
-rw-------. 1 root root 21129085 6月  22 04:59 initramfs-3.10.0-1160.el7.x86_64.img
-rw-r--r--. 1 root root   320648 10月 20 2020 symvers-3.10.0-1160.el7.x86_64.gz
-rw-------. 1 root root  3616707 10月 20 2020 System.map-3.10.0-1160.el7.x86_64
-rwxr-xr-x. 1 root root  6769256 6月  22 01:11 vmlinuz-0-rescue-39e1259751d9445c8bb1864ed271e37e
-rwxr-xr-x. 1 root root  6769256 10月 20 2020 vmlinuz-3.10.0-1160.el7.x86_64
[root@localhost ~]# 


命令是必不可少的,参数不写默认是当前位置

时间

时间分为硬件时间与系统时间两种,date设置的是系统时间

硬件时间: 硬件时间指的是主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟,硬件时间存放于CMOS中

系统时间: 是指kernel中的时钟

[root@localhost ~]# date                           打印当前时间
2021年 06月 22日 星期二 14:57:45 CST
[root@localhost ~]# date '+%F'                     只打印年月日
2021-06-22
[root@localhost ~]# date '+%Y'                     只打印年
2021 
[root@localhost ~]# date '+%Y-%m-%d %H:%M:%S'      按照指定格式打印
2021-06-22 15:00:10
[root@localhost ~]# date -s'2020-6-22 06:06:06'    设置时间,改时间
2020年 06月 22日 星期一 06:06:06 CST
[root@localhost ~]# date
2020年 06月 22日 星期一 06:06:10 CST
[root@localhost ~]# hwclock                        查看硬盘的时间
2021年06月22日 星期二 15时01分34秒  -0.978064 秒
[root@localhost ~]# hwclock -w                     将内存的时间同步到硬盘
[root@localhost ~]# date
2020年 06月 22日 星期一 06:06:40 CST

[root@localhost ~]# ntpdate ntp1.aliyun.com        使用阿里云服务器的时间
22 Jun 15:03:20 ntpdate[1967]: step time server 120.25.115.20 offset 31568111.739920 sec
[root@localhost ~]# date
2021年 06月 22日 星期二 15:03:22 CST 
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock 
2021年06月22日 星期二 15时03分34秒  -0.351093 秒

[root@localhost ~]# timedatectl set-ntp true       让时间随服务器动态变化

[root@localhost ~]# timedatectl set-timezone UTC   使用UTC时区的时间
[root@localhost ~]# date
2021年 06月 22日 星期二 07:05:26 UTC
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai   使用上海时区的时间
[root@localhost ~]# date
date
2021年 06月 22日 星期二 15:05:46 CST
[root@localhost ~]# 


[root@localhost ~]# timedatectl list-timezones     查看时区
Africa/Abidjan 
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
........


文件读写

[root@localhost ~]# clear
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33     写
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33     打开读
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ba23abb3-a975-41c3-9d8d-0154e7a61579
DEVICE=ens33
ONBOOT=yes
[root@localhost ~]# 

uname

[root@localhost ~]# una
unalias  uname    
[root@localhost ~]# uname --
--all                --help               --kernel-release     --machine            --operating-system   --version            
--hardware-platform  --kernel-name        --kernel-version     --nodename           --processor          
[root@localhost ~]# uname --help 
用法:uname [选项]...
输出一组系统信息。如果不跟随选项,则视为只附加-s 选项。

  -a, --all			以如下次序输出所有信息。其中若-p 和
				-i 的探测结果不可知则被省略:
  -s, --kernel-name		输出内核名称
  -n, --nodename		输出网络节点上的主机名
  -r, --kernel-release		输出内核发行号
  -v, --kernel-version		输出内核版本
  -m, --machine		输出主机的硬件架构名称
  -p, --processor		输出处理器类型或"unknown"
  -i, --hardware-platform	输出硬件平台或"unknown"
  -o, --operating-system	输出操作系统名称
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告uname 的翻译错误
要获取完整文档,请运行:info coreutils 'uname invocation'
[root@localhost ~]# uname -r
3.10.0-1160.el7.x86_64
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# 

bash解释器的特性

1.命令和文件自动补全<tab> 注意:Tab只能补全命令和文件
2.快捷键
        ctrl+ c 终止前台运行的程序
        ctrl+ d 退出 等价exit
        ctrl+ l 清屏
        ctrl+ a 光标移到命令行的最前端(*****)
        ctrl+ e 光标移到命令行的后端(*****)
        ctrl+ r 搜索历史命令,利用关键词
        Alt+. 引用上一个命令的最后一个参数,等价于!$

历史命令

[root@localhost ~]# history       查看历史命令
   ....
[root@localhost ~]# history -c    清空历史命令
[root@localhost ~]# history 
    1  history 
[root@localhost ~]# pwd           查看当前目录
/root
[root@localhost ~]# ca
cacertdir_rehash     cache_metadata_size  cache_writeback      caller               capsh                cat                  
cache_check          cache_repair         cal                  callgrind_annotate   captoinfo            catchsegv            
cache_dump           cache_restore        ca-legacy            callgrind_control    case                 catman               
[root@localhost ~]# cat /root/.bash                
.bash_history  .bash_logout   .bash_profile  .bashrc        
[root@localhost ~]# cat /root/.bash_history    查看历史命令的文件夹
.......
[root@localhost ~]# 

删除文件夹的历史命令,用dd就可以删除


查找历史命令并运行
(1)  光标上下键
(2)  CTRL+ r  搜索历史命令(输入一段命令的关键字,,,这种很少用)
(3)  !+ 命令编号  执行历史命令中的第某个命令
(4)  !+ 字符串    搜索历史命令中最近一个以字符串开头的命令
(5)  !$   引用上一条命令的最后一个参数

别名

[root@localhost ~]# 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'

[root@localhost ~]# alias xxx="cat /etc/sysconfig/network-scripts/ifcfg-ens33 "  给这条命令起别名
[root@localhost ~]# xxx   运行这个别名
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ba23abb3-a975-41c3-9d8d-0154e7a61579
DEVICE=ens33
ONBOOT=yes
[root@localhost ~]# 




[root@localhost ~]# ls
anaconda-ks.cfg  a.sh
[root@localhost ~]# ls /etc         这里用的ls是别名,
.....
[root@localhost ~]# which ls        查看这个别名的路径
alias ls='ls --color=auto'
	/usr/bin/ls
[root@localhost ~]# /usr/bin/ls     拿到别名路径做最原始的运行
anaconda-ks.cfg  a.sh
[root@localhost ~]# /usr/bin/ls /etc
........

[root@localhost ~]# \ls /etc         这样也可以不在受别名的影响
[root@localhost ~]# 

命令查找的优先级

以路径优先(绝对路径,相对路径)---再是alias别名

常用命令

重启
    shutdown -r 10 // 10分钟后重启
    shutdown -r 0 // 立即重启
    shutdown -r now // 立即重启
    shutdown -r 11:30 // 定点重启
    init 6 // 立即重启
    reboot // 立即重启
关机
    shutdown -h 10 // 10分钟后关机
    shutdown -h 0 // 立刻关机
    shutdown -h now // 立刻关机
    shutdown -h 11:30 // 定点关机
    halt // 立即停止系统,需要人工关闭电源
    poweroff // 立即停止系统,并且关闭电源
取消关机
    showdown -c
注销登录的账号
    exit
    logout
    ctrl+d
这篇关于shell基础命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!