常用linux命令

touch命令有两个功能:
一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;
二是用来创建新的空文件。
 
du
通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用
利用“du -sh”命令,可查看当前文件夹的总大小;
利用“du -h –max-depth=0 *”命令,可查看直接子目录文件及文件夹大小
du 和 df 算是一对同门师兄弟,du 侧重在文件夹和文件的磁盘占用方面,而 df 则侧重在文件系统级别的磁盘占用方面
df
  • 文件-a, --all 包含所有的具有 0 Blocks 的文件系统
  • 文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks
  • 文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
  • 文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
  • 文件-i, --inodes 列出 inode 资讯,不列出已使用 block
  • 文件-k, --kilobytes 就像是 --block-size=1024
  • 文件-l, --local 限制列出的文件结构
  • 文件-m, --megabytes 就像 --block-size=1048576
  • 文件--no-sync 取得资讯前不 sync (预设值)
  • 文件-P, --portability 使用 POSIX 输出格式
  • 文件--sync 在取得资讯前 sync
  • 文件-t, --type=TYPE 限制列出文件系统的 TYPE
  • 文件-T, --print-type 显示文件系统的形式
  • 文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
  • 文件-v (忽略)
  • 文件--help 显示这个帮手并且离开
  • 文件--version 输出版本资讯并且离开
 
ifconfig
显示网络设备信息(激活状态的):
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:1E:51 
          inet addr:10.160.7.81  Bcast:10.160.15.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3607197869 (3.3 GiB)  TX bytes:6115042 (5.8 MiB)
 
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:56103 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5079451 (4.8 MiB)  TX bytes:5079451 (4.8 MiB)
说明:
eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:16:3E:00:1E:51
inet addr用来表示网卡的IP地址,此网卡的IP地址是10.160.7.81,广播地址Bcast:10.160.15.255,掩码地址Mask:255.255.240.0
lo是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)。
第二行:网卡的IP地址、子网、掩码。
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
第四、五行:接收、发送数据包情况统计。
第七行:接收、发送数据字节数统计信息。
 
curl命令
一、get请求
curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i "http://www.baidu.com"  显示全部信息
curl -l "http://www.baidu.com" 只显示头部信息
curl -v "http://www.baidu.com" 显示get请求全过程解析

curl -connect-timeout 10 -m 20 “http://outofmemory.cn/”  连接超时时间用 –connect-timeout 参数来指定,数据传输的最大允许时间用 -m 参数来指定。

wget "http://www.baidu.com"也可以
二、post请求
curl -d "param1=value1&param2=value2" "http://www.baidu.com"   使用-d发送带参数的请求
 
三、json格式的post请求
curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}' http://domain/apis/users.json
 
Linux 查看文件修改时间(精确到秒)文件名
ls --full-time
 
ls -l |grep "^-"|wc -l
find ./company -type f | wc -l
查看某文件夹下文件的个数,包括子文件夹里的。
ls -lR|grep "^-"|wc -l
查看某文件夹下文件夹的个数,包括子文件夹里的。
ls -lR|grep "^d"|wc -l
说明:
ls -l
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
查看目录下有多少个文件及文件夹   ls | wc -w
查看目录下有多少个文件     ls | wc -c
grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
 
lsof指令的用法如下:
lsof abc.txt 显示开启文件abc.txt的进程
lsof 目录名 查找谁在使用文件目录系统
lsof -i :22 知道22端口被哪个进程占用
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof -u username 查看用户打开哪些文件
lsof -i @192.168.1.111 查看远程已打开的网络连接(连接到192.168.1.111)
 
Linux查看文件夹大小
du -sh 查看当前文件夹大小
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
du -sk filename 查看指定文件大小
df -lh是显示以方便阅读的大小单位显示本地文件系统信息{查看一台pbx的各个分区的硬盘内存}
权限设置chmod 777 文件名
 
