Linux Shell经常使用命令

1、文件与目录

  • 查看命令帮助
#使用 --help参数
ls --help

#使用man(manual)命令,q退出man命令
man ls
  • 切换查看目录
cd ~
cd ~/Desktop
cd -
cd ..
cd .
cd ../../xxx/     [组合使用]
cd /etc/init.?  [使用通配符 * 和 ?] 

ls -al

#-l 显示文件详细信息,从左至右依次为:文件类型与权限、链接占用节点(i-node)、
#文件全部者、文件全部者的用户组、文件大小
#(使用-h参数可显示大小单位)、文件的建立或修改时间、文件名称
  • 建立文件和文件夹 
#当前目录建立文件
touch filename

#建立文件夹
mkdir folder

#建立连接文件
#默认建立的是硬链接,比如复制 ,可是两个文件会同步,-s建立软连接
link filename linkfile
  • 移动文件/重命名
#移动到指定目录
mv [filename] [target]
  • 查看文件信息
#查看文件的详细信息
stat filename
#显示文件的大小信息
du file
  • 复制文件
#复制文件到指定目录
cp [filename] [targer]
  • 删除文件
#删除单个文件或空文件夹
rm [filename/folder]
#删除非空文件夹
rm -rf [folder]
#删除全部全部文件
rm -rf *
#删除全部文件排除指定文件,|先后无空格
rm -rf !(file1|file2)

#-type f表示普通文件,文件夹下若是有文件夹则会报错
find -type f | xargs /bin/rm -f
  • 查找文件
#find
#例如在根目录 / 下查找host.conf文件
find / -name host.conf
#where
  • 更改文件权限

Linux文件类型
文件夹 d : 连接文件 l : 套接字文件 s : 块设备文件 b :字符设备文件 c : 管道设备文件 p : 普通文件 -node

Linux文件权限linux

wrx分别表示可读可写可执行,文件夹表示可进入,-表示无权限
权限字符表示法
第1个字符   : 文件类型
第2-4个字符 : 该文件的属主用户的权限 
第5-7个字符 : 与属主用户同一组的其余用户的权限
第8-10个字符: 不一样组的其余用户的权限正则表达式

数字表示法,使用三个三位二进制数分别表示以上三个用户和组的权限,如:
-rw-r--r--   :文件的默认权限  644
drwxr-xr-x   :目录的默认权限  755shell

 

#更文件用户和用户组
chown [username:groupname] [filename]

#更改文件读写执行权限
chmod [who] [+ | - | =] [mode] [filename]
#who的选项
#u 表示“用户(user)”,即文件或目录的全部者。
#g 表示“同组(group)用户”,即与文件属主有相同组ID的全部用户。
#o 表示“其余(others)用户”。
#a 表示“全部(all)用户”。它是系统默认值。

#+ 添加某个权限。
#- 取消某个权限。
#= 赋予给定权限并取消其余全部权限(若是有的话)

#mode 可选值有r w x u g o等

例:给test.py文件添加可执行权限

#777分别表示User、Group、及Other的权限
chmod 777 test.py
#或者使用a表示全部用户
chmod a=rwx test.py

#Ubuntu下使用下面方式也能为全部用户添加可执行权限
chmod +x test.py

#使用下面的方式会报错:invalid mode 'a' ,测试环境为Ubuntu
chmod a+x test.py

2、文本处理

  • 查看文件
cat filename

#分页查看,空格翻页
more filename
  • 文件输出
echo [string]

echo [string] [filename]
  • 管道命令与重定向
#使用echo向文件输出字符串
#覆盖
echo "string" > filename

#追加
echo "string" >> filename
  • grep/awk文本搜索
#grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
netstat -antp | grep sshd
  • wc统计文本行数和字符
#统计文本文件字符
wc demo.txt
#输出三个数字,依次表示行数、单词书、字符数

#利用wc指令咱们能够计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设#备读取数据,ctrl+c退出计数。

#-c或--bytes或--chars 只显示Bytes数
#-l或--lines 只显示列数
#-w或--words 只显示字数
#--help 在线帮助
#--version 显示版本信息
  • sort排序

#    sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。若是 File 参数指定多个文件,那么 sort 命令将#这些文件链接起来,并看成一个文件进行排序。

-f  :忽略大小写的差别,例如 A 与 a 视为编码相同
-b  :忽略最前面的空格符部分
-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的)
-r  :反向排序
-u  :就是 uniq ,相同的数据中,仅出现一行表明
-t  :分隔符,默认是用 [tab] 键来分隔
-k  :以那个区间 (field) 来进行排序的意思
#例
sort [--fbMnrtuk] [file or stdin]
//将文件排序显示在终端
cat fileName | sort

 

  • sed

#替换文本
  •  xargs

#删除redhat的yum包,不检查
rpm -qa|grep yum|xargs rpm -e --nodeps

3、系统命令

  • 开机与关机

等级划分windows

·         run level 0: 关机centos

·         run level 3: 纯文本模式安全

·         run level 5: 含图形接口模式bash

·         run level 6: 从新启动服务器

等级切换网络

·         init 0 # 切换到等级0,即关机

shutdown,halt,poweroff区别

shutdown :使系统关闭,参考一下现有的解释:“命令安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。由于linux与windows不一样,其后台运行着许多进程,因此强制关机可能会致使进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令﹐系统管理员会通知全部登陆的用户系统将要关闭。而且login指令会被冻结﹐即新的用户不能再登陆。直接关机或者延迟必定的时间才关机都是可能的﹐还可能重启。这是由全部进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则能够正常地离开等等”