suse linux 常用命令 
(1) 命令ls——列出文件 
    ls  显示当前目录文件 
    ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 
    ls a* 列出当前目录下以字母a开头的所有文件 
    ls -l *.doc 给出当前目录下以.doc结尾的所有文件 
(2)命令cp——复制文件 
    cp afile afile.bak 把afile文件复制为新文件afile.bak 
    cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下 
    cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目录下 
    cp -a docs docs.bak 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项 
    cp -i 在覆盖前询问用户 
    cp -v 告诉用户正在做什么 
    cp -r 复制整个文件夹
scp -P 65022 full user@10.**.**245:/home/
scp -P 5522 /data/****x.tar.gz user@172.**.**24:/opt/app/
  远程复制
(3)命令mv——移动和重命名文件 mv aflie bfile 将afile重命名为bfile 
    mv afile /tmp 把当前目录下的afile移动到/tmp/目录下 
(4)命令rm——删除文件和目录 rm afile 删除文件afile 
    rm * 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。 
    rm -rf domed 删除domed目录以及它所包含的所有内容 
    rm -rf *.jar  删除当前目录下所有.jar结尾的文件,不用确定
    rm -i a* 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认 
(5)命令cd——更改目录 
    cd  切换到主目录 
    cd ~ 切换到主目录 
    cd /tmp 切换到目录/tmp 
    cd dir 切换到当前目录下的dir目录 
    cd / 切换到根目录 
    cd .. 切换到到上一级目录 
 
    cd ../.. 切换到上二级目录 
    cd ~ 切换到用户目录,比如是root用户,则切换到/root下
(6)命令mkdir——建立目录 
    mkdir phots 在当前目录中建立名为photos的目录 
    mkdir -p this/that/theother 在当前目录下建立指定的嵌套子目录
(7)命令mkdir——删除目录 
    mkdir 将删除空目录
 
(8)命令more、less——查看文件内容 
    more /etc/passwd 查看/etc/passwd的内容 
    功能:分页显示命令   
        more file 
        more命令也可以通过管道符(|)与其他的命令一起使用,例如:   ps ux|more   ls|more 
     less /etc/passwd 查看/etc/passwd的内容 
(9)命令grep——搜索文件内容 
    grep bible /etc/exports 在文件exports中查找包含bible的所有行 
    tail -100 /var/log/apache/access.log|grep 404 在WEB服务器日志文件access.log的后100行中查找包含“404”的行 
    tail -100 /var/log/apache/access.log|grep -v googlebot 在WEB服务器日志文件access.log的后100行中,查找没有被google访问的行 
    grep -v ^# /etc/apache2/httpd.conf 在主apache配置文件中,查找所有非注释行 
(10)命令find——查找文件 
  find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
  find / -user user1 搜索属于用户 'user1' 的文件和目录 
  find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 
  find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 
  find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 
(11)命令vi——编辑文件 
  gvim  打开程序 
    vi /etc/bubby.txt 用vi编辑文件/etc/bubby.txt 
    vim /etc/bubby.txt 用vi编辑文件/etc/bubby.txt 
    快捷操作: 
        切换窗口:alt+1,alt+2 
        全屏:alt+回车 
  
1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。
 
2、Ctrl+Z是把当前的程序挂起,暂停执行这个程序,比如你正在mysql终端中,需要出来搞点其他的文件操作,又不想退出mysql终端(因为下次还得输入用户名密码进入,挺麻烦),于是可以ctrl+z将mysql挂起,然后进行其他操作,然后输入fg回车后就可以回来,当然可以挂起好多进程到后台,然后fg 加编号就能把挂起的进程返回到前台。当然,配合bg和fg命令进行前后台切换会非常方便。
 
3、Ctrl+D 是发送一个exit信号,没有那么强烈,类似ctrl+C的操作,比如你从管理员root退回到你的普通用户就可以这么用。
 
 
    :MR:查看历史文件记录(注意:MR大写) 
    :sp 横向切换界面窗口   
    :vsp 纵向切换界面窗口   方便多文件对照编码(如下图:) emacs /etc/bubby.txt 用emacs编辑文件/etc/bubby.txt 
(12)命令rz、sz——文件上传下载 
    运行命令Sudo rz,即是接收文件,xshell就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到linux里的当前目录 。 
    运行命令Sudo sz file 就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了。 
(13)命令cat——显示文件内容 
    cat file 
(14)命令ps——查看进程 ps [options]  
    DESCRIPTION(描述):ps命令显示运行程序选项的一些信息。如果你想显示选项的一些重复信息,请使用top命令替代。 
    用标准语法查看系统上的每一个进程。    
1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u  以用户为主的格式来显示程序状况。
13)ps x  显示所有程序,不以终端机来区分。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
查看要重要进程 
    ps –ef|grep xxxx 
字段含义如下:
UID       PID      PPID    C   STIME     TTY        TIME           CMD
root     18887   18828   0    08:09     pts/0    00:00:00    grep ApacheJetspeed
ps -ef 显示出的结果:
    1.UID       用户ID
    2.PID        进程ID
    3.PPID      父进程ID
    4.C           CPU占用率
    5.STIME     开始时间
    6.TTY         开始此进程的TTY----终端设备
    7.TIME       此进程运行的总时间
    8.CMD       命令名
 
查看这个进程号最后启动时间
ps -p 31481 -o lstart
 
比如进程名叫aaa,可以执行如下命令:ps -ef|grep aaa,如果有内容说明活着
如果你知道进程占用的端口号,比如7777,可以执行:netstat -anlp | grep 7777,检查有没有程序占用该端口,若有的话,看pid或pname是否是你想要找的
在linux一般使用netstat 来查看系统端口使用情况步。
      netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的
      netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
      该命令的一般格式为:
      netstat [选项]
      命令中各选项的含义如下:
      -a 显示所有socket,包括正在监听的。
      -c 每隔1秒就重新显示一遍,直到用户中断它。
      -i 显示所有网络接口的信息,格式同“ifconfig -e”。
      -n 以网络IP地址代替名称,显示出网络连接情形。
      -r 显示核心路由表,格式同“route -e”。
      -t 显示TCP协议的连接情况。
      -u 显示UDP协议的连接情况。
      -v 显示正在进行的工作。
如果想要找的是某个服务,比如nfs、smb等,可以用service nfs status查看 
 
 
nc -vuz 10.**.**.16 7010
想要连接到某处: nc [-options] hostname port[s] [ports] …
绑定端口等待连接: nc -l port [-options] [hostname] [port]
 
-g<网关>:设置路由器跃程通信网关,最多设置8个;
-G<指向器数目>:设置来源路由指向器,其数值为4的倍数;
-h:在线帮助;
-i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口;
-l:使用监听模式,监控传入的资料;
-n:直接使用ip地址,而不通过域名服务器;
-o<输出文件>:指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p<通信端口>:设置本地主机使用的通信端口;
-r:指定源端口和目的端口都进行随机的选择;
-s<来源位址>:设置本地主机送出数据包的IP地址;
-u:使用UDP传输协议;
-v:显示指令执行过程;
-w<超时秒数>:设置等待连线的时间;
-z:使用0输入/输出模式,只在扫描通信端口时使用。
 
telnet 10.**.**.11 7010
            
 
 
(15)命令kill——杀掉进程 
    killall   name   杀掉所有进程 
    [root@linux ~]# kill -signal %jobnumber   
    [root@linux ~]# kill -l   
    参数:   
        -l  :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?共有62个信号。 
        signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:   
        -1 :重新读取一次参数的设定档 (类似 reload);   
        -2 :代表与由键盘输入 [ctrl]-c 同样的动作;   
        -9 :立刻强制删除一个工作; 
        -15:以正常的程序方式终止一项工作。与 -9 是不一样的。  
    范例一:找出目前的 bash 环境下的背景工作,并将该工作删除。  
 
    杀掉该项目的进程 
    先杀第二列,再杀第一列 
      ßkill -9 x x 
    (x为进程号,同时杀多个中间以空格分割) 
 
    [root@linux ~]# jobs 
        [1]+  Stopped                 vim bashrc   
    [root@linux ~]# kill -9 %1 
        [1]+  已砍掉                  vim bashrc 
(16)命令stop、start——重启tomcat 
    ./catalina.sh stop      
    ./catalina.sh start 
(17)命令top——查看cpu、内存   
 
(18)命令pwd——查看当前路径  
(19)命令tar——打包、解包rar 
    tar -cvf **.tar a.jsp b.java    将a和b打成**.rar 
    tar -zcvf 打包并压缩
    tar -xvf **.tar     将**.tar 解包 
  tar -zxvf 解压缩包
(20)命令tail——查看文件详细信息 
    tail -f aaa.txt          看aaa.txt文件的详细信息 
    tail -n x aaa.log           x:最后几行 
   tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果
(21)命令head——查看文件的名字和后缀 
    head -n x aaa.log           x:开始几行aaa.log:要查看的文件的名字和后缀 
(22)命令diff——比较文件内容  
    diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出 
    diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的   
    comm file1 file2 比较文件,显示两个文件不相同的内容 
(23)命令ln——建立连接  
    ln source_path target_path 硬连接    
    ln -s source_path target_path 软连接 
(24)命令touch——创建一个空文件 
    touch aaa.txt  创建一个空文件,文件名为aaa.txt  
(25)命令man——查看某个命令的帮助
 
 
    man ls 显示ls命令的帮助内容 
(26)命令w——显示登录用户的详细信息   
    Sarge:~# w 
(27)命令who——显示登录用户   
    Sarge:~# who 
(28)命令last——查看最近那些用户登录系统   
    Sarge:~# last 
(29)命令date——系统日期设定 
  date -s “060520 06:00:00″ 设置系统时期为2006年5月20日6点整。 
(30)命令
    clock——时钟设置 
    clock –r 对系统Bios中读取时间参数 
    clock –w 将系统时间(如由date设置的时间)写入Bios 
(31)命令uname——查看系统版本 
    uname -R 显示操作系统内核的version 
(32)命令reboot、shutdown——关闭和重新启动计算机     
    reboot   重新启动计算机 
    shutdown -r now  重新启动计算机,停止服务后重新启动计算机   
    shutdown -h now  关闭计算机,停止服务后再关闭系统   
    halt   关闭计算机 
    一般用shutdown -r now,在重启系统是,关闭相关服务,shutdown -h now也是如此。 
(33) 命令su——切换用户     
    su -  切换到root用户 
    su – zhoulj 切换到zhoulj用户, 
    注意:- ,他很关键,使用-,将使用用户的环境变量 
(34)命令free——查看内存和swap分区使用情况   
    Sarge:~# free -tm 
(35)命令uptime——现在的时间 ,系统开机运转到现在经过的时间,连线的使用者数量,最近一分钟,五分钟和十五分钟的系统负载    
    Sarge:~# uptime 
(36) 命令vmstat——监视虚拟内存使用情况    
    # vmstat 
(37)命令iostat——磁盘吞吐量 
    -c      只显示CPU行     
    -d      显示磁盘行 
    -k      以千字节为单位显示磁盘输出     
    -t      在输出中包括时间戳 
    -x      在输出中包括扩展的磁盘指标 
(38)命令clear—— 清屏
    clear
(39)重启tomcat 
(40)变更使用者chown 
    变更文件或目录的拥有者或所属群组         chown -R -h owner file 
 
 
    - R(recursive)选项意味着对所有子目录下的文件也都进行同样的操作。                
    - h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件 
    chown -R xh test1 (test1目录及子目录的所有文件属主变为xh)  
 
useradd wxk
passwd wxk
echo "123456" | passwd --stdin wxk
chown -R wxk:wxk /home/did/data/   慎用

 

posted @ 2019-11-29 14:33  等风等雨也等你  阅读(174)  评论(0编辑  收藏  举报