并且shutdown会去执行 /etc/rc0.d/下面的脚本,也就是说会去执行runlevel 0的脚本。 halt则不会。

poweroff: 切断系统电源

poweroff就是halt的软连接而已。执行的仍是halt命令。关于halt命令,能够这样理解:halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操做完成后就会中止内核。

#注销
logout
#登出
exit
#关机 poweroff/halt/shutdown
#shutdown -h now
#shutdown -h [指定时间或倒计时]
#重启
restart
#shutdown -h至关于halt ,-r至关于restart

#重启
reboot
  • 用户管理
#查看在线的用户
who
#查看当前本身的用户
whoami
#查看主机名
hostname
#查看系统信息
uname -a

#添加用户,-d指定用户home路径,-s指定用户shell解析方式
useradd username -d folder
#删除用户
#设置密码
passwd
#添加sudoer
  • 刷新配置文件 source  /etc/profile
  • 将内存中未写入磁盘的文件写入磁盘 sync
  • 查看系统信息
#内核版本:
    cat  /proc/version 
    uname -a   或   uname -r
#查看操做系统版本
    cat /etc/issue
    cat /etc/redhat-release
#查看系统字长(系统位数)
#经过查看long类型的长度
    getconf LONG_BIT
    file /bin/ls

#导出和查看MBR

#dd命令,导出MBR记录到bin文件
dd if=/dev/sda of=mbr.bin bs=1 count=512

#hexdump命令查看二进制文件
hexdump -C mbr.bin
  • 系统服务
#更新和查询系统服务运行级别 chkconfig

add 增长指定系统服务
del 删除指定系统服务
list 列出全部系统服务
#例如查看sshd服务
chkconfig --list sshd 或 chkconfig --list | grep sshd
#level 修改系统服务级别,例如设置sshd开机启动
chkconfig --level 5 sshd on

#各个级别的含义
      ​​​​等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络链接的多用户命令行模式
      等级3表示:有网络链接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:从新启动

4、压缩与解压

  • tar
#tar :打包、拆包命令 
#tar [- cxzjvf]  <打包后的文件>   <欲打包的目录>
#	  - c :建立的一个归档文件 ,即打包文件夹
#	  - x :拆包
#	  - z :以gzip 格式压缩,默认压缩倍数 6倍  (0-9)
#	  - j :以bzip2格式压缩
#	  - v :显示打包或者拆包的文件信息
#	  - f : 后面紧接一个 归档文件

#打包文件
tar -cvf [filename.tar] [要打包的文件]
#解包文件
tar -xvf [filename.tar]

#gzip压缩
gzip filename.tar
#gzip解压
gzip -d filename.tar.gz

#打包压缩或拆包解压加上压缩格式参数z或j
tar -czvf [filename.tar] [要打包的文件]
tar -xzvf [filename.tar]

#查看压缩文件内容
-t 表示查看压缩文件的内容,在解压不肯定是否安全的文件以前强烈建议先查看内容,防止tar炸弹
#查看.tar.gz文件内容
tar -ztvf filename.tar.gz
  • rar/zip/7z
#将xxx目录或文件压缩成yyy.zip  -r 表示递归
zip -r yyy.zip xxx

#解压yyy.zip文件到xxx目录, -d 指定解压到的目录  -o 表示覆盖
unzip -o -d xxx yyy.zip

5、网络配置

  • 查看或配置网卡信息
ifconfig
#设置静态ip
ifconfig eth0 192.168.15.122 netmask 255.255.255.0
#查看当前使用DNS服务
#设置DNS服务
#
#查看ip,使用管道命令只输出ip地址
ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'
 
ip
  • ping网络测试
ping 域名或ip                 
#Ctrl+C退出
ping -c 3 域名或ip         
#-c 3指定三次后结束
  • 当前网络链接信息
# netstat是用来显示各类网络信息的命令,参数以下
-a (all)显示全部选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的所有转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示创建相关连接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
  • 网络下载

#通常的使用方法是: wget + 空格 + 参数 + 要下载文件的url路径
-b:后台下载,Wget默认的是把文件下载到当前目录。
-O:将文件下载到指定的目录中。
-P:保存文件以前先建立指定名称的目录。
-t:尝试链接次数,当Wget没法与服务器创建链接时,尝试链接多少次。
-c:断点续传,若是下载中断,那么链接恢复时会从上次断点开始下载。
-r:使用递归下载

#例
wget http://www.linuxsense.org/xxxx/xxx.tar.gz

wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz

6、进程与端口

  • 进程查看,结束
#显示当前耗时的进行的信息 ,每3秒刷新一次
top
#显示当前进程的快照 
ps -axu
#结束进程
kill pid
  • 判断端口是否被占用
#检查11088端口是否被占用
netstat -antp | grep 11088

7、文件系统与磁盘分区

  • 挂载光驱
#以centos7为例
#在/mnt目录下建立挂载点
mkdir /mnt/cdrom
#将/dev/cdrom设备挂载到上面的挂载点
mount /dev/cdrom /mnt/cdrom
#取消挂载
umount /dev/cdrom /mnt/cdrom
  • 查看磁盘信息
#disk free查看磁盘使用状况
df

8、源码编译与安装

#执行配置文件
./configure
#编译安装
make && make install
#使用sudo命令需分开
sudo make
sudo make install
#若是程序为安装到/usr/bin目录下,能够建立连接文件
[sudo] ln -s [目标文件] [连接文件]

#加快编译速度,并行编译-j 或 --jobs
#指定使用2个核心编译,不指定默认使用所有核心
make -j 2

其余

source

export

update-alternatives --install   --display  --config

相关文章
相关标签/搜